Stellen Sie Ihre App mit Docker mithilfe von Codex auf einem Mac im offenen Internet bereit
Dieses Handbuch richtet sich gezielt an Personen, die die Bereitstellung nicht von einem lokalen Terminal aus steuern möchten. Codex führt Befehle auf Ihrem Mac und auf Ihrem Server aus, während Sie einige Web-Panel-Aktionen wie DNS und das Einfügen öffentlicher Schlüssel durchführen.
Der Prozess ist in kleine, sichere Abschnitte unterteilt, sodass jede Phase überprüfbar ist, bevor Sie fortfahren.
Was Sie brauchen
- Öffentliche IPv4-Adresse des VPS
- Domainname
- Repo-URL (GitHub oder GitLab)
- Filialname (normalerweise
main)
- Interner App-Port im Container (z. B
3000)
Phase 0: DNS im Registrarbereich (Mensch, nur Web)
Fügen Sie im DNS-Bereich Ihrer Domain Folgendes hinzu:
-
A aufzeichnen:
@ zu VPS IPv4
-
A aufzeichnen:
www zu VPS IPv4
Verwenden Sie einen Online-DNS-Prüfer, um zu bestätigen, dass beide Einträge in Ihre VPS-IP aufgelöst werden. Sie können fortfahren, während die Ausbreitung noch abgeschlossen ist.
Phase 1: Gewähren Sie Codex SSH-Zugriff ohne menschliche Handhabung privater Schlüssel
Schritt 1.1 SSH-Schlüssel auf dem Mac generieren und speichern (Codex erledigt das)
Senden Sie dies an Codex:
Create an SSH keypair for VPS deploy on my Mac and save it to disk.
Requirements:
Use ed25519.
Save private key to ~/.ssh/codex_vps and public key to ~/.ssh/codex_vps.pub.
Set permissions: private key 600, public key 644.
Do not print the private key content.
Print only:
the one line public key from ~/.ssh/codex_vps.pub
confirm the private key path
Stop after that.
Menschliches Handeln: Kopieren Sie nur die öffentliche Schlüsselzeile.
Schritt 1.2 Öffentlichen Schlüssel im VPS-Anbieter-Panel hinzufügen (nur Mensch, Web)
Im Anbieterbereich:
- Fügen Sie den SSH-Schlüssel hinzu und fügen Sie die Zeile mit dem öffentlichen Schlüssel ein
- Hängen Sie den Schlüssel an den Server an (oder erstellen Sie den Server bei Bedarf mit dem Schlüssel neu)
- Beachten Sie den Standard-SSH-Benutzernamen (oft
root oder
ubuntu)
Schritt 1.3 Codex bitten, SSH zu testen
Senden Sie dies an Codex:
Try SSH to my VPS and run only basic checks.
Host: YOUR_SERVER_IP
User: root (change to ubuntu if provider says so)
Key: ~/.ssh/codex_vps
Commands:
whoami
uname -a
uptime
Report results and stop.
Wenn dies funktioniert, fahren Sie fort.
Wenn der Anbieter zunächst nur die Passwortanmeldung unterstützt
Sie können dennoch ein lokales Terminal vermeiden, indem Sie die Provider-Webkonsole einmal verwenden, um die schlüsselbasierte Anmeldung zu installieren.
Menschliches Handeln: Öffnen Sie die Webkonsole des Anbieters und melden Sie sich mit den Panel-Anmeldeinformationen an.
Dann senden Sie dies an Codex:
My VPS only supports password login via provider web console right now.
Give me a short command block to paste into the server console that:
creates user codex with sudo
creates /home/codex/.ssh/authorized_keys
inserts this public key exactly:
PASTE_PUBLIC_KEY_LINE_HERE
sets correct permissions
adjusts sshd to disable password auth and root login only after key login is confirmed
Output only the commands and one sentence telling me to paste them in the console. Stop.
Menschliches Handeln: Fügen Sie die Befehle ein und führen Sie dann Schritt 1.3 mit dem Benutzer erneut aus
codex.
Phase 2: Basisserver-Setup (Codex, One Chunk)
An Codex senden:
Do base server setup only.
apt update and upgrade
install ufw and fail2ban
ufw allow 22, 80, 443 and enable ufw
create a non root user deploy with sudo
Stop after showing:
ufw status
users created
any warnings
Phase 3: Docker installieren (Codex, One Chunk)
An Codex senden:
Install Docker Engine and Docker Compose plugin on Ubuntu using the official Docker install steps.
Then run:
docker --version
docker compose version
Stop after reporting versions.
Phase 4: Reverse Proxy und HTTPS mit Traefik (zwei kleine Teile)
Schritt 4.1 Nur Traefik HTTP installieren
An Codex senden:
Set up Traefik at /opt/traefik using docker compose.
Requirements:
expose ports 80 and 443
create docker network proxy
dashboard disabled or only bound to localhost
for now configure only HTTP routing, no Lets Encrypt yet
Start it and show:
docker ps
Stop.
Schritt 4.2 Aktivieren Sie Lets Encrypt, nachdem DNS bereit ist
Erst nachdem der Checker Folgendes anzeigt:
-
example.com zur VPS-IP
-
www.example.com zur VPS-IP
An Codex senden:
Enable Lets Encrypt in Traefik for example.com and www.example.com
using HTTP challenge on port 80.
Store ACME data with correct permissions.
Then verify by requesting headers from:
https://example.com?utm_source=aitoolsfor.you
https://www.example.com?utm_source=aitoolsfor.you
Stop after results.
Phase 5: App über GitHub oder GitLab bereitstellen (Codex, One Chunk)
An Codex senden:
Deploy my app from:
Repo: YOUR_REPO_URL
Branch: main
Path: /opt/apps/myapp
App internal port: 3000
Do:
clone repo into /opt/apps/myapp
create a production docker compose file for the app
attach app container to the proxy network
configure Traefik labels so example.com and www.example.com
route to the app port
start the app stack
Show:
docker compose ps for the app
last 80 log lines
Stop.
Menschliches Handeln: Offen
https://example.com?utm_source=aitoolsfor.you in einem Browser.
Phase 6: Umgebungsvariablen, ohne den Menschen zu erschrecken (zwei Teile)
Schritt 6.1 Fragen Sie Codex, welche Env-Schlüssel benötigt werden
An Codex senden:
Find how this project expects environment variables.
Check for .env.example, README, or compose templates.
Create /opt/apps/myapp/.env with only placeholder keys and empty values.
Print the .env file contents without secrets.
Stop.
Menschliches Handeln: Ausfüllen
.env Werte.
Wenn Sie keine SSH-Shell-Bearbeitung bevorzugen, verwenden Sie den Webkonsolen-Editor des Anbieters oder bitten Sie Codex, einen kleinen Web-Editor zu installieren, der an localhost gebunden ist (nur wenn Sie mit diesem Workflow vertraut sind).
Schritt 6.2 Env anwenden und neu starten
An Codex senden:
Restart the app stack to apply /opt/apps/myapp/.env.
Then verify:
container is healthy or running
request the homepage over https and show HTTP status
Stop.
Phase 7: Updates und Protokolle (letzter Teil)
An Codex senden:
Give me a minimal operations note with exact commands:
update to latest main and redeploy
view logs (proxy and app)
restart services
rollback to previous git commit
Stop.
Was Sie nach dem Erfolg erwarten sollten
- Öffnung
https://example.com?utm_source=aitoolsfor.you funktioniert
- Das HTTPS-Zertifikat ist gültig
- Der App-Stack wird beim Neustart neu gestartet
- Sie verfügen über kurze Befehlssequenzen für Aktualisierung, Neustart und Protokollierung
Zurück zu allen Ratgebern