How I run production
Founders should not need to manage infrastructure. They should know how product risk is controlled, what happens when something fails, and whether another team can take over cleanly.
See it running
- dash.antonshubin.com (opens in a new tab)Live the status page of my servers
- ci.antonshubin.com (opens in a new tab)Live the pipelines of a public repository
- meet.antonshubin.com (opens in a new tab)Live the booking page
All three answered when I checked. The CI link opens a public repository's pipelines, because the root asks for a GitHub sign-in. (checked 30 Sep 2026)
A red tile on the status page means something is down now, and you see it when I do.
How the pieces connect
My own servers run on reusable infrastructure as code, Deno deployment automation, Docker Compose, and Traefik for TLS and routing. Every box is a link, and every arrow is a fact I can point to.
Booking
- antonshubin.
com This site
- embeds
- meet.
antonshubin. com (opens in a new tab) The booking page
- runs
- mig
tiny self-hosted meeting scheduler
- antonshubin.
Monitoring
- Zond
internal health probe bridge for services behind SSO proxies
- feeds
- Gatus (opens in a new tab)
Gatus checks service health
- reads
- oko (opens in a new tab)
Homelab service dashboard
- draws
- dash.
antonshubin. com (opens in a new tab) The status page
- Zond
Builds
- ci.
antonshubin. com (opens in a new tab) The pipelines
- runs
- Woodpecker (opens in a new tab)
CI server and Docker agent, with GitHub sign-in
- builds
- GitHub repositories (opens in a new tab)
The code, on GitHub
- ci.
Deploys
- rostok
one-command scaffolder for a self-hosted homelab
- holds
- Docker Compose stacks (opens in a new tab)
Docker Compose, with Traefik for TLS and routing
- rostok
Your cloud is fine too
There is no universal template. The recommendation follows the workload, the team, compliance, recovery and budget.
Self-hosted
Open-source and self-hostable by default, for cost discipline, performance, portability, and auditability. Dedicated hardware when the workload justifies it: single-tenant CPU, NVMe, predictable cost.
Managed cloud
AWS, GCP, Supabase, and friends when they remove meaningful operational risk, satisfy compliance needs, or let a small team move faster.
For a client: SmartLite
Built solo in 3 months; about 200 lamp poles in production since 2024. It runs on AWS. Read the case study
Hybrid
Managed services where they remove risk, stable workloads on dedicated hardware where control and capacity matter more.
How risk is controlled
Handing it over
Docker Compose, Traefik, Authelia, versioned config in git
Configuration and deployment logic stay versioned rather than living as undocumented server steps, so another team can take over without asking one operator. There are four machines: a Hetzner Cloud server in Germany for the public services, a home lab in Singapore, a mini PC that travels with me, and a Raspberry Pi in another country that keeps the offsite backups. Authelia provides centralized SSO and 2FA, and Traefik handles TLS and routing. Access stays explicit, with boundaries another team can read.
Where to check: rostok, the scaffolder I deploy with · Not public: the configuration names internal services.
Backups I can restore
restic
Restic backups run with integrity checks, retention policies, and a written restore procedure. Recovery is part of the system's design, not a command to research for the first time during an incident.
Where to check: Not public: backups hold client and personal data. Restore last tested on 30 September 2026.
Knowing when it breaks
Gatus, zond, VictoriaMetrics
Gatus checks service health and VictoriaMetrics records operational signals. Zond lets Gatus check services that sit behind an SSO proxy. Customer-facing availability stays separate from the deeper measurements, so a failure arrives with diagnostic context.
Where to check: The status page (opens in a new tab)
zond: a probe bridge so Gatus can see through your SSO proxy
Deploys and builds
Woodpecker, Docker Compose
A release follows a documented, repeatable path instead of one person's memory. Woodpecker builds the repositories, and the deploy is a versioned script.
Where to check: The pipelines (opens in a new tab)
You own everything from day one
Code, accounts, servers and keys are in your name.
A small first milestone
We start with one or two weeks of work. If either of us wants to stop at the end of it, we stop — you keep everything built so far.
If you want this for your product
Build: MVP
From $8,000
I build your product from idea to live deployment. Backend APIs, AI integration and MCP servers are built the same way.
See what is includedOngoing
$150/hour or from $3,000/month
Ongoing technical leadership and post-launch support, hourly or on a monthly retainer.
See what is included