🚀 Pragmatic Self-Hosting is open
You can build a useful app and still feel unsure about putting it on your own server.
Getting it online leaves more questions. Which ports should be public? How do you ship the next change? Will your backup actually restore? Piecing together those answers can keep a project on your laptop long after the code is ready.
I use apps I host myself to collect testimonials and transcribe recordings for my business. They replaced my Senja and TurboScribe subscriptions, which cost $590 and $120 a year. That's $710/year in subscriptions - now running on a $5/mo VPS.
I use Dokploy for my own applications. Owning those tools means I can change them to fit how I work and choose how they're hosted. It also makes me responsible for their updates, access, and recovery. These are the deployment foundations I want to teach you.
If you already build software, learning to operate it gives you another option: launch a small product or run your own business tools on infrastructure you control. You'll also learn when managed hosting is the better choice.
I've opened enrollment for Pragmatic Self-Hosting: Foundations to help you make that step.
After working through it, you'll be able to deploy a complex app, explain how traffic and administration reach it, verify a release, and test recovery of its data. You'll have a repeatable process to adapt to your next project.
Launch week starts today. The launch price is $149 (regular price $249).
You'll practice on TaskFlow, the included .NET and React app. This is the system you'll understand and operate by the end:
Each part has a check you perform yourself.
Start by deciding when self-hosting makes sense for your app, including the running costs and responsibility that come with one VPS.
You'll provision an Ubuntu VPS on Hetzner and control who can reach it. Configure the firewall and key-only SSH.
You'll keep administration off the public internet. Use Tailscale for SSH and Dokploy, verify the private route, then remove public SSH access.
With Docker and Dokploy, you can configure and deploy an app through a panel that stays private and requires two-factor authentication.
Trace a request through your domain, HTTPS and Traefik to the app container. Understand why PostgreSQL and Redis stay on a private Docker network, and how a running container can still be unready to serve traffic.
For each release, you'll test the exact image, publish it to GHCR and use a private deployment request to Dokploy. You'll be able to verify the live commit SHA and roll back an image, while understanding why the database schema must remain compatible. GitHub Actions automates the release pipeline.
You'll prove a database backup can restore. Send separate Dokploy and PostgreSQL backups to R2, restore an exact dump into a temporary database, and compare its schema and rows.
You'll know when the app stops serving traffic and what to check next. Set up external readiness alerts, inspect logs and resource use, and follow a maintenance checklist for updates and backup checks.
You'll keep the TaskFlow source code, diagrams and runbook so you can repeat the process. I also included seven agent skills for assisting with taught tasks. You'll learn the manual workflow and verify results yourself.
The launch price is $149 (regular price $249).
~ Milan
P.S. You can reply to this email if you've got any questions.