Docker · Caddy · Cloud — 10 deploy options
Compare 10 deploy options, from a single Docker + Caddy server to Replit, GitHub Pages, and object storage.
- Difficulty
- Intermediate
- Lessons
- 10
Distributed isn't always the answer. Docker + Caddy + one server can handle most side projects, while Replit and GitHub Pages cover the smaller end.
By the end:
- Understand Docker and docker-compose patterns
- Auto HTTPS + reverse proxy with Caddy
- Lock everything down with SSH tunnels + 127.0.0.1 binding
- Know AWS essentials (VPC, EC2, RDS, S3, IAM)
- One-line deploy with Fly.io
- Instant browser deploy with Replit — zero install steps
- Free, unlimited static hosting on GitHub Pages
- Upload files to object storage with RLS and signed-URL access control
Flow
How to choose a deployment target
Package the same application reproducibly with Docker and Compose.
Separate HTTPS, proxying, and administrative access with Caddy and SSH tunnels.
Compare a single server and PaaS by fixed cost, operational burden, and traffic charges.
Choose static hosting and object storage according to transfer volume and access control.
The first half (1–5) is the foundation of running your own infra. The second half (6–10) is a catalogue of PaaS · free hosting · file storage alternatives — pick where to put the same app.
Prerequisite — getting-started + one domain (a placeholder domain is enough for learning).
Lessons
- 1→
Step 1 — Docker basics
- 2→
Step 2 — docker-compose patterns
- 3→
Step 3 — Caddy automatic HTTPS
- 4→
Step 4 — SSH tunnels + loopback binding
- 5→
Step 5 — AWS essentials — VPC · EC2 · RDS · S3 · IAM
- 6→
Step 6 — Fly.io one-line deploy
- 7→
Step 7 — Single-server philosophy
- 8→
Step 8 — Instant deploy with Replit
- 9→
Step 9 — Free hosting on GitHub Pages
- 10→
Step 10 — Object Storage and File Permissions
Other courses
All courses →- Production Engineering — Boundaries, Performance, Recovery, and Delivery in 14 Steps
- Getting Started with a Dev Environment
- From HTML/CSS/JS to React, Next.js, Tailwind
- Build Your First Fullstack App with Next.js 16
- Backend with Spring Boot 4
- Python · FastAPI · Data Pipelines
- AI-native developer tooling — Claude Code · MCP · design tools
- Operations console design — many resources in one view
- Local LLM · pgvector · building a RAG chatbot
- Tauri 2 — desktop · mobile in one codebase
- Testing strategy and quality gates
- Web security foundations — JWT · OAuth · OWASP
- PostgreSQL in depth + Redis · Kafka
- Building public-data crawlers
- Monorepo · SSOT · layer separation thinking