A server is a computer that provides a service to others. Here are the big families — and the ones you set up yourself in the Dojo.
One machine can hold several roles: a website, its database and mail can perfectly well live on a single VM.
| Type | What it is for | Well-known software | 🥋 In the Dojo |
|---|---|---|---|
| 🌐 Web | Serve websites and web apps | Nginx, Apache, Caddy | ✓ Project "My personal site online" + Nginx chapter |
| 🔀 Reverse proxy | A single entry point that spreads the traffic across several servers | Nginx, HAProxy, Traefik | ✓ Project "A single portal: Nginx as a reverse proxy" |
| 🚪 Forward proxy | Filter and speed up a network's Internet access | Squid | ✓ Project "The company proxy (Squid)" |
| 📁 Files | Share files over the network | Samba, NFS, SFTP | ✓ Project "My file server" |
| ☁️ Personal cloud | Files, calendar and contacts synced on all your devices | Nextcloud | ✓ Project "My personal cloud (Nextcloud)" |
| Send (SMTP) and receive (IMAP) e-mail | Postfix, Dovecot, docker-mailserver | ✓ Boss project "My mail server" | |
| 🧭 DNS | Turn a name (dojo.com) into an IP address | BIND, Unbound, Pi-hole | ✓ Project "Pi-hole — network-wide ad blocker" |
| 🔒 VPN | Reach your network from anywhere, encrypted | WireGuard, OpenVPN | ✓ Project "My personal VPN (WireGuard)" |
| 🎬 Media | Stream your movies, music and photos | Jellyfin, Plex, Immich | ✓ Projects "My personal Netflix" and "My photos (Immich)" |
| 🐙 Code & CI/CD | Host code and deploy on every change | Gitea, GitLab, Jenkins | ✓ Projects "My personal GitHub (Gitea)" and "CI/CD" |
| 🔑 Passwords | A vault shared by the whole family | Vaultwarden, Bitwarden | ✓ Project "My password vault" |
| 🎮 Games | Host a multiplayer game | Minecraft, Valheim | ✓ Project "Minecraft server" |
| 🏠 Home automation | Drive lights, sensors and heating | Home Assistant | ✓ Project "My smart home" |
| 📊 Monitoring & backup | Get alerted of outages, never lose your data | Uptime Kuma, Prometheus, restic | ✓ Project "Backups + monitoring" |
| 🗄️ Database | Store and query the apps' data | PostgreSQL, MySQL, MariaDB, Redis | Used by Nextcloud, Gitea, Immich… |
| 📡 DHCP | Hand out an IP address to every device automatically | Kea, dnsmasq (and your router) | Culture: your Internet router is one |
| 👥 Directory | Manage the accounts and rights of a whole company | Active Directory, LDAP, FreeIPA | User management chapter (the basics) |
A real dedicated machine: a rack server in a datacenter… or an old PC at home.
A complete computer simulated inside a real one. You can run several on a single machine.
An app packed with everything it needs, lighter than a VM, starting in a second.
A server rented by the month from a host, reachable from the whole world with a public IP.
A small box drawing only a few watts, always on.
No server to manage: you hand over the code, the host runs it on demand.
Your cloud, your Netflix, your VPN: for you and your family. The best training ground.
Shared files, directory, mail, printing: on the company's internal network.
Sites and apps used by thousands of customers, which must never go down.
A copy to try things safely before touching production.
The vast majority of web servers, most of the cloud and the world's 500 most powerful supercomputers run Linux. Learning Linux means learning the common language of all these machines.
A server is always described by three questions: what service it provides, in what form it runs, and for whom. In the Dojo, you lay the foundations in the terminal, then you set these servers up one by one, on your own machine.
From the basics in the terminal all the way to your own mail server — free to start, no installation.
Enter the Dojo →