diff --git a/src/data/projects/basic-github-actions.md b/src/data/projects/basic-github-actions.md new file mode 100644 index 000000000..f7385a9e6 --- /dev/null +++ b/src/data/projects/basic-github-actions.md @@ -0,0 +1,36 @@ +--- +title: 'Github Actions Workflow' +description: 'Write GitHub Actions workflow to deploy a simple GitHub Pages site.' +isNew: true +sort: 3 +difficulty: 'beginner' +nature: 'CI/CD' +skills: + - 'devops' + - 'github actions' + - 'ci/cd' +seo: + title: 'Github Actions Workflow' + description: 'Write GitHub Actions workflow to deploy a simple GitHub Pages site.' + keywords: + - 'basic ci/cd' + - 'devops' + - 'devops projects' +roadmapIds: + - 'git-github' + - 'devops' +--- + +In this project, you will write a basic HTML file and setup a GitHub Actions workflow to test, build & deploy it to GitHub Pages. + +## Requirements + +- Create a simple HTML file (the content is up to you) +- Create a GitHub Actions workflow that will test, build & deploy the website to [GitHub Pages](https://pages.github.com/). +- Failures in the workflow should be clearly indicated and failures will halt the workflow +- The workflow should be in the `.github/workflows` directory +- The workflow file should be named `main.yml` + +
+ +If you are looking to build a more advanced version of this project, you can either create a more advanced Astro website or you can build a more advanced GitHub Actions workflow. diff --git a/src/data/projects/basic-iac-with-terraform.md b/src/data/projects/basic-iac-with-terraform.md new file mode 100644 index 000000000..fd3988d7e --- /dev/null +++ b/src/data/projects/basic-iac-with-terraform.md @@ -0,0 +1,42 @@ +--- +title: 'Basic Infrastructure as Code with Terraform' +description: 'Provision a simple cloud infrastructure using Terraform' +isNew: false +sort: 4 +difficulty: 'beginner' +nature: 'CLI' +skills: + - 'terraform' + - 'devops' + - 'iac' + - 'cloud' +seo: + title: 'Basic Infrastructure as Code with Terraform' + description: 'Learn to provision cloud resources using Terraform' + keywords: + - 'terraform' + - 'infrastructure as code' + - 'cloud provisioning' + - 'devops' +roadmapIds: + - 'devops' + - 'terraform' + - 'aws' +--- + +In this project, you will use Terraform to provision a virtual machine in AWS. + +## Requirements + +- Install Terraform on your local machine. +- Set up an account with a AWS and obtain necessary credentials. +- Create a `main.tf` file in the root directory of your project. +- Write Terraform configuration to provision a basic resource (e.g., an EC2 instance on AWS or a VM on Azure). +- Use Terraform commands to initialize, plan, apply, and destroy your infrastructure. +- The provisioned resource should be accessible and verifiable in your cloud provider's console. + +You can learn more about Terraform basics [here](https://learn.hashicorp.com/terraform). + +
+ +For a more advanced version of this project, consider adding multiple resources, using variables and outputs, or implementing a modular structure for your Terraform configuration. \ No newline at end of file diff --git a/src/data/projects/docker-webserver.md b/src/data/projects/docker-webserver.md new file mode 100644 index 000000000..dcf6b53d0 --- /dev/null +++ b/src/data/projects/docker-webserver.md @@ -0,0 +1,39 @@ +--- +title: 'Docker Web Server' +description: 'Create a Web Server using Docker & NGINX' +isNew: false +sort: 3 +difficulty: 'beginner' +nature: 'CLI' +skills: + - 'docker' + - 'devops' + - 'nginx' + - 'web' +seo: + title: 'Docker Web Server' + description: 'Create a Web Server using Docker & NGINX' + keywords: + - 'docker web server' + - 'docker' + - 'system administration' + - 'web server' +roadmapIds: + - 'devops' + - 'docker' +--- + +In this project, you will create an NGINX web server that will serve a simple HTML page using Docker. + +## Requirements + +- The Dockerfile should be named `Dockerfile`. +- The Dockerfile should be in the root directory of the project. +- The build process will add a local HTML file to the container, which will be accessible to NGINX. +- The simple HTML page will be accessible to you from `localhost:8080` + +You can learn more about writing a Dockerfile [here](https://docs.docker.com/engine/reference/builder/). + +
+ +If you are looking to build a more advanced version of this project, you can consider using the `alpine:latest` image and setting up NGINX yourself rather than using the official NGINX image. diff --git a/src/data/projects/local-monitoring-stack.md b/src/data/projects/local-monitoring-stack.md new file mode 100644 index 000000000..a9913ad0e --- /dev/null +++ b/src/data/projects/local-monitoring-stack.md @@ -0,0 +1,57 @@ +--- +title: 'Local Monitoring System with Docker' +description: 'Set up a local monitoring system using Docker with Grafana and Prometheus' +isNew: false +sort: 1 +difficulty: 'intermediate' +nature: 'CLI' +skills: + - 'docker' + - 'devops' + - 'monitoring' + - 'grafana' + - 'prometheus' +seo: + title: 'Local Monitoring System with Docker, Grafana, and Prometheus' + description: 'Learn to set up a local monitoring system using Docker with Grafana and Prometheus' + keywords: + - 'docker' + - 'monitoring' + - 'grafana' + - 'prometheus' + - 'devops' +roadmapIds: + - 'devops' + - 'docker' +--- + +In this project, you will set up a local monitoring system using Docker, Grafana, and Prometheus. This setup will allow you to collect metrics and visualize them in a dashboard. + +## Requirements + +- Docker and Docker Compose installed on your local machine. +- Create a `docker-compose.yml` file in the root directory of your project. +- Set up Prometheus as the metrics collection system. +- Configure Grafana as the visualization tool. +- Create a simple dashboard in Grafana to display system metrics. +- Add a sample application to monitor, such as a simple web server. + +Your `docker-compose.yml` file should define services for: +1. Prometheus +2. Grafana +3. A sample application to monitor + +## Steps + +1. Create the `docker-compose.yml` file with services for Prometheus and Grafana. +2. Configure Prometheus to scrape metrics (you'll need a `prometheus.yml` configuration file). +3. Set up Grafana to use Prometheus as a data source. +4. Create a simple dashboard in Grafana to display metrics. +5. Use `docker-compose up` to start your monitoring stack. +6. Access Grafana through your web browser and verify that metrics are being collected and displayed. + +You can learn more about Prometheus [here](https://prometheus.io/docs/introduction/overview/) and Grafana [here](https://grafana.com/docs/grafana/latest/). + +
+ +For a more advanced version of this project, consider adding alerting rules in Prometheus, setting up additional exporters to collect more diverse metrics, or monitoring a multi-container application. \ No newline at end of file