Add new projects for devops roadmap

pull/7391/head
Kamran Ahmed 2 months ago
parent ccb3890484
commit 69f350ef85
  1. 44
      src/data/projects/basic-dns.md
  2. 2
      src/data/projects/basic-dockerfile.md
  3. 56
      src/data/projects/ssh-remote-server-setup.md
  4. 45
      src/data/projects/static-site-server.md
  5. 4
      src/styles/global.css

@ -0,0 +1,44 @@
---
title: 'Basic DNS Setup'
description: 'Purchase a custom domain and set up basic DNS records.'
isNew: false
sort: 6
difficulty: 'beginner'
nature: 'DNS'
skills:
- 'devops'
- 'dns'
seo:
title: 'Basic DNS Setup'
description: 'Purchase a custom domain and set up basic DNS records.'
keywords:
- 'basic dns'
- 'dns'
- 'domain'
roadmapIds:
- 'devops'
---
The goal of this project is to learn and practice the basics of DNS. You are required to purchase a custom domain name and setup the basic DNS records.
## Requirements
You are required to have a custom domain name to complete this project. You can use the domain name you already own or purchase a new domain name from any provider such as Cloudflare, Namecheap, Godaddy etc. Once you have a domain name, you can proceed to the next step.
### Task #1 - Custom Domain for GitHub Pages
If you have not completed the [GitHub pages project](/projects/github-actions-deployment-workflow), go ahead and complete that project first. Once you have a github pages site setup, set up your custom domain name to point to your github pages site.
### Task #2 - Custom Domain for DigitalOcean Droplet
If you have not completed the [Static Site Server project](/projects/static-site-server), go ahead and complete that project first so you have a basic static site to serve. Once you have a digital ocean droplet setup serving a static site, set up your DNS records to point to your droplet.
<hr />
### Submission Guidelines
Output for this project is the steps you took to setup the custom domain name for both GitHub Pages and a DigitalOcean Droplet. You can write a simple markdown file in tutorial format, add screenshots and any other relevant information to help you remember the steps.
<hr />
Once you have completed the project, you should have a basic understanding of how to setup a custom domain name for both GitHub Pages and a DigitalOcean Droplet.

@ -2,7 +2,7 @@
title: 'Basic Dockerfile'
description: 'Build a basic Dockerfile to create a Docker image.'
isNew: false
sort: 4
sort: 7
difficulty: 'beginner'
nature: 'CLI'
skills:

@ -0,0 +1,56 @@
---
title: 'SSH Remote Server Setup'
description: 'Setup a basic remote linux server and configure it to allow SSH.'
isNew: false
sort: 4
difficulty: 'beginner'
nature: 'SSH'
skills:
- 'devops'
- 'linux'
seo:
title: 'SSH Remote Server Setup'
description: 'Setup a remote linux server and configure it to allow SSH.'
keywords:
- 'ssh'
- 'linux'
- 'server'
roadmapIds:
- 'devops'
---
The goal of this project is to learn and practice the basics of Linux. You are required to setup a remote linux server and configure it to allow SSH connections.
## Requirements
You are required to setup a remote linux server and configure it to allow SSH connections.
- Register and setup a remote linux server on any provider e.g. a simple droplet on [DigitalOcean](https://m.do.co/c/b29aa8845df8) which gives you $200 in free credits with the link. Alternatively, use AWS or any other provider.
- Create **two new SSH key pairs** and add them to your server.
- You should be able to connect to your server using both SSH keys.
You should be able to use the following command to connect to your server using both SSH keys.
```bash
ssh -i <path-to-private-key> user@server-ip
```
Also, look into setting up the configuration in `~/.ssh/config` to allow you to connect to your server using the following command.
```bash
ssh <alias>
```
The only outcome of this project is that you should be able to SSH into your server using both SSH keys. Future projects will cover other aspects of server setup and configuration.
Stretch goal: install and configure `fail2ban` to prevent brute force attacks.
<hr />
## Important Note for Solution Submission
**Do not push your private key to any public repository.** The solution to this project should just contain one `README.md` file with the steps you took to complete the project.
<hr />
After completing this project, you will have a basic understanding of how to setup a remote linux server and configure it to allow SSH connections. Future projects will cover other aspects of server setup.

@ -0,0 +1,45 @@
---
title: 'Static Site Server'
description: 'Setup a basic linux server and configure it to serve a static site.'
isNew: false
sort: 5
difficulty: 'beginner'
nature: 'CLI'
skills:
- 'nginx'
- 'SSH'
- 'linux'
- 'devops'
- 'rsync'
seo:
title: 'Static Site Server'
description: 'Setup a basic linux server and configure it to serve a static site.'
keywords:
- 'static site server'
- 'nginx'
- 'SSH'
- 'linux'
- 'devops'
- 'rsync'
roadmapIds:
- 'devops'
---
The goal of this project is to help you understand the basics of setting up a web server using a basic static site served using Nginx. You will also learn how to use `rsync` to deploy your changes to the server.
## Requirements
Here are the requirements for this project:
- Register and setup a remote linux server on any provider e.g. a simple droplet on [DigitalOcean](https://m.do.co/c/b29aa8845df8) which gives you $200 in free credits with the link. Alternatively, use AWS or any other provider.
- Make sure that you can connect to your server using SSH.
- Install and configure `nginx` to serve a static site.
- Create a simple webpage with basic HTML, CSS and image files.
- Use `rsync` to update a remote server with a local static site.
- If you have a domain name, point it to your server and serve your static site from there. Alternatively, set up your nginx server to serve the static site from the server's IP address.
You can write a script `deploy.sh` which when you run will use `rsync` to sync your static site to the server.
<hr />
Once you have completed the project, you should have a basic understanding of how to setup a web server using a basic static site served using Nginx. You should also have a basic understanding of how to use `rsync` to deploy your changes to the server.

@ -34,6 +34,10 @@ blockquote p:before {
display: none;
}
blockquote p {
font-style: normal;
}
.prose ul li > code,
.prose ol li > code,
p code,

Loading…
Cancel
Save