Learning paths

Each path lists what you need before starting, what you will be able to do afterwards, and the guides to read in order.

  • Beginner vps 4 hr

    Self-Hosting Foundations

    Take a blank Ubuntu VPS to a server that runs containerised applications safely: firewalls that cover Docker, a real deployment, restorable backups, and a pipeline that ships changes.

    • Harden a fresh Ubuntu host and verify it from outside
    • Understand why UFW does not cover published container ports, and fix it
    • Deploy a multi-container application with Docker Compose behind TLS

    8 lessons

  • Beginner cloudflare 2 hr

    Cloudflare for Developers

    The parts of Cloudflare you use when you run your own infrastructure — DNS and proxy status, deploying to Workers, and replacing inbound firewall rules with a tunnel.

    • Point a domain at an origin server and choose the right encryption mode
    • Explain what proxied and DNS-only records do differently
    • Deploy a static or server-rendered site to Cloudflare Workers

    3 lessons

  • Intermediate ai-coding 1 hr 30 min

    AI-Assisted Development

    Put a coding agent to work on a codebase you already have, and keep the output reviewable — project setup, permission boundaries, task scoping and the review discipline that makes it safe to merge.

    • Configure a coding agent against an existing repository without restructuring it
    • Write project instructions that reflect how the code really builds
    • Restrict which commands an agent may run unattended

    2 lessons

  • Intermediate n8n 3 hr

    n8n in Production

    Run self-hosted n8n as infrastructure rather than a hobby project — Postgres storage, TLS, encryption key handling, host hardening and backups that include the things a database dump misses.

    • Deploy n8n with PostgreSQL and automatic TLS instead of the SQLite quickstart
    • Understand what the n8n encryption key protects and why it is not in your backups
    • Keep the n8n port unreachable from the internet

    3 lessons

  • Intermediate databases 3 hr 30 min

    Production Data Layer

    Run the stateful half of a self-hosted stack properly — PostgreSQL with least privilege and TLS, Meilisearch with scoped API keys, and backups you have restored at least once.

    • Give an application a database role that cannot alter its own schema
    • Require TLS for every non-loopback database connection
    • Run Meilisearch without shipping an admin key to the browser

    4 lessons