detached ecc578c

docs(getting-started): replace manual docker registry steps with gordon push flow

commit
ecc578ce395117e6d607daa8d5fd3d85cb2aa643
author
bnema · · 2026-02-11 04:10 UTC
parent
20b9aac
signature
unsigned
1 file · +17 -15
M docs/getting-started.md +17 -15
@@ -118,31 +118,35 @@ sudo loginctl enable-linger $USER
118118
119119 ## 7. Generate a Deploy Token
120120
121-Create a token for pushing images to your registry (skip if auth is disabled):
121+Create a token for remote CLI deploys (skip if auth is disabled):
122122
123123 ```bash
124124 gordon auth token generate --subject deploy --scopes push,pull --expiry 0
125125 ```
126126
127-Save this token securely - you'll need it for Docker login.
127+Save this token securely - you'll use it with `gordon --remote` (or a saved remote).
128128
129129 ## 8. Deploy Your First App
130130
131131 On your local machine:
132132
133133 ```bash
134-# Log in to your Gordon registry (skip if auth is disabled)
135-docker login -u deploy -p <your-token> registry.mydomain.com
134+# Save and select your Gordon remote (one-time)
135+gordon remotes add prod https://gordon.mydomain.com --token <your-token>
136+gordon remotes use prod
136137
137-# Build your app
138-docker build -t myapp .
138+# Build, push, and deploy through Gordon
139+gordon push myapp --build --no-confirm
140+```
139141
140-# Tag for your registry
141-docker tag myapp registry.mydomain.com/myapp:latest
142+What this command does:
142143
143-# Push to Gordon
144-docker push registry.mydomain.com/myapp:latest
145-```
144+- `gordon push myapp` resolves the route for `myapp`, chooses a version tag,
145+ pushes image tags to Gordon's registry, and triggers deploy.
146+- `--build` runs `docker buildx build` first, injecting `VERSION` from the tag
147+ into the build and then pushing both version and `latest` tags.
148+- `--no-confirm` skips the interactive "Deploy now?" prompt so the deploy runs
149+ immediately.
146150
147151 Your app is now live at `https://app.mydomain.com`!
148152
@@ -151,10 +155,8 @@ Your app is now live at `https://app.mydomain.com`!
151155 Push a new image to deploy with zero downtime:
152156
153157 ```bash
154-# Make changes, rebuild
155-docker build -t myapp .
156-docker tag myapp registry.mydomain.com/myapp:latest
157-docker push registry.mydomain.com/myapp:latest
158+# Make changes, then build + push + deploy
159+gordon push myapp --build --no-confirm
158160 ```
159161
160162 Gordon automatically:
@@ -118,31 +118,35 @@ sudo loginctl enable-linger $USER
118 118
119 ## 7. Generate a Deploy Token119 ## 7. Generate a Deploy Token
120 120
121-Create a token for pushing images to your registry (skip if auth is disabled):121+Create a token for remote CLI deploys (skip if auth is disabled):
122 122
123 ```bash123 ```bash
124 gordon auth token generate --subject deploy --scopes push,pull --expiry 0124 gordon auth token generate --subject deploy --scopes push,pull --expiry 0
125 ```125 ```
126 126
127-Save this token securely - you'll need it for Docker login.127+Save this token securely - you'll use it with `gordon --remote` (or a saved remote).
128 128
129 ## 8. Deploy Your First App129 ## 8. Deploy Your First App
130 130
131 On your local machine:131 On your local machine:
132 132
133 ```bash133 ```bash
134-# Log in to your Gordon registry (skip if auth is disabled)134+# Save and select your Gordon remote (one-time)
135-docker login -u deploy -p <your-token> registry.mydomain.com135+gordon remotes add prod https://gordon.mydomain.com --token <your-token>
136+gordon remotes use prod
136 137
137-# Build your app138+# Build, push, and deploy through Gordon
138-docker build -t myapp .139+gordon push myapp --build --no-confirm
140+```
139 141
140-# Tag for your registry142+What this command does:
141-docker tag myapp registry.mydomain.com/myapp:latest
142 143
143-# Push to Gordon144+- `gordon push myapp` resolves the route for `myapp`, chooses a version tag,
144-docker push registry.mydomain.com/myapp:latest145+ pushes image tags to Gordon's registry, and triggers deploy.
145-```146+- `--build` runs `docker buildx build` first, injecting `VERSION` from the tag
147+ into the build and then pushing both version and `latest` tags.
148+- `--no-confirm` skips the interactive "Deploy now?" prompt so the deploy runs
149+ immediately.
146 150
147 Your app is now live at `https://app.mydomain.com`!151 Your app is now live at `https://app.mydomain.com`!
148 152
@@ -151,10 +155,8 @@ Your app is now live at `https://app.mydomain.com`!
151 Push a new image to deploy with zero downtime:155 Push a new image to deploy with zero downtime:
152 156
153 ```bash157 ```bash
154-# Make changes, rebuild158+# Make changes, then build + push + deploy
155-docker build -t myapp .159+gordon push myapp --build --no-confirm
156-docker tag myapp registry.mydomain.com/myapp:latest
157-docker push registry.mydomain.com/myapp:latest
158 ```160 ```
159 161
160 Gordon automatically:162 Gordon automatically:

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