detached a5982eb

docs(README): Update deployment instructions and clarify config file details

- Change wording from "Push code" to "Push image" for accuracy in deployment process.
- Rename section "Create Config" to "Create Config file" for clarity.
- Specify that `gordon.toml` is the config file searched by Gordon.
- Remove outdated examples of multiple environments to streamline documentation.
- Improve domain validation examples for better understanding of auto-route creation.
commit
a5982ebf9cbb26061d297f6bb410d105b8004654
author
bamen · · 2025-06-07 14:52 UTC
parent
b5669ec
signature
unsigned
1 file · +5 -22
M README.md +5 -22
@@ -3,7 +3,7 @@
33 <div align="center">
44 <img src="assets/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" width="200">
55 <h3>The Smart Way to Deploy Containers on Your VPS</h3>
6- <p><em>Push code → Auto-deploy → Zero complexity</em></p>
6+ <p><em>Push image → Auto-deploy → Zero complexity</em></p>
77 </div>
88
99 ## Why Gordon?
@@ -141,9 +141,9 @@ chmod +x gordon-linux-amd64
141141 sudo mv gordon-linux-amd64 /usr/local/bin/gordon
142142 ```
143143
144-### 6. Create Config
144+### 6. Create Config file
145145 ```toml
146-# Gordon searches for config in: ./ → ~/.config/gordon/ → ~/.gordon/ → ~/ → /etc/gordon/
146+# Gordon searches for `gordon.toml` config in: ./ → ~/.config/gordon/ → ~/.gordon/ → ~/ → /etc/gordon/
147147 # (or use --config flag)
148148 [server]
149149 port = 8080
@@ -277,14 +277,6 @@ podman push registry.yourdomain.com/myapp:latest
277277 # Save the file. Gordon redeploys the stable version in seconds. No scripts, no drama.
278278 ```
279279
280-### Multiple Environments
281-```toml
282-[routes]
283-"app.yourdomain.com" = "myapp:v1.0.0" # Stable production
284-"staging.yourdomain.com" = "myapp:latest" # Latest builds
285-"feature-xyz.yourdomain.com" = "myapp:feature-xyz" # Feature branch
286-```
287-
288280 ### Auto-Route Creation for Testing
289281
290282 Gordon can automatically create routes from image names that contain valid domain names. This is perfect for testing deployments without manually editing config files.
@@ -330,8 +322,8 @@ podman push registry.yourdomain.com/demo.example.com:v1.0.0
330322
331323 #### Domain Validation
332324 Gordon only creates auto-routes for valid domain names in image names:
333-- ✅ `api.example.com:latest` → Valid domain name, route created
334-- ✅ `staging.dev:v1.0.0` → Valid subdomain name, route created
325+- ✅ `api.example.com:latest` → Valid subdomain name, route created
326+- ✅ `myapp.dev:v1.0.0` → Valid domain name, route created
335327 - ❌ `myapp:latest` → Not a domain, ignored
336328 - ❌ `myapp:v1.0.0` → Not a domain, ignored
337329 - ❌ `localhost:latest` → Not a valid domain, ignored
@@ -341,7 +333,6 @@ Gordon only creates auto-routes for valid domain names in image names:
341333 - Auto-routes are saved to your config file permanently
342334 - You can manually edit or remove auto-created routes anytime
343335
344-```
345336
346337 ## FAQ
347338
@@ -393,14 +384,6 @@ podman build locally → test locally → push image → instant deploy
393384
394385 ## Architecture
395386
396-```
397-Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App
398- ↓
399- Event System
400- ↓
401- Domain Router → Container
402-```
403-
404387 - **Event-Driven**: Push events trigger deployments automatically
405388 - **Config Hot-Reload**: Edit gordon.toml, changes apply instantly
406389 - **Single Binary**: No dependencies except Docker
@@ -3,7 +3,7 @@
3 <div align="center">3 <div align="center">
4 <img src="assets/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" width="200">4 <img src="assets/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" width="200">
5 <h3>The Smart Way to Deploy Containers on Your VPS</h3>5 <h3>The Smart Way to Deploy Containers on Your VPS</h3>
6- <p><em>Push code → Auto-deploy → Zero complexity</em></p>6+ <p><em>Push image → Auto-deploy → Zero complexity</em></p>
7 </div>7 </div>
8 8
9 ## Why Gordon?9 ## Why Gordon?
@@ -141,9 +141,9 @@ chmod +x gordon-linux-amd64
141 sudo mv gordon-linux-amd64 /usr/local/bin/gordon141 sudo mv gordon-linux-amd64 /usr/local/bin/gordon
142 ```142 ```
143 143
144-### 6. Create Config144+### 6. Create Config file
145 ```toml145 ```toml
146-# Gordon searches for config in: ./ → ~/.config/gordon/ → ~/.gordon/ → ~/ → /etc/gordon/146+# Gordon searches for `gordon.toml` config in: ./ → ~/.config/gordon/ → ~/.gordon/ → ~/ → /etc/gordon/
147 # (or use --config flag)147 # (or use --config flag)
148 [server]148 [server]
149 port = 8080149 port = 8080
@@ -277,14 +277,6 @@ podman push registry.yourdomain.com/myapp:latest
277 # Save the file. Gordon redeploys the stable version in seconds. No scripts, no drama.277 # Save the file. Gordon redeploys the stable version in seconds. No scripts, no drama.
278 ```278 ```
279 279
280-### Multiple Environments
281-```toml
282-[routes]
283-"app.yourdomain.com" = "myapp:v1.0.0" # Stable production
284-"staging.yourdomain.com" = "myapp:latest" # Latest builds
285-"feature-xyz.yourdomain.com" = "myapp:feature-xyz" # Feature branch
286-```
287-
288 ### Auto-Route Creation for Testing280 ### Auto-Route Creation for Testing
289 281
290 Gordon can automatically create routes from image names that contain valid domain names. This is perfect for testing deployments without manually editing config files.282 Gordon can automatically create routes from image names that contain valid domain names. This is perfect for testing deployments without manually editing config files.
@@ -330,8 +322,8 @@ podman push registry.yourdomain.com/demo.example.com:v1.0.0
330 322
331 #### Domain Validation323 #### Domain Validation
332 Gordon only creates auto-routes for valid domain names in image names:324 Gordon only creates auto-routes for valid domain names in image names:
333-- ✅ `api.example.com:latest` → Valid domain name, route created325+- ✅ `api.example.com:latest` → Valid subdomain name, route created
334-- ✅ `staging.dev:v1.0.0` → Valid subdomain name, route created 326+- ✅ `myapp.dev:v1.0.0` → Valid domain name, route created
335 - ❌ `myapp:latest` → Not a domain, ignored327 - ❌ `myapp:latest` → Not a domain, ignored
336 - ❌ `myapp:v1.0.0` → Not a domain, ignored328 - ❌ `myapp:v1.0.0` → Not a domain, ignored
337 - ❌ `localhost:latest` → Not a valid domain, ignored329 - ❌ `localhost:latest` → Not a valid domain, ignored
@@ -341,7 +333,6 @@ Gordon only creates auto-routes for valid domain names in image names:
341 - Auto-routes are saved to your config file permanently333 - Auto-routes are saved to your config file permanently
342 - You can manually edit or remove auto-created routes anytime334 - You can manually edit or remove auto-created routes anytime
343 335
344-```
345 336
346 ## FAQ337 ## FAQ
347 338
@@ -393,14 +384,6 @@ podman build locally → test locally → push image → instant deploy
393 384
394 ## Architecture385 ## Architecture
395 386
396-```
397-Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App
398- ↓
399- Event System
400- ↓
401- Domain Router → Container
402-```
403-
404 - **Event-Driven**: Push events trigger deployments automatically387 - **Event-Driven**: Push events trigger deployments automatically
405 - **Config Hot-Reload**: Edit gordon.toml, changes apply instantly388 - **Config Hot-Reload**: Edit gordon.toml, changes apply instantly
406 - **Single Binary**: No dependencies except Docker389 - **Single Binary**: No dependencies except Docker

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