For startups, individuals, and self-hosting | Docker, LXC, GitLab, CI/CD, Ansible, certbot, WireGuard, Traefik, Pi-hole
What you will learn
Ansible
Server networking and security setup
Let’s Encrypt (certbot)
WireGuard (VPN)
Docker
docker-compose
Traefik
GitLab
GitLab CI/CD pipeline through implementing a simple project
Borg with borgmatic
LXC
Mail server
Description
This course will cover a DevOps project from its inception all the way to a finished product.
It is aimed at startups, small companies, and individuals who want to self-host their infrastructure.
We will combine multiple tools and services to produce a working, easily reproducible server which can support a small company.
We will cover:
- Ansible – to configure the server and deploy services.
- Let’s Encrypt (certbot) – to obtain wildcard TLS certificate with auto renewal.
- VPN (WireGuard) – for secure access to our services.
- Docker with docker-compose – to easily deploy our applications and services.
- MariaDB – MySQL fork.
- LXC (Linux containers) – another virtualization technology.
- iRedMail – mail server which we’ll use to send and receive notifications.
- Zulip – an open source chat and collaborative software which can be self-hosted (alternative to Slack or Microsoft Teams).
- Traefik (reverse proxy and TLS termination proxy) with Docker and file providers – a single entry point for our services with automatic TLS certificates.
- Pi-hole – ad blocking on DNS level.
- Nextcloud – Email, calendar, documents, photos…It even has built-in code editor.
- checkmk – monitoring solution.
- Borg with borgmatic – backup solution.
- GitLab – Git server, CI/CD, GitLab Container Registry, etc.
- backup-checker – with this project we will showcase everything we’ve created!We’ll create a Python program which will compare finished backups with the desired list of backups, use GitLab CI/CD to create Docker image, push it to our own, private Docker Registry, run it on our server via GitLab Runner, and send notification to our Zulip server.
- Upgrade scripts for services running in Docker.
- Upgrading iRedMail.
- Upgrading Zulip.
- Upgrading host OS.
When you finish the course, you’ll be equipped to add any additional services you need for your particular line of work.
Content