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

Phase 0: DNS im Registrarbereich (Mensch, nur Web)

Fügen Sie im DNS-Bereich Ihrer Domain Folgendes hinzu:

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:

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:

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

Zurück zu allen Ratgebern

Share This Page