v2.4.2 7da87b2

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 does not handle TLS certificates directly. HTTPS is terminated by Cloudflare (or similar proxy) which forwards HTTP traffic to Gordon internally.

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- [Concepts](./concepts.md) - Core concepts and architecture
43
44### Configuration
45
46- [Configuration Overview](./config/index.md) - All configuration options
47- [Server Settings](./config/server.md) - Ports, domains, and runtime
48- [Routes](./config/routes.md) - Domain to container mapping
49- [Registry Auth](./config/registry-auth.md) - Password and token authentication
50- [Secrets](./config/secrets.md) - Secure credential storage
51- [Network Isolation](./config/network-isolation.md) - Per-app network isolation
52- [Attachments](./config/attachments.md) - Service dependencies
53- [Logging](./config/logging.md) - Log collection and rotation
54- [Environment Variables](./config/env.md) - Per-route environment configuration
55
56### CLI Reference
57
58- [CLI Commands](./cli/commands.md) - All available commands
59
60### Deployment
61
62- [Deployment Overview](./deployment/index.md) - Deployment strategies
63- [GitHub Actions](./deployment/github-actions.md) - CI/CD with GitHub
64- [Rollback](./deployment/rollback.md) - Version management and rollback
65
66### Reference
67
68- [Docker Labels](./reference/docker-labels.md) - Container and image labels
69- [Environment Variables](./reference/env-variables.md) - Environment variable syntax
70- [Troubleshooting](./reference/troubleshooting.md) - Common issues and solutions
71
72## Requirements
73
74- Linux VPS (Ubuntu/Debian recommended)
75- Docker or Podman runtime
76- Domain pointing to your server
77- Cloudflare account for HTTPS (free tier works)
78
79> **Note:** Gordon does not handle TLS certificates directly. HTTPS is terminated by Cloudflare (or similar proxy) which forwards HTTP traffic to Gordon internally.
80
81## Related
82
83- [Wiki Tutorials](/wiki/tutorials/index.md) - Step-by-step guides
84- [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