1. Introduction
  2. What this book is about and who it's for
  3. How the book is structured
  4. Setting expectations
  5. Why Self-Host?
  6. Public Cloud Pitfalls
  7. Problems with free tiers
  8. Problems with "budget" DBs
  9. My self-hosting journey
  10. The Foundations
  11. Choosing Your Self-Hosting Setup
    1. Why a Mini PC for Self Hosting
    2. Why VMs for Self Hosting
  12. Choosing your hardware
  13. Choosing your OS
  14. Setting up your Server
    1. Server Hardening
    2. SSH
    3. Installing Docker and Docker Swarm
  15. Section Recap
  16. Making It Public
  17. Why not port-forward?
  18. Cloudflare Tunnels
  19. Setting up a Cloudflare account + Domain
  20. Creating a Cloudflare Tunnel
  21. Section Recap
  22. Hosting All the Things
  23. Hello, Tunnel!
  24. Introducing Our Sample App
  25. Databases
    1. Exposing for Local Access
  26. APIs
  27. Connecting Services with Docker Networking
  28. Docker Swarm
    1. Moving to Docker Swarm
  29. Reverse Proxies
    1. Using the Proxy
  30. Object Storage
  31. Developer’s Playground
  32. Deploying pet projects
    1. CI/CD with GitHub Actions
    2. Automating updates in Docker Swarm
    3. Hosting frontends on Vercel
  33. Dev & prod connections
  34. Backups with rclone
  35. Beyond the Basics
  36. Monitoring and logging
  37. Caching
  38. What else to host?
  39. Wrapping Up
  40. Cost breakdown
  41. Troubleshooting checklist
  42. Templates and config
  43. Links for further learning