Gordon Documentation
Gordon is a self-hosted container deployment platform: a private container registry, a declarative app runtime, and a reverse proxy.
What is Gordon?
Gordon runs on your VPS and provides:
- Private Container Registry - Push images from your local machine or CI
- Declarative Apps - One TOML file per app, explicit apply then deploy
- HTTP Reverse Proxy - Routes app hosts to containers
- Push, Apply, Deploy - Push stores images; deploy is always explicit
- Zero-Downtime Stateless Deploys - Stateless services start the new generation, verify readiness, switch traffic, then stop the old one; services with volumes, binds, devices, or UDP interfaces are replaced sequentially
- Single Binary - ~15MB RAM footprint
How It Works
┌─────────────────┐ push ┌─────────────────┐
│ Your Machine │ ────────────> │ Gordon Server │
│ docker build │ │ │
│ docker push │ │ registry:5000 │
└─────────────────┘ │ proxy:80 │
└────────┬────────┘
│
v
┌─────────────────┐
│ Your App Live │
│ app.domain.com │
└─────────────────┘
- Build your container locally where you have computing power
- Push to your Gordon registry
- Apply the app manifest and deploy to activate it
Quick Navigation
Getting Started
- Getting Started - Deploy your first app in minutes
- Installation - Detailed installation instructions
- Upgrading - Migration guide for breaking changes
- Concepts - Core concepts and architecture
Configuration
- Configuration Overview - All configuration options
- Server Settings - Ports, domains, and runtime
- App Manifest - Declarative app files (services, hosts, secrets, volumes)
- Migrate to Gordon v3 - Breaking upgrade and explicit secret migration
- Traffic Plane - TCP, UDP, and TLS passthrough entrypoints
- Authentication - Registry auth plus remote CLI login/token workflows
- Secrets - Installation secrets and app secret values
- Network Isolation - Installation network policy
- Logging - Log collection and rotation
CLI Reference
- CLI Commands - All available commands
Deployment
- Deployment Overview - Deployment strategies and methods
- GitHub Actions - CI/CD with GitHub
- GitLab CI - CI/CD with GitLab
- Generic CI - Jenkins, CircleCI, Drone, and others
- Rollback - Version management and rollback
Reference
- Docker Labels - Container and image labels
- Troubleshooting - Common issues and solutions
Requirements
- Linux VPS (Ubuntu/Debian recommended)
- Docker or Podman runtime
- Domain pointing to your server
- Optional Cloudflare account or other reverse proxy for edge TLS
Note: Gordon can run behind Cloudflare/nginx, or terminate TLS directly on a smart TCP edge entrypoint via static certificates, public ACME certificates, or its internal CA.
Related
- Wiki Tutorials - Step-by-step guides
- Wiki Examples - Configuration examples