v2.31.0-dev23 58a92f3

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
  • 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.

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- [Traffic Plane](./config/traffic.md) - TCP, UDP, and TLS passthrough entrypoints
51- [Authentication](./config/auth.md) - Registry auth plus remote CLI login/token workflows
52- [Secrets](./config/secrets.md) - Secure credential storage
53- [Network Isolation](./config/network-isolation.md) - Per-app network isolation
54- [Preview Environments](./config/preview.md) - Ephemeral per-branch deployments
55- [Attachments](./config/attachments.md) - Service dependencies
56- [Logging](./config/logging.md) - Log collection and rotation
57- [Environment Variables](./config/env.md) - Per-route environment configuration
58
59### CLI Reference
60
61- [CLI Commands](./cli/index.md) - All available commands
62
63### Deployment
64
65- [Deployment Overview](./deployment/index.md) - Deployment strategies and methods
66- [GitHub Actions](./deployment/github-actions.md) - CI/CD with GitHub
67- [GitLab CI](./deployment/gitlab-ci.md) - CI/CD with GitLab
68- [Generic CI](./deployment/generic-ci.md) - Jenkins, CircleCI, Drone, and others
69- [Rollback](./deployment/rollback.md) - Version management and rollback
70
71### Reference
72
73- [Docker Labels](./reference/docker-labels.md) - Container and image labels
74- [Environment Variables](./reference/env-variables.md) - Environment variable syntax
75- [Troubleshooting](./reference/troubleshooting.md) - Common issues and solutions
76
77## Requirements
78
79- Linux VPS (Ubuntu/Debian recommended)
80- Docker or Podman runtime
81- Domain pointing to your server
82- Optional Cloudflare account or other reverse proxy for edge TLS
83
84> **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.
85
86## Related
87
88- [Wiki Tutorials](/wiki/tutorials/index.md) - Step-by-step guides
89- [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