v2.31.0-dev19 35467d7

gordon.toml.example RawHistoryFolder

1# Gordon example configuration
2# Copy this file to ~/.config/gordon/gordon.toml and adjust for your domain.
3
4[server]
5port = 8088
6registry_port = 5000
7gordon_domain = "gordon.example.com"
8# legacy_registry_domains = ["registry.example.com:5000"]
9# data_dir = "~/.gordon"
10
11[auth]
12enabled = true
13# Use "pass" or "sops" in production. The unsafe backend reads a local file
14# under server.data_dir/secrets and is intended for development only.
15secrets_backend = "pass"
16token_secret = "gordon/auth/token_secret"
17token_expiry = "30d"
18access_token_ttl = "15m"
19
20[api.rate_limit]
21enabled = true
22global_rps = 500
23per_ip_rps = 50
24burst = 100
25trusted_proxies = []
26
27[deploy]
28pull_policy = "if-tag-changed"
29readiness_mode = "auto"
30health_timeout = "90s"
31readiness_delay = "5s"
32drain_mode = "auto"
33drain_timeout = "30s"
34drain_delay = "2s"
35
36[containers]
37# "compat" preserves broad image compatibility. "strict" enables a read-only
38# root filesystem and narrower Linux capabilities.
39security_profile = "compat"
40
41[network_isolation]
42enabled = true
43network_prefix = "gordon"
44# Set true to create Docker internal networks without direct external egress.
45internal = false
46
47[volumes]
48auto_create = true
49prefix = "gordon"
50preserve = true
51
52[images]
53# Explicit external registries must be listed here. Gordon's own registry is
54# always allowed; localhost/private/link-local registries are always rejected.
55allowed_registries = []
56# Require @sha256:<digest> for allowlisted external registries.
57require_digest = false
58
59[images.prune]
60enabled = false
61schedule = "daily"
62keep_last = 3
63
64[auto_route]
65enabled = false
66
67[logging]
68level = "info"
69format = "console"
70
71[logging.container_logs]
72enabled = true
73
74[backups]
75enabled = false
76schedule = "daily"
77storage_dir = ""
78
79[backups.retention]
80hourly = 0
81daily = 0
82weekly = 0
83monthly = 0
84
85[routes]
86# "app.example.com" = { image = "myapp:latest" }
87
88[external_routes]
89# "status.example.com" = "127.0.0.1:9000"
90
91[network_groups]
92# "backend" = ["app.example.com", "api.example.com"]
93
94[attachments]
95# "app.example.com" = ["postgres:18"]

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