v3.3.1 31f1eec

index.md RawHistoryFolder

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 │
                                  └─────────────────┘
  1. Build your container locally where you have computing power
  2. Push to your Gordon registry
  3. Apply the app manifest and deploy to activate it

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: a private container registry, a declarative app runtime, and a reverse proxy.
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- **Declarative Apps** - One TOML file per app, explicit apply then deploy
11- **HTTP Reverse Proxy** - Routes app hosts to containers
12- **Push, Apply, Deploy** - Push stores images; deploy is always explicit
13- **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
14- **Single Binary** - ~15MB RAM footprint
15
16## How It Works
17
18```
19┌─────────────────┐     push      ┌─────────────────┐
20│  Your Machine   │ ────────────> │  Gordon Server  │
21│  docker build   │               │                 │
22│  docker push    │               │  registry:5000  │
23└─────────────────┘               │  proxy:80       │
24                                  └────────┬────────┘
25                                           │
26                                           v
27                                  ┌─────────────────┐
28                                  │  Your App Live  │
29                                  │  app.domain.com │
30                                  └─────────────────┘
31```
32
331. Build your container locally where you have computing power
342. Push to your Gordon registry
353. Apply the app manifest and deploy to activate it
36
37## Quick Navigation
38
39### Getting Started
40
41- [Getting Started](./getting-started.md) - Deploy your first app in minutes
42- [Installation](./installation.md) - Detailed installation instructions
43- [Upgrading](./upgrading.md) - Migration guide for breaking changes
44- [Concepts](./concepts.md) - Core concepts and architecture
45
46### Configuration
47
48- [Configuration Overview](./config/index.md) - All configuration options
49- [Server Settings](./config/server.md) - Ports, domains, and runtime
50- [App Manifest](./config/apps.md) - Declarative app files (services, hosts, secrets, volumes)
51- [Migrate to Gordon v3](./migrate-to-v3.md) - Breaking upgrade and explicit secret migration
52- [Traffic Plane](./config/traffic.md) - TCP, UDP, and TLS passthrough entrypoints
53- [Authentication](./config/auth.md) - Registry auth plus remote CLI login/token workflows
54- [Secrets](./config/secrets.md) - Installation secrets and app secret values
55- [Network Isolation](./config/network-isolation.md) - Installation network policy
56- [Logging](./config/logging.md) - Log collection and rotation
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- [Troubleshooting](./reference/troubleshooting.md) - Common issues and solutions
74
75## Requirements
76
77- Linux VPS (Ubuntu/Debian recommended)
78- Docker or Podman runtime
79- Domain pointing to your server
80- Optional Cloudflare account or other reverse proxy for edge TLS
81
82> **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.
83
84## Related
85
86- [Wiki Tutorials](/wiki/tutorials/index.md) - Step-by-step guides
87- [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