Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ilahyani/42-cloud-1
This is a web application infrastructure automated using Docker, Terraform, AWS and Vagrant
https://github.com/ilahyani/42-cloud-1
1337school 42born2code aws docker hashicorp-terraform terraform vagrant
Last synced: 4 days ago
JSON representation
This is a web application infrastructure automated using Docker, Terraform, AWS and Vagrant
- Host: GitHub
- URL: https://github.com/ilahyani/42-cloud-1
- Owner: ilahyani
- Created: 2024-10-23T16:11:12.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-11T13:36:39.000Z (about 2 months ago)
- Last Synced: 2024-11-14T14:52:37.679Z (about 2 months ago)
- Topics: 1337school, 42born2code, aws, docker, hashicorp-terraform, terraform, vagrant
- Language: HCL
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cloud-1
## Project Overview
42-cloud-1 is a cloud infrastructure project designed to deploy and manage a multi-service application environment using Docker, Vagrant, and Terraform. The project includes services such as Grafana, MariaDB, Nginx, Prometheus, and WordPress, orchestrated using Docker Compose and managed through Terraform for infrastructure provisioning.
## Technologies Used
- **Docker**: Containerization of services.
- **Docker Compose**: Orchestration of multi-container Docker applications.
- **Vagrant**: Virtual developement environnement.
- **AWS**: Cloud Provider.
- **Terraform**: Infrastructure as Code (IaC) for provisioning cloud resources.
- **Grafana**: Monitoring and observability platform.
- **MariaDB**: Relational database management system.
- **Nginx**: Web server and reverse proxy.
- **Prometheus**: Monitoring and alerting toolkit.
- **WordPress**: Content management system.## Getting Started
### Prerequisites
- Make sure you have Vagrant installed
- Make sure the following environnement variables are exported with your AWS credentials
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION### Running the Project
1. **Clone the repository**:
2. **Set up environment variables**:
Copy the `inception/env-template` to `inception/.env` and fill in the required values.3. **Run vagrant**:
```sh
vagrant up
```
4. **Open in browser**: After the deployment is done, you will see this message:
```DEPLOYED TO ~> https://X.X.X.X``` open the link in the browser to get the wordpress website (you might a 502 error in the beginning as wordpress takes some time to start). To access Grafana open the same IP with http and port 3000.### Stopping and Cleaning Up
1. **Destroy Infrastructure**:
```sh
vagrant ssh
sudo bash /cloud/destroy.sh
exit
```
2. **Stop and destroy Vagrant VM**:
```sh
vagrant halt
vagrant destroy
```