What this course is

Ten lessons that follow one small website from an empty web domain name to a server you run yourself. Each lesson explains one part of the chain, gives the commands in the order they run, and ends with a short quiz. Nothing here is theoretical: every command is the one you type on your own machine or server.

The course does not replace the reference pages linked along the way. When a lesson says "install Nginx" and links Install Nginx on Ubuntu, the lesson explains where that step belongs in the whole picture and the linked page explains the details.

Who it is for

No previous server experience is assumed. You should be able to open a terminal, edit a text file and read a command name without fear. A Linux machine helps, but the first lessons work from any system with dig and whois, and the server lessons start from a fresh Ubuntu 24.04 installation.

What you can do at the end

The lessons

Read them in order. Every lesson ends with a link to the next one, and the quiz at the end checks that the commands of that lesson make sense before you build on them.

  1. How domain names work and how to register one: the DNS tree, registries and registrars, the registration steps, and what happens when a domain expires.
  2. How web hosting works: a server, a web server, virtual hosts, PHP handlers, databases, and how many customers share one machine.
  3. Connect a domain to a hosting: delegation or your own DNS records, A, AAAA, CNAME, MX, TXT, TTL, and the first HTTPS certificate.
  4. Run a website on shared hosting: an account, uploaded files, a database and a small PHP page that uses it, redirects, a mailbox and backups.
  5. The same website on a VPS or a dedicated server: Ubuntu 24.04, SSH keys, Nginx, PHP-FPM, MariaDB, the move with rsync, and certificates.
  6. What else a server administrator needs to know: the skill map, how to learn it, certifications, and the next technologies.
  7. The security problems of hosting: what providers fight every day, and the threats a server owner meets first, ranked.
  8. Harden your server step by step: SSH, fail2ban, the firewall, updates, permissions, TLS, backups and monitoring.
  9. Mail on your own domain: MX, SPF, DKIM, DMARC, reverse DNS, Postfix, Dovecot, and how to test what you built.
  10. The launch checklist and the maintenance plan: one list from domain to mail, a schedule for each day, week and month, and what to check first when a site is down.

Optional side story. The course does not need WordPress. If you already run it, Side story: WordPress on shared hosting and on a VPS collects the WordPress steps the lessons no longer cover. Every other reader can skip it.

How to use the course

Do the steps on a real domain and a real server, not only in your head. A cheap VPS for a month costs less than the time you will spend guessing what went wrong. Keep a notebook, or a plain text file, with every command you ran and every value you set: the IP address, the name servers, the database name, the ports you opened. When something breaks, that file is the first place to look.

The quiz after each lesson is not an exam. Its answer opens with a click, so you can think first and check yourself after. If two answers in a row surprise you, read that lesson again before you go on: the next one assumes the commands of the previous one already work.

Conventions in the lessons