detached 210f209

docs: Update README for improved clarity and consistency

- Replace mascot image with a higher quality version.
- Streamline section headings for better readability.
- Remove emojis from section titles to maintain a professional tone.
- Clarify the FAQ section to better differentiate Gordon from reverse proxies.
commit
210f2098c14ee5291eca09d7d161f228313222bc
author
bamen · · 2025-06-07 07:56 UTC
parent
27d1268
signature
unsigned
1 file · +27 -23
M README.md +27 -23
@@ -1,7 +1,7 @@
11 # Gordon
22
33 <div align="center">
4- <img src="assets/gordon-mascot.png" alt="Gordon Mascot" width="200">
4+ <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>
66 <p><em>Push code → Auto-deploy → Zero complexity</em></p>
77 </div>
@@ -12,14 +12,14 @@
1212
1313 Gordon is the missing piece that makes container deployment on budget VPS servers as simple as expensive PaaS solutions. One binary, one config file, unlimited apps.
1414
15-### 🎯 Perfect For
15+### Perfect For
1616
1717 - **Solo developers** with multiple side projects on one VPS
1818 - **Small teams** who want Heroku-like simplicity without the cost
1919 - **Agencies** deploying client apps across VPS servers
2020 - **Anyone** tired of complex deployment pipelines
2121
22-## 🚀 How It Works
22+## How It Works
2323
2424 ### Build Locally, Deploy Instantly
2525
@@ -37,7 +37,7 @@ podman push registry.yourdomain.com/myapp:latest
3737
3838 **No build servers. No CI/CD complexity. If it runs on your machine, it runs in production.**
3939
40-### 🔄 Instant Rollbacks
40+### Instant Rollbacks
4141
4242 Something broke? Just change your config:
4343
@@ -51,30 +51,30 @@ Something broke? Just change your config:
5151
5252 Save the file. Gordon redeploys the previous version. Problem solved in seconds.
5353
54-## ✨ Key Features
54+## Key Features
5555
56-### 🏠 Local-First Development
56+### Local-First Development
5757 **Your machine is the build server.** Test locally with Podman's rootless containers, push when ready. No waiting for remote builds.
5858
59-### 🏦 Built-in Container Registry
59+### Built-in Container Registry
6060 Your VPS becomes a private container registry (Docker/Podman compatible). No Docker Hub subscription needed.
6161
62-### 🔄 Push-to-Deploy Magic
62+### Push-to-Deploy Magic
6363 Gordon watches for new images and deploys them instantly to configured domains.
6464
65-### ⏮️ Version Control Built-In
65+### Version Control Built-In
6666 Keep multiple versions in your registry. Switch between them instantly by editing the config.
6767
68-### 🌐 Multi-Domain Routing
68+### Multi-Domain Routing
6969 Run unlimited apps on one server. Each gets its own domain with automatic HTTPS via Cloudflare.
7070
71-### 📦 Zero-Downtime Updates
71+### Zero-Downtime Updates
7272 Push new versions anytime. Gordon handles graceful container swaps.
7373
74-### 🚀 Automatic Deployment
74+### Automatic Deployment
7575 Containers deploy instantly when you push new images. No manual deployment steps needed.
7676
77-## 🚀 Quick Start (5 minutes)
77+## Quick Start (5 minutes)
7878
7979 ### 1. Get a VPS & Install Podman (Rootless & Secure)
8080 ```bash
@@ -192,7 +192,11 @@ sudo netfilter-persistent save
192192 sudo ufw allow 22,80,443,8080/tcp
193193 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
194194 sudo sysctl -p
195+```
195196
197+### 7. Deploy Your First App
198+```bash
199+# Now from your local development machine:
196200 # Authenticate with your Gordon registry
197201 podman login registry.yourdomain.com
198202 # Use the username/password from your gordon.toml config
@@ -200,10 +204,10 @@ podman login registry.yourdomain.com
200204 # Deploy your first app (using podman)
201205 podman tag myapp:latest registry.yourdomain.com/myapp:latest
202206 podman push registry.yourdomain.com/myapp:latest
203-# Visit https://app.yourdomain.com 🎉
207+# Visit https://app.yourdomain.com
204208 ```
205209
206-## 🎯 Real-World Examples
210+## Real-World Examples
207211
208212 ### Deploy a Node.js App
209213 ```bash
@@ -259,10 +263,10 @@ podman push registry.yourdomain.com/myapp:latest
259263 "feature-xyz.yourdomain.com" = "myapp:feature-xyz" # Feature branch
260264 ```
261265
262-## 🤔 FAQ
266+## FAQ
263267
264268 **Q: How is this different from Traefik/Nginx Proxy Manager?**
265-A: Gordon includes a Docker registry and automatic deployment. Push an image, get a deployment. No manual container management.
269+A: Those are just reverse proxies - you still need to manually start/stop containers. Gordon is a complete deployment platform: built-in registry, automatic deployment on push, and container lifecycle management. It's the difference between a router and a full PaaS.
266270
267271 **Q: Where do builds happen?**
268272 A: On YOUR machine. If it runs locally, it'll run in production. No mysterious build server issues.
@@ -285,7 +289,7 @@ A: Runs comfortably on 1GB RAM VPS. Gordon itself uses <50MB.
285289 **Q: What about secrets?**
286290 A: Use environment variables in your container or Docker secrets. Gordon doesn't interfere.
287291
288-## 💡 Philosophy: Build Local, Deploy Simple
292+## Philosophy: Build Local, Deploy Simple
289293
290294 ### Why No Build Servers?
291295
@@ -304,7 +308,7 @@ push code → wait for build → hope it works → debug remotely → repeat
304308 podman build locally → test locally → push image → instant deploy
305309 ```
306310
307-## 🏗️ Architecture
311+## Architecture
308312
309313 ```
310314 Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App
@@ -320,7 +324,7 @@ Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App
320324 - **Stateless**: Configuration is the only state
321325 - **Fast**: Written in Go for minimal overhead
322326
323-## 🚀 Advanced Usage
327+## Advanced Usage
324328
325329 ### Container Runtime Configuration
326330 ```toml
@@ -365,11 +369,11 @@ curl -u admin:password https://registry.yourdomain.com/v2/_catalog
365369 curl -u admin:password https://registry.yourdomain.com/v2/myapp/tags/list
366370 ```
367371
368-## 🤝 Contributing
372+## Contributing
369373
370374 Gordon is open source and we love contributions! Check out our [issues](https://github.com/yourusername/gordon/issues) or submit a PR.
371375
372-## 📄 License
376+## License
373377
374378 GPL-3.0 - Use freely, contribute back.
375379
@@ -377,5 +381,5 @@ GPL-3.0 - Use freely, contribute back.
377381
378382 <div align="center">
379383 <p><strong>Stop overcomplicating container deployment.</strong></p>
380- <p>Star ⭐ this repo if Gordon saves you money!</p>
384+ <p>Star this repo if Gordon saves you money!</p>
381385 </div>⏎̸
@@ -1,7 +1,7 @@
1 # Gordon1 # Gordon
2 2
3 <div align="center">3 <div align="center">
4- <img src="assets/gordon-mascot.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 code → Auto-deploy → Zero complexity</em></p>
7 </div>7 </div>
@@ -12,14 +12,14 @@
12 12
13 Gordon is the missing piece that makes container deployment on budget VPS servers as simple as expensive PaaS solutions. One binary, one config file, unlimited apps.13 Gordon is the missing piece that makes container deployment on budget VPS servers as simple as expensive PaaS solutions. One binary, one config file, unlimited apps.
14 14
15-### 🎯 Perfect For15+### Perfect For
16 16
17 - **Solo developers** with multiple side projects on one VPS17 - **Solo developers** with multiple side projects on one VPS
18 - **Small teams** who want Heroku-like simplicity without the cost18 - **Small teams** who want Heroku-like simplicity without the cost
19 - **Agencies** deploying client apps across VPS servers19 - **Agencies** deploying client apps across VPS servers
20 - **Anyone** tired of complex deployment pipelines20 - **Anyone** tired of complex deployment pipelines
21 21
22-## 🚀 How It Works22+## How It Works
23 23
24 ### Build Locally, Deploy Instantly24 ### Build Locally, Deploy Instantly
25 25
@@ -37,7 +37,7 @@ podman push registry.yourdomain.com/myapp:latest
37 37
38 **No build servers. No CI/CD complexity. If it runs on your machine, it runs in production.**38 **No build servers. No CI/CD complexity. If it runs on your machine, it runs in production.**
39 39
40-### 🔄 Instant Rollbacks40+### Instant Rollbacks
41 41
42 Something broke? Just change your config:42 Something broke? Just change your config:
43 43
@@ -51,30 +51,30 @@ Something broke? Just change your config:
51 51
52 Save the file. Gordon redeploys the previous version. Problem solved in seconds.52 Save the file. Gordon redeploys the previous version. Problem solved in seconds.
53 53
54-## ✨ Key Features54+## Key Features
55 55
56-### 🏠 Local-First Development56+### Local-First Development
57 **Your machine is the build server.** Test locally with Podman's rootless containers, push when ready. No waiting for remote builds.57 **Your machine is the build server.** Test locally with Podman's rootless containers, push when ready. No waiting for remote builds.
58 58
59-### 🏦 Built-in Container Registry59+### Built-in Container Registry
60 Your VPS becomes a private container registry (Docker/Podman compatible). No Docker Hub subscription needed.60 Your VPS becomes a private container registry (Docker/Podman compatible). No Docker Hub subscription needed.
61 61
62-### 🔄 Push-to-Deploy Magic62+### Push-to-Deploy Magic
63 Gordon watches for new images and deploys them instantly to configured domains.63 Gordon watches for new images and deploys them instantly to configured domains.
64 64
65-### ⏮️ Version Control Built-In65+### Version Control Built-In
66 Keep multiple versions in your registry. Switch between them instantly by editing the config.66 Keep multiple versions in your registry. Switch between them instantly by editing the config.
67 67
68-### 🌐 Multi-Domain Routing68+### Multi-Domain Routing
69 Run unlimited apps on one server. Each gets its own domain with automatic HTTPS via Cloudflare.69 Run unlimited apps on one server. Each gets its own domain with automatic HTTPS via Cloudflare.
70 70
71-### 📦 Zero-Downtime Updates71+### Zero-Downtime Updates
72 Push new versions anytime. Gordon handles graceful container swaps.72 Push new versions anytime. Gordon handles graceful container swaps.
73 73
74-### 🚀 Automatic Deployment74+### Automatic Deployment
75 Containers deploy instantly when you push new images. No manual deployment steps needed.75 Containers deploy instantly when you push new images. No manual deployment steps needed.
76 76
77-## 🚀 Quick Start (5 minutes)77+## Quick Start (5 minutes)
78 78
79 ### 1. Get a VPS & Install Podman (Rootless & Secure)79 ### 1. Get a VPS & Install Podman (Rootless & Secure)
80 ```bash80 ```bash
@@ -192,7 +192,11 @@ sudo netfilter-persistent save
192 sudo ufw allow 22,80,443,8080/tcp192 sudo ufw allow 22,80,443,8080/tcp
193 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf193 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
194 sudo sysctl -p194 sudo sysctl -p
195+```
195 196
197+### 7. Deploy Your First App
198+```bash
199+# Now from your local development machine:
196 # Authenticate with your Gordon registry200 # Authenticate with your Gordon registry
197 podman login registry.yourdomain.com201 podman login registry.yourdomain.com
198 # Use the username/password from your gordon.toml config202 # Use the username/password from your gordon.toml config
@@ -200,10 +204,10 @@ podman login registry.yourdomain.com
200 # Deploy your first app (using podman)204 # Deploy your first app (using podman)
201 podman tag myapp:latest registry.yourdomain.com/myapp:latest205 podman tag myapp:latest registry.yourdomain.com/myapp:latest
202 podman push registry.yourdomain.com/myapp:latest206 podman push registry.yourdomain.com/myapp:latest
203-# Visit https://app.yourdomain.com 🎉207+# Visit https://app.yourdomain.com
204 ```208 ```
205 209
206-## 🎯 Real-World Examples210+## Real-World Examples
207 211
208 ### Deploy a Node.js App212 ### Deploy a Node.js App
209 ```bash213 ```bash
@@ -259,10 +263,10 @@ podman push registry.yourdomain.com/myapp:latest
259 "feature-xyz.yourdomain.com" = "myapp:feature-xyz" # Feature branch263 "feature-xyz.yourdomain.com" = "myapp:feature-xyz" # Feature branch
260 ```264 ```
261 265
262-## 🤔 FAQ266+## FAQ
263 267
264 **Q: How is this different from Traefik/Nginx Proxy Manager?** 268 **Q: How is this different from Traefik/Nginx Proxy Manager?**
265-A: Gordon includes a Docker registry and automatic deployment. Push an image, get a deployment. No manual container management.269+A: Those are just reverse proxies - you still need to manually start/stop containers. Gordon is a complete deployment platform: built-in registry, automatic deployment on push, and container lifecycle management. It's the difference between a router and a full PaaS.
266 270
267 **Q: Where do builds happen?** 271 **Q: Where do builds happen?**
268 A: On YOUR machine. If it runs locally, it'll run in production. No mysterious build server issues.272 A: On YOUR machine. If it runs locally, it'll run in production. No mysterious build server issues.
@@ -285,7 +289,7 @@ A: Runs comfortably on 1GB RAM VPS. Gordon itself uses <50MB.
285 **Q: What about secrets?** 289 **Q: What about secrets?**
286 A: Use environment variables in your container or Docker secrets. Gordon doesn't interfere.290 A: Use environment variables in your container or Docker secrets. Gordon doesn't interfere.
287 291
288-## 💡 Philosophy: Build Local, Deploy Simple292+## Philosophy: Build Local, Deploy Simple
289 293
290 ### Why No Build Servers?294 ### Why No Build Servers?
291 295
@@ -304,7 +308,7 @@ push code → wait for build → hope it works → debug remotely → repeat
304 podman build locally → test locally → push image → instant deploy308 podman build locally → test locally → push image → instant deploy
305 ```309 ```
306 310
307-## 🏗️ Architecture311+## Architecture
308 312
309 ```313 ```
310 Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App314 Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App
@@ -320,7 +324,7 @@ Your Machine → Docker Image → Gordon Registry → Auto-Deploy → Live App
320 - **Stateless**: Configuration is the only state324 - **Stateless**: Configuration is the only state
321 - **Fast**: Written in Go for minimal overhead325 - **Fast**: Written in Go for minimal overhead
322 326
323-## 🚀 Advanced Usage327+## Advanced Usage
324 328
325 ### Container Runtime Configuration329 ### Container Runtime Configuration
326 ```toml330 ```toml
@@ -365,11 +369,11 @@ curl -u admin:password https://registry.yourdomain.com/v2/_catalog
365 curl -u admin:password https://registry.yourdomain.com/v2/myapp/tags/list369 curl -u admin:password https://registry.yourdomain.com/v2/myapp/tags/list
366 ```370 ```
367 371
368-## 🤝 Contributing372+## Contributing
369 373
370 Gordon is open source and we love contributions! Check out our [issues](https://github.com/yourusername/gordon/issues) or submit a PR.374 Gordon is open source and we love contributions! Check out our [issues](https://github.com/yourusername/gordon/issues) or submit a PR.
371 375
372-## 📄 License376+## License
373 377
374 GPL-3.0 - Use freely, contribute back.378 GPL-3.0 - Use freely, contribute back.
375 379
@@ -377,5 +381,5 @@ GPL-3.0 - Use freely, contribute back.
377 381
378 <div align="center">382 <div align="center">
379 <p><strong>Stop overcomplicating container deployment.</strong></p>383 <p><strong>Stop overcomplicating container deployment.</strong></p>
380- <p>Star ⭐ this repo if Gordon saves you money!</p>384+ <p>Star this repo if Gordon saves you money!</p>
381 </div>⏎̸385 </div>⏎̸

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