Dear Boss,
Running an app or internal tool on our own server can cost less than managed hosting and give us more control over the stack. It also makes us responsible for the work a platform would handle: who can reach the server, how updates are released, and how data is restored when something fails.
When we figure that out by trial and error, we risk:
- Exposing SSH and admin panels to the public internet
- Releasing by hand with no tested way to roll back
- Keeping backups we have never restored
- Hearing about outages from users before we notice them
- Depending on the one person who knows how the server was set up
I’d like to take Pragmatic Self-Hosting: Foundations, a self-paced course by Milan Jovanović that teaches a repeatable process for this work.
What the course covers
The course takes one application from a fresh VPS to a monitored production setup, using Dokploy for deployments and Tailscale for private administration. It covers:
- Provisioning an Ubuntu server and hardening SSH access
- Keeping SSH and the Dokploy panel on a private network, while the app stays public over HTTPS
- Deploying a .NET and React app with PostgreSQL and Redis
- Automating releases with GitHub Actions, checking which commit is running, and rolling back to an earlier image
- Storing backups outside the server and test-restoring the database
- Setting up uptime alerts and a monthly maintenance routine
The exercises use TaskFlow, a practice application that comes with the course, so I can work through deployments and recovery without touching our systems. It’s around four hours of video, plus time for the hands-on work.
I’d also keep the source code, a Production Runbook, and seven agent skills that help coding agents such as Claude Code, Codex, Cursor, and GitHub Copilot repeat the same checks on our deployments.
Why this matters for our team
- Clear criteria for when a VPS makes sense over managed hosting, including the maintenance it adds
- Releases we can verify and roll back
- Backups we have restored, so we know recovery works
- A written runbook the team can follow, so the setup doesn’t depend on one person
After the course, I’ll share the runbook and checks with the team, along with where I think this approach would fit our work.
About the instructor
Milan is a Microsoft MVP and software architect with more than ten years of experience. His courses on .NET and software architecture have 9,700+ students.
The course teaches the setup he runs himself. He self-hosts Katabench, a .NET coding platform with a few thousand users, and runs his internal tools and observability platform on Dokploy.
The investment
The course is a one-time purchase with lifetime access to the lessons and updates, English transcripts and subtitles, and a completion certificate. A VPS and domain for the exercises are separate costs.
Would you approve this request? I’m happy to talk through how the course fits our current work and agree on time for the exercises.
Course details: https://milanjovanovic.tech/pragmatic-self-hosting
Thank you for considering it. [Your name]