Implemente su aplicación en Internet abierta con Docker usando Codex en una Mac
Esta guía está diseñada intencionalmente para personas que no desean realizar la implementación desde una terminal local. Codex ejecuta comandos en su Mac y en su servidor, mientras usted maneja algunas acciones del panel web, como DNS y pegado de clave pública.
El proceso se divide en partes pequeñas y seguras para que cada etapa sea verificable antes de continuar.
Lo que necesitas
- Dirección IPv4 pública de VPS
- Nombre de dominio
- URL del repositorio (GitHub o GitLab)
- Nombre de la sucursal (generalmente
main)
- Puerto interno de la aplicación dentro del contenedor (por ejemplo
3000)
Fase 0: DNS en el panel del registrador (humano, solo web)
En el panel DNS de tu dominio, agrega:
-
A registro:
@ a VPS IPv4
-
A registro:
www a VPS IPv4
Utilice un verificador de DNS en línea para confirmar que ambos registros se resuelvan en su IP de VPS. Puede continuar mientras la propagación aún está finalizando.
Fase 1: Dar acceso SSH al Codex sin manejo humano de clave privada
Paso 1.1 Generar y guardar clave SSH en Mac (Codex lo hace)
Envíe esto al 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.
Acción humana: Copie únicamente la línea de clave pública.
Paso 1.2 Agregar clave pública en el panel del proveedor de VPS (humano, solo web)
En el panel de proveedores:
- Agregue la clave SSH y pegue la línea de clave pública
- Adjunte la clave al servidor (o reconstruya el servidor con la clave si es necesario)
- Tenga en cuenta el nombre de usuario SSH predeterminado (a menudo
root o
ubuntu)
Paso 1.3 Solicite al Codex que pruebe SSH
Envíe esto al 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.
Si esto funciona, continúa.
Si el proveedor solo admite el inicio de sesión con contraseña inicialmente
Aún puede evitar la terminal local utilizando la consola web del proveedor una vez para instalar el inicio de sesión basado en claves.
Acción humana: Abra la consola web del proveedor e inicie sesión con las credenciales del panel.
Luego envía esto al 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.
Acción humana: Pegue los comandos y luego vuelva a ejecutar el Paso 1.3 con el usuario
codex.
Fase 2: Configuración del servidor base (Codex, One Chunk)
Enviar al Códice:
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
Fase 3: Instalar Docker (Codex, One Chunk)
Enviar al Códice:
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.
Fase 4: Proxy inverso y HTTPS con Traefik (dos pequeños fragmentos)
Paso 4.1 Instalar Traefik HTTP únicamente
Enviar al Códice:
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.
Paso 4.2 Habilite Lets Encrypt después de que DNS esté listo
Sólo después de que el verificador muestre:
-
example.com a IP VPS
-
www.example.com a IP VPS
Enviar al Códice:
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.
Fase 5: Implementar la aplicación desde GitHub o GitLab (Codex, One Chunk)
Enviar al Códice:
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.
Acción humana: Abierto
https://example.com?utm_source=aitoolsfor.you en un navegador.
Fase 6: Variables ambientales sin asustar al ser humano (dos partes)
Paso 6.1 Pregunte al Codex qué claves Env se necesitan
Enviar al Códice:
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.
Acción humana: Llenar
.env valores.
Si prefiere no editar el shell SSH, utilice el editor de la consola web del proveedor o solicite a Codex que instale un pequeño editor web vinculado a localhost (solo si se siente cómodo con ese flujo de trabajo).
Paso 6.2 Aplicar Env y reiniciar
Enviar al Códice:
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.
Fase 7: Actualizaciones y registros (fragmento final)
Enviar al Códice:
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.
Lo que debe esperar después del éxito
- Apertura
https://example.com?utm_source=aitoolsfor.you obras
- El certificado HTTPS es válido
- La pila de aplicaciones se reinicia al reiniciar
- Tiene secuencias cortas de comandos de actualización, reinicio y registro.
Volver a todas las guías