Skip to content

Commit c6705f1

Browse files
committed
README.md file is uploaded
1 parent 7bcb6f2 commit c6705f1

1 file changed

Lines changed: 57 additions & 84 deletions

File tree

aci-demo/README.md

Lines changed: 57 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,150 +1,123 @@
11

2+
# Cloud Infrastructure Management & Operations Project
3+
24
Welcome to the repository for my Cloud Infrastructure Management and Operations project, focused on deploying a Spring Boot-based Finance application using Azure services by Microsoft with Docker and GitHub Actions to Build the project.
35

4-
This Project, built as a part of my Devops and cloud-native learning, showcases practical end-to-end in Dockerization, CI/CD pipelines, container registries and deploying into a production-grade environment using Azure Container Instance (ACI) and Azure Container Registry (ACR). In this project I added a feature of custom domain (via GoDaddy) mapped to the live Azure-hosted Container.
6+
This project, built as a part of my DevOps and cloud-native learning, showcases practical end-to-end implementation in Dockerization, CI/CD pipelines, container registries, and deployment into a production-grade environment using Azure Container Instance (ACI) and Azure Container Registry (ACR). It also includes custom domain mapping (via GoDaddy) to the live Azure-hosted container.
57

68
### Project Highlights
79

8-
- Spring Boot application containerized with Docker
9-
10-
- CI pipeline created using GitHub Actions
11-
12-
- Image pushed to Azure Container Registry (ACR)
13-
14-
- Deployment to Azure Container Instance (ACI)
10+
- Spring Boot application containerized with Docker
11+
- CI pipeline created using GitHub Actions
12+
- Image pushed to Azure Container Registry (ACR)
13+
- Deployment to Azure Container Instance (ACI)
14+
- Custom domain setup using GoDaddy DNS (CNAME)
1515

16-
- Custom domain setup using GoDaddy DNS (CNAME)
16+
---
1717

18-
Project Breakdown and Task List
18+
## Project Breakdown and Task List
1919

20-
**Task 1 : Spring Boot Application Setup**
20+
### Task 1: Spring Boot Application Setup
2121

2222
- Created a basic Spring Boot finance application
23-
24-
- Added UI from Mini Finance (Tooplate #2135)
25-
23+
- Added UI from Mini Finance (Tooplate #2135)
2624
- Built `pom.xml` and verified local execution
2725

28-
> Here are some screenshot of the webpage running locally.
29-
30-
![Screenshot 1](images/20250719125658.png)
31-
32-
![Screenshot 2](images/20250719125738.png)
26+
> Here are some screenshots of the webpage running locally.
3327
34-
![Screenshot 3](images/20250719125802.png)
28+
![Screenshot 1](images/All%20the%20images/20250719125658.png)
29+
![Screenshot 2](images/All%20the%20images/20250719125738.png)
30+
![Screenshot 3](images/All%20the%20images/20250719125802.png)
31+
![Screenshot 4](images/All%20the%20images/20250719125817.png)
32+
![Screenshot 5](images/All%20the%20images/20250719125836.png)
3533

36-
![Screenshot 4](images/20250719125817.png)
37-
38-
![Screenshot 5](images/20250719125836.png)
39-
40-
**Task 2 : Docker and containerization**
41-
42-
- Wrote Dockerfile for openjdk:17-jdk-slim base image
34+
### Task 2: Docker and Containerization
4335

36+
- Wrote Dockerfile using `openjdk:17-jdk-slim` base image
4437
- Fixed auto-HTTPS redirect issues in Spring Boot
38+
- Updated `application.properties` to disable SSL by default
4539

46-
- Updated `application.properties` to avoid SSL by default
47-
48-
`Application.properties` file
40+
**application.properties**
41+
![Application Properties](images/All%20the%20images/20250719130212.png)
4942

50-
![Application Properties](images/20250719130212.png)
43+
**Dockerfile**
44+
![Dockerfile](images/All%20the%20images/20250719130324.png)
5145

52-
`Dockerfile`
53-
54-
![Dockerfile](images/20250719130324.png)
55-
56-
**Task 3 : Azure Container Registry (ACR Setup)**
46+
### Task 3: Azure Container Registry (ACR Setup)
5747

5848
- Created ACR named `aaravregistry`
59-
6049
- Retrieved credentials using Azure CLI
61-
6250
- Logged in to ACR and pushed image `acidemo:latest`
6351

64-
![[Pasted image 20250719130623.png]]
52+
![ACR Push Screenshot](images/All%20the%20images/20250719130623.png)
6553

66-
**Task 4 : GitHub Actions CI Workflows**
54+
### Task 4: GitHub Actions CI Workflow
6755

6856
- Configured `.github/workflows/ci.yml`
69-
7057
- Set up secrets for ACR login (username & password)
71-
7258
- Triggered on push to `Project` branch
73-
7459
- Built & pushed Docker image automatically to ACR
7560

76-
1. `ci.yml file`
77-
78-
![[Pasted image 20250719130913.png|1009]]
61+
1. `ci.yml` file:
62+
![CI Workflow](images/All%20the%20images/20250719130913.png)
7963

80-
2. Secrets for ACR login
81-
82-
![[Pasted image 20250719131215.png]]
64+
2. GitHub Secrets setup:
65+
![Secrets](images/All%20the%20images/20250719131215.png)
8366

84-
3. Actions Tab on GitHub
67+
3. GitHub Actions tab:
68+
![GitHub Actions](images/All%20the%20images/20250719131453.png)
8569

86-
![Actions Tab on GitHub](images/20250719131453.png)
87-
88-
**Task 5 : Deploy to Azure Container Instance**
70+
### Task 5: Deploy to Azure Container Instance
8971

9072
- Created ACI named `finance-container`
91-
9273
- Pulled image from ACR
93-
9474
- Assigned public IP with port 8080
9575

96-
![ACI Deployment Screenshot](images/WhatsApp%20Image%202025-07-18%20at%2018.02.13_2819ea6f.jpg)
97-
98-
**Task 6 : Custom Domain Mapping via GoDaddy**
76+
![ACI Deployment](images/All%20the%20images/WhatsApp%20Image%202025-07-18%20at%2018.02.13_2819ea6f.jpg)
9977

100-
- Domain: `aaravdevops.xyz` (already owned)
78+
### Task 6: Custom Domain Mapping via GoDaddy
10179

80+
- Domain: `aaravdevops.xyz`
10281
- Created CNAME record in DNS for `celebal.aaravdevops.xyz`
103-
10482
- Mapped to ACI's public DNS
105-
10683
- Final URL: http://celebal.aaravdevops.xyz:8080
10784

108-
![Custom Domain Mapping](images/20250719132754.png)
85+
![Custom Domain Mapping](images/All%20the%20images/20250719132754.png)
10986

110-
Note: If the URL shows this type of error
87+
> Note: If the URL shows an error like the image below, open it in **Incognito Mode**. The app is served on HTTP only. Modern browsers may automatically redirect to HTTPS, which will fail without a certificate.
11188
112-
![HTTP Error Example](images/20250719131907.png)
89+
![HTTP Error](images/All%20the%20images/20250719131907.png)
11390

114-
Than use incognito mode or private Tab because this webserver only works with `HTTP` not `Https` but most of the browsers redirect it on `HTTPS` service even with copy paste URL. To allocate my webserver of `HTTPS` also I have to buy the SSL Certificate. Or by using Azure Front Door Service I have to pay a lot to use that.
91+
---
11592

116-
### Some more details regarding the project
93+
### Additional Information
11794

118-
1. GitHub Secrets Used
119-
- `ACR_USERNAME`: Azure Container Registry username
95+
**GitHub Secrets Used:**
12096

121-
- `ACR_PASSWORD`: One of the password values from ACR credential JSON
97+
- `ACR_USERNAME`: Azure Container Registry username
98+
- `ACR_PASSWORD`: One of the password values from ACR credential JSON
99+
- Stored in: GitHub > Repository > Settings > Secrets & Variables > Actions
122100

123-
- Stored via GitHub > Repo > Settings > Secrets & Variables > Actions
101+
**Repository Structure:**
124102

125-
2. Repository Structure
103+
![Repo Structure 1](images/All%20the%20images/20250719133126.png)
104+
![Repo Structure 2](images/All%20the%20images/20250719133247.png)
126105

127-
![Repository Structure 1](images/20250719133126.png)
128-
![Repository Structure 2](images/20250719133247.png)
106+
---
129107

130108
## Future Enhancements
131109

132110
- Add Azure Front Door for HTTPS termination
133-
134-
- Use Azure DevOps Release Pipelines (already experimented)
135-
111+
- Use Azure DevOps Release Pipelines
136112
- Add monitoring and alerting via Azure Monitor
137113

138114
## Acknowledgements
139115

140-
- Mini Finance Template
141-
142-
- Microsoft Azure for free-tier usage
143-
144-
- GitHub Actions for seamless CI
116+
- Mini Finance Template (Tooplate)
117+
- Microsoft Azure (Free Tier)
118+
- GitHub Actions
145119

146120
## Final Outcome
147121

148-
Your app is now live at: 🔗 http://project.aaravdevops.xyz
149-
150-
But remember use private window to open and check after pasting the URL as well it should be `HTTP` not `HTTPS`.
122+
Your app is live at: 🔗 http://project.aaravdevops.xyz
123+
Use **HTTP**, not HTTPS. Open in **Private/Incognito mode** to avoid forced HTTPS redirection.

0 commit comments

Comments
 (0)