Gordon Documentation
Gordon is a self-hosted container deployment platform that combines a private Docker registry with automatic container deployment.
What is Gordon?
Gordon runs on your VPS and provides:
- Private Container Registry - Push images from your local machine or CI
- HTTP Reverse Proxy - Routes domains to containers automatically
- Push-to-Deploy - Containers deploy when you push new images
- Zero-Downtime Updates - New containers start before old ones stop
- 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
- Gordon automatically deploys and routes traffic to your container
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
- Routes - Domain to container mapping
- Traffic Plane - TCP, UDP, and TLS passthrough entrypoints
- Authentication - Registry auth plus remote CLI login/token workflows
- Secrets - Secure credential storage
- Network Isolation - Per-app network isolation
- Preview Environments - Ephemeral per-branch deployments
- Attachments - Service dependencies
- Logging - Log collection and rotation
- Environment Variables - Per-route environment configuration
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
- Environment Variables - Environment variable syntax
- 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