detached 82eb0be

docs: update all examples to use gordon_domain

- Update config service to prefer gordon_domain over registry_domain
- Update all documentation examples to use gordon_domain
- Change CLI status label from "Registry:" to "Domain:"
- Keep test fixtures using registry_domain for backwards compat testing
commit
82eb0be29011ad00682b4e42c05ab8f67ab0fb82
author
bnema · · 2026-01-16 21:29 UTC
parent
bc103cc
signature
unsigned
11 files · +27 -21
M docs/config/auto-route.md +3 -3
@@ -126,7 +126,7 @@ enabled = true
126126
127127 ```toml
128128 [server]
129-registry_domain = "registry.local"
129+gordon_domain = "gordon.local"
130130
131131 [auto_route]
132132 enabled = true
@@ -136,8 +136,8 @@ enabled = true
136136
137137 Usage:
138138 ```bash
139-docker push registry.local/myapp.local:latest
140-docker push registry.local/api.local:latest
139+docker push gordon.local/myapp.local:latest
140+docker push gordon.local/api.local:latest
141141 # Both routes created automatically
142142 ```
143143
@@ -126,7 +126,7 @@ enabled = true
126 126
127 ```toml127 ```toml
128 [server]128 [server]
129-registry_domain = "registry.local"129+gordon_domain = "gordon.local"
130 130
131 [auto_route]131 [auto_route]
132 enabled = true132 enabled = true
@@ -136,8 +136,8 @@ enabled = true
136 136
137 Usage:137 Usage:
138 ```bash138 ```bash
139-docker push registry.local/myapp.local:latest139+docker push gordon.local/myapp.local:latest
140-docker push registry.local/api.local:latest140+docker push gordon.local/api.local:latest
141 # Both routes created automatically141 # Both routes created automatically
142 ```142 ```
143 143
M docs/config/index.md +2 -2
@@ -15,7 +15,7 @@ Gordon uses a single TOML configuration file located at `~/.config/gordon/gordon
1515 [server]
1616 port = 8080
1717 registry_port = 5000
18-registry_domain = "registry.mydomain.com"
18+gordon_domain = "gordon.mydomain.com"
1919
2020 [routes]
2121 "app.mydomain.com" = "myapp:latest"
@@ -30,7 +30,7 @@ registry_domain = "registry.mydomain.com"
3030 [server]
3131 port = 8080 # HTTP proxy port (default: 80)
3232 registry_port = 5000 # Registry port (default: 5000)
33-registry_domain = "registry.mydomain.com" # Required: registry domain
33+gordon_domain = "gordon.mydomain.com" # Required: Gordon domain (registry + API)
3434 # data_dir = "~/.gordon" # Default for user installations
3535
3636 # Secrets backend
@@ -15,7 +15,7 @@ Gordon uses a single TOML configuration file located at `~/.config/gordon/gordon
15 [server]15 [server]
16 port = 808016 port = 8080
17 registry_port = 500017 registry_port = 5000
18-registry_domain = "registry.mydomain.com"18+gordon_domain = "gordon.mydomain.com"
19 19
20 [routes]20 [routes]
21 "app.mydomain.com" = "myapp:latest"21 "app.mydomain.com" = "myapp:latest"
@@ -30,7 +30,7 @@ registry_domain = "registry.mydomain.com"
30 [server]30 [server]
31 port = 8080 # HTTP proxy port (default: 80)31 port = 8080 # HTTP proxy port (default: 80)
32 registry_port = 5000 # Registry port (default: 5000)32 registry_port = 5000 # Registry port (default: 5000)
33-registry_domain = "registry.mydomain.com" # Required: registry domain33+gordon_domain = "gordon.mydomain.com" # Required: Gordon domain (registry + API)
34 # data_dir = "~/.gordon" # Default for user installations34 # data_dir = "~/.gordon" # Default for user installations
35 35
36 # Secrets backend36 # Secrets backend
M docs/getting-started.md +1 -1
@@ -34,7 +34,7 @@ Edit `~/.config/gordon/gordon.toml`:
3434 [server]
3535 port = 8080 # Proxy port (use with Cloudflare)
3636 registry_port = 5000 # Registry port
37-registry_domain = "registry.mydomain.com" # Your registry domain
37+gordon_domain = "gordon.mydomain.com" # Your Gordon domain
3838
3939 [routes]
4040 "app.mydomain.com" = "myapp:latest" # Domain → Image mapping
@@ -34,7 +34,7 @@ Edit `~/.config/gordon/gordon.toml`:
34 [server]34 [server]
35 port = 8080 # Proxy port (use with Cloudflare)35 port = 8080 # Proxy port (use with Cloudflare)
36 registry_port = 5000 # Registry port36 registry_port = 5000 # Registry port
37-registry_domain = "registry.mydomain.com" # Your registry domain37+gordon_domain = "gordon.mydomain.com" # Your Gordon domain
38 38
39 [routes]39 [routes]
40 "app.mydomain.com" = "myapp:latest" # Domain → Image mapping40 "app.mydomain.com" = "myapp:latest" # Domain → Image mapping
M docs/installation.md +1 -1
@@ -166,7 +166,7 @@ Minimum required configuration:
166166 [server]
167167 port = 8080
168168 registry_port = 5000
169-registry_domain = "registry.yourdomain.com"
169+gordon_domain = "gordon.yourdomain.com"
170170
171171 [routes]
172172 "app.yourdomain.com" = "myapp:latest"
@@ -166,7 +166,7 @@ Minimum required configuration:
166 [server]166 [server]
167 port = 8080167 port = 8080
168 registry_port = 5000168 registry_port = 5000
169-registry_domain = "registry.yourdomain.com"169+gordon_domain = "gordon.yourdomain.com"
170 170
171 [routes]171 [routes]
172 "app.yourdomain.com" = "myapp:latest"172 "app.yourdomain.com" = "myapp:latest"
M internal/adapters/in/cli/routes.go +1 -1
@@ -249,7 +249,7 @@ func newStatusCmd() *cobra.Command {
249249 fmt.Println(styles.Theme.Title.Render("Gordon Status"))
250250 fmt.Println()
251251
252- fmt.Printf("%s %s\n", styles.Theme.Bold.Render("Registry:"), status.RegistryDomain)
252+ fmt.Printf("%s %s\n", styles.Theme.Bold.Render("Domain:"), status.RegistryDomain)
253253 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Registry Port:"), status.RegistryPort)
254254 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Server Port:"), status.ServerPort)
255255 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Routes:"), status.Routes)
@@ -249,7 +249,7 @@ func newStatusCmd() *cobra.Command {
249 fmt.Println(styles.Theme.Title.Render("Gordon Status"))249 fmt.Println(styles.Theme.Title.Render("Gordon Status"))
250 fmt.Println()250 fmt.Println()
251 251
252- fmt.Printf("%s %s\n", styles.Theme.Bold.Render("Registry:"), status.RegistryDomain)252+ fmt.Printf("%s %s\n", styles.Theme.Bold.Render("Domain:"), status.RegistryDomain)
253 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Registry Port:"), status.RegistryPort)253 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Registry Port:"), status.RegistryPort)
254 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Server Port:"), status.ServerPort)254 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Server Port:"), status.ServerPort)
255 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Routes:"), status.Routes)255 fmt.Printf("%s %d\n", styles.Theme.Bold.Render("Routes:"), status.Routes)
M internal/usecase/config/service.go +7 -1
@@ -87,10 +87,16 @@ func (s *Service) Load(ctx context.Context) error {
8787
8888 // loadConfigValues loads simple config values from viper.
8989 func (s *Service) loadConfigValues() Config {
90+ // Prefer gordon_domain over registry_domain
91+ registryDomain := s.viper.GetString("server.gordon_domain")
92+ if registryDomain == "" {
93+ registryDomain = s.viper.GetString("server.registry_domain")
94+ }
95+
9096 return Config{
9197 ServerPort: s.viper.GetInt("server.port"),
9298 RegistryPort: s.viper.GetInt("server.registry_port"),
93- RegistryDomain: s.viper.GetString("server.registry_domain"),
99+ RegistryDomain: registryDomain,
94100 DataDir: s.viper.GetString("server.data_dir"),
95101 AutoRouteEnabled: s.viper.GetBool("auto_route.enabled"),
96102 NetworkIsolation: s.viper.GetBool("network_isolation.enabled"),
@@ -87,10 +87,16 @@ func (s *Service) Load(ctx context.Context) error {
87 87
88 // loadConfigValues loads simple config values from viper.88 // loadConfigValues loads simple config values from viper.
89 func (s *Service) loadConfigValues() Config {89 func (s *Service) loadConfigValues() Config {
90+ // Prefer gordon_domain over registry_domain
91+ registryDomain := s.viper.GetString("server.gordon_domain")
92+ if registryDomain == "" {
93+ registryDomain = s.viper.GetString("server.registry_domain")
94+ }
95+
90 return Config{96 return Config{
91 ServerPort: s.viper.GetInt("server.port"),97 ServerPort: s.viper.GetInt("server.port"),
92 RegistryPort: s.viper.GetInt("server.registry_port"),98 RegistryPort: s.viper.GetInt("server.registry_port"),
93- RegistryDomain: s.viper.GetString("server.registry_domain"),99+ RegistryDomain: registryDomain,
94 DataDir: s.viper.GetString("server.data_dir"),100 DataDir: s.viper.GetString("server.data_dir"),
95 AutoRouteEnabled: s.viper.GetBool("auto_route.enabled"),101 AutoRouteEnabled: s.viper.GetBool("auto_route.enabled"),
96 NetworkIsolation: s.viper.GetBool("network_isolation.enabled"),102 NetworkIsolation: s.viper.GetBool("network_isolation.enabled"),
M wiki/examples/index.md +3 -3
@@ -14,7 +14,7 @@ Annotated Gordon configuration examples for common scenarios.
1414
1515 ```toml
1616 [server]
17-registry_domain = "registry.local"
17+gordon_domain = "gordon.local"
1818
1919 [routes]
2020 "app.local" = "myapp:latest"
@@ -25,7 +25,7 @@ registry_domain = "registry.local"
2525 ```toml
2626 [server]
2727 port = 8080
28-registry_domain = "registry.local"
28+gordon_domain = "gordon.local"
2929
3030 [registry_auth]
3131 enabled = false
@@ -42,7 +42,7 @@ enabled = true
4242 ```toml
4343 [server]
4444 port = 8080
45-registry_domain = "registry.company.com"
45+gordon_domain = "gordon.company.com"
4646
4747 [secrets]
4848 backend = "pass"
@@ -14,7 +14,7 @@ Annotated Gordon configuration examples for common scenarios.
14 14
15 ```toml15 ```toml
16 [server]16 [server]
17-registry_domain = "registry.local"17+gordon_domain = "gordon.local"
18 18
19 [routes]19 [routes]
20 "app.local" = "myapp:latest"20 "app.local" = "myapp:latest"
@@ -25,7 +25,7 @@ registry_domain = "registry.local"
25 ```toml25 ```toml
26 [server]26 [server]
27 port = 808027 port = 8080
28-registry_domain = "registry.local"28+gordon_domain = "gordon.local"
29 29
30 [registry_auth]30 [registry_auth]
31 enabled = false31 enabled = false
@@ -42,7 +42,7 @@ enabled = true
42 ```toml42 ```toml
43 [server]43 [server]
44 port = 808044 port = 8080
45-registry_domain = "registry.company.com"45+gordon_domain = "gordon.company.com"
46 46
47 [secrets]47 [secrets]
48 backend = "pass"48 backend = "pass"
M wiki/examples/minimal.md +4 -4
@@ -16,7 +16,7 @@ The simplest working Gordon configuration.
1616 [server]
1717 port = 8080
1818 registry_port = 5000
19-registry_domain = "registry.local"
19+gordon_domain = "gordon.local"
2020
2121 # Authentication disabled for simplicity
2222 [registry_auth]
@@ -32,7 +32,7 @@ enabled = false
3232 ### 1. Add to /etc/hosts
3333
3434 ```bash
35-echo "127.0.0.1 app.local registry.local" | sudo tee -a /etc/hosts
35+echo "127.0.0.1 app.local gordon.local" | sudo tee -a /etc/hosts
3636 ```
3737
3838 ### 2. Start Gordon
@@ -45,8 +45,8 @@ gordon serve
4545
4646 ```bash
4747 docker build -t myapp .
48-docker tag myapp registry.local:5000/myapp:latest
49-docker push registry.local:5000/myapp:latest
48+docker tag myapp gordon.local:5000/myapp:latest
49+docker push gordon.local:5000/myapp:latest
5050 ```
5151
5252 ### 4. Access
@@ -16,7 +16,7 @@ The simplest working Gordon configuration.
16 [server]16 [server]
17 port = 808017 port = 8080
18 registry_port = 500018 registry_port = 5000
19-registry_domain = "registry.local"19+gordon_domain = "gordon.local"
20 20
21 # Authentication disabled for simplicity21 # Authentication disabled for simplicity
22 [registry_auth]22 [registry_auth]
@@ -32,7 +32,7 @@ enabled = false
32 ### 1. Add to /etc/hosts32 ### 1. Add to /etc/hosts
33 33
34 ```bash34 ```bash
35-echo "127.0.0.1 app.local registry.local" | sudo tee -a /etc/hosts35+echo "127.0.0.1 app.local gordon.local" | sudo tee -a /etc/hosts
36 ```36 ```
37 37
38 ### 2. Start Gordon38 ### 2. Start Gordon
@@ -45,8 +45,8 @@ gordon serve
45 45
46 ```bash46 ```bash
47 docker build -t myapp .47 docker build -t myapp .
48-docker tag myapp registry.local:5000/myapp:latest48+docker tag myapp gordon.local:5000/myapp:latest
49-docker push registry.local:5000/myapp:latest49+docker push gordon.local:5000/myapp:latest
50 ```50 ```
51 51
52 ### 4. Access52 ### 4. Access
M wiki/examples/production.md +3 -3
@@ -17,7 +17,7 @@ A complete Gordon configuration for production environments.
1717 [server]
1818 port = 8080 # Cloudflare forwards 443 → 8080
1919 registry_port = 5000
20-registry_domain = "registry.company.com"
20+gordon_domain = "gordon.company.com"
2121
2222 # Use pass for secrets (recommended)
2323 [secrets]
@@ -161,10 +161,10 @@ systemctl --user enable --now gordon
161161 docker build -t company-app .
162162
163163 # Tag with version
164-docker tag company-app registry.company.com/company-app:v2.2.0
164+docker tag company-app gordon.company.com/company-app:v2.2.0
165165
166166 # Push to deploy
167-docker push registry.company.com/company-app:v2.2.0
167+docker push gordon.company.com/company-app:v2.2.0
168168
169169 # Update config with new version
170170 vim ~/.config/gordon/gordon.toml
@@ -17,7 +17,7 @@ A complete Gordon configuration for production environments.
17 [server]17 [server]
18 port = 8080 # Cloudflare forwards 443 → 808018 port = 8080 # Cloudflare forwards 443 → 8080
19 registry_port = 500019 registry_port = 5000
20-registry_domain = "registry.company.com"20+gordon_domain = "gordon.company.com"
21 21
22 # Use pass for secrets (recommended)22 # Use pass for secrets (recommended)
23 [secrets]23 [secrets]
@@ -161,10 +161,10 @@ systemctl --user enable --now gordon
161 docker build -t company-app .161 docker build -t company-app .
162 162
163 # Tag with version163 # Tag with version
164-docker tag company-app registry.company.com/company-app:v2.2.0164+docker tag company-app gordon.company.com/company-app:v2.2.0
165 165
166 # Push to deploy166 # Push to deploy
167-docker push registry.company.com/company-app:v2.2.0167+docker push gordon.company.com/company-app:v2.2.0
168 168
169 # Update config with new version169 # Update config with new version
170 vim ~/.config/gordon/gordon.toml170 vim ~/.config/gordon/gordon.toml
M wiki/guides/podman-rootless.md +1 -1
@@ -119,7 +119,7 @@ Edit `~/.config/gordon/gordon.toml`:
119119 [server]
120120 port = 8080 # Must match firewall forward (80 → 8080)
121121 registry_port = 5000
122-registry_domain = "registry.mydomain.com"
122+gordon_domain = "gordon.mydomain.com"
123123
124124 [routes]
125125 "app.mydomain.com" = "myapp:latest"
@@ -119,7 +119,7 @@ Edit `~/.config/gordon/gordon.toml`:
119 [server]119 [server]
120 port = 8080 # Must match firewall forward (80 → 8080)120 port = 8080 # Must match firewall forward (80 → 8080)
121 registry_port = 5000121 registry_port = 5000
122-registry_domain = "registry.mydomain.com"122+gordon_domain = "gordon.mydomain.com"
123 123
124 [routes]124 [routes]
125 "app.mydomain.com" = "myapp:latest"125 "app.mydomain.com" = "myapp:latest"
M wiki/guides/running-in-container.md +1 -1
@@ -45,7 +45,7 @@ Create `gordon.toml`:
4545 [server]
4646 port = 8080
4747 registry_port = 5000
48-registry_domain = "registry.mydomain.com"
48+gordon_domain = "gordon.mydomain.com"
4949
5050 [routes]
5151 "app.mydomain.com" = "myapp:latest"
@@ -45,7 +45,7 @@ Create `gordon.toml`:
45 [server]45 [server]
46 port = 808046 port = 8080
47 registry_port = 500047 registry_port = 5000
48-registry_domain = "registry.mydomain.com"48+gordon_domain = "gordon.mydomain.com"
49 49
50 [routes]50 [routes]
51 "app.mydomain.com" = "myapp:latest"51 "app.mydomain.com" = "myapp:latest"

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