v2.30.0-pre4 15d9fe3

index.md RawHistoryFolder

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 │
                                  └─────────────────┘
  1. Build your container locally where you have computing power
  2. Push to your Gordon registry
  3. Gordon automatically deploys and routes traffic to your container

Quick Navigation

Getting Started

Configuration

CLI Reference

Deployment

Reference

Requirements

  • Linux VPS (Ubuntu/Debian recommended)
  • Docker or Podman runtime
  • Domain pointing to your server
  • Cloudflare account for HTTPS (free tier works)

Note: Gordon can run behind Cloudflare/nginx, or terminate TLS directly when server.tls_enabled = true.

source
1# Gordon Documentation
2
3Gordon is a self-hosted container deployment platform that combines a private Docker registry with automatic container deployment.
4
5## What is Gordon?
6
7Gordon runs on your VPS and provides:
8
9- **Private Container Registry** - Push images from your local machine or CI
10- **HTTP Reverse Proxy** - Routes domains to containers automatically
11- **Push-to-Deploy** - Containers deploy when you push new images
12- **Zero-Downtime Updates** - New containers start before old ones stop
13- **Single Binary** - ~15MB RAM footprint
14
15## How It Works
16
17```
18┌─────────────────┐     push      ┌─────────────────┐
19│  Your Machine   │ ────────────> │  Gordon Server  │
20│  docker build   │               │                 │
21│  docker push    │               │  registry:5000  │
22└─────────────────┘               │  proxy:80       │
23                                  └────────┬────────┘
24                                           │
25                                           v
26                                  ┌─────────────────┐
27                                  │  Your App Live  │
28                                  │  app.domain.com │
29                                  └─────────────────┘
30```
31
321. Build your container locally where you have computing power
332. Push to your Gordon registry
343. Gordon automatically deploys and routes traffic to your container
35
36## Quick Navigation
37
38### Getting Started
39
40- [Getting Started](./getting-started.md) - Deploy your first app in minutes
41- [Installation](./installation.md) - Detailed installation instructions
42- [Upgrading](./upgrading.md) - Migration guide for breaking changes
43- [Concepts](./concepts.md) - Core concepts and architecture
44
45### Configuration
46
47- [Configuration Overview](./config/index.md) - All configuration options
48- [Server Settings](./config/server.md) - Ports, domains, and runtime
49- [Routes](./config/routes.md) - Domain to container mapping
50- [Authentication](./config/auth.md) - Registry auth plus remote CLI login/token workflows
51- [Secrets](./config/secrets.md) - Secure credential storage
52- [Network Isolation](./config/network-isolation.md) - Per-app network isolation
53- [Preview Environments](./config/preview.md) - Ephemeral per-branch deployments
54- [Attachments](./config/attachments.md) - Service dependencies
55- [Logging](./config/logging.md) - Log collection and rotation
56- [Environment Variables](./config/env.md) - Per-route environment configuration
57
58### CLI Reference
59
60- [CLI Commands](./cli/index.md) - All available commands
61
62### Deployment
63
64- [Deployment Overview](./deployment/index.md) - Deployment strategies and methods
65- [GitHub Actions](./deployment/github-actions.md) - CI/CD with GitHub
66- [GitLab CI](./deployment/gitlab-ci.md) - CI/CD with GitLab
67- [Generic CI](./deployment/generic-ci.md) - Jenkins, CircleCI, Drone, and others
68- [Rollback](./deployment/rollback.md) - Version management and rollback
69
70### Reference
71
72- [Docker Labels](./reference/docker-labels.md) - Container and image labels
73- [Environment Variables](./reference/env-variables.md) - Environment variable syntax
74- [Troubleshooting](./reference/troubleshooting.md) - Common issues and solutions
75
76## Requirements
77
78- Linux VPS (Ubuntu/Debian recommended)
79- Docker or Podman runtime
80- Domain pointing to your server
81- Cloudflare account for HTTPS (free tier works)
82
83> **Note:** Gordon can run behind Cloudflare/nginx, or terminate TLS directly when `server.tls_enabled = true`.
84
85## Related
86
87- [Wiki Tutorials](/wiki/tutorials/index.md) - Step-by-step guides
88- [Wiki Examples](/wiki/examples/index.md) - Configuration examples

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close