Tutoriales de VPS
Despliegue de Codex CLI en un VPS (2026): instalación, inicio de sesión y ejecución permanente del entorno de desarrollo remoto
Instala Codex CLI en un VPS Ubuntu/Debian, configura el inicio de sesión con ChatGPT o API Key y crea un entorno de desarrollo remoto recuperable usando un usuario normal y tmux.

Despliegue de Codex CLI en un VPS (2026): instalación, inicio de sesión y ejecución permanente del entorno de desarrollo remoto
Si ya has alquilado un VPS Linux y quieres usarlo como una máquina de desarrollo remota siempre en línea, Codex CLI es un punto de entrada muy práctico: tras iniciar sesión por SSH, puedes leer código, modificar archivos y ejecutar pruebas directamente en el directorio del proyecto. Los verdaderos problemas no están en npm install, sino en cómo autenticarse en un entorno sin escritorio, cómo limitar los permisos y cómo continuar después de que el proceso se desconecte.
Este artículo toma Ubuntu 22.04/24.04 y Debian 12 como ejemplos, partiendo de un VPS limpio hasta una configuración de Codex CLI que pueda usarse a largo plazo. Todos los comandos se pueden copiar y ejecutar, pero sustituye la API Key, la ruta del proyecto y el nombre de usuario de Linux por tus propios valores.
Codex CLI en sí no necesita una CPU de altas prestaciones; el consumo principal proviene de Node.js, la indexación de código, los comandos de prueba y los servicios que ejecutes al mismo tiempo. Para proyectos personales, empieza con las siguientes configuraciones:
| Uso | Configuración recomendada | Notas |
|---|---|---|
| Scripts pequeños, sitios estáticos | 2 núcleos / 2GB / 40GB SSD | Adecuado para editar y ejecutar pruebas a la vez |
| Proyectos full-stack Node, Python | 2-4 núcleos / 4GB / 60GB NVMe | Deja margen para la instalación de dependencias y las compilaciones |
| Proyectos multi-repositorio o Docker | 4 núcleos / 8GB / 80GB NVMe | Más estable al ejecutar bases de datos, pruebas y compilaciones simultáneamente |
Se puede instalar con solo 1GB de memoria, pero npm install, la compilación de TypeScript o las compilaciones de Docker pueden provocar fácilmente OOM. Es mejor separar los servicios de producción del directorio de trabajo de Codex y, como mínimo, crear un usuario normal; no dejes que el agente de codificación opere siempre en el directorio root.
Inicia sesión por SSH y actualiza el sistema:
ssh root@YOUR_SERVER_IP
apt update && apt full-upgrade -y
apt install -y ca-certificates curl git build-essential unzip tmux
Crea un usuario de trabajo:
adduser coder
usermod -aG sudo coder
mkdir -p /srv/workspaces
chown -R coder:coder /srv/workspaces
su - coder
Si aún no has configurado claves SSH, completa primero el inicio de sesión con clave antes de desactivar el inicio de sesión con contraseña. Al solucionar problemas de Permission denied, puedes consultar la lista de verificación para solucionar VPS SSH Permission denied. No expongas el puerto 22 a todas las fuentes sin ninguna restricción antes de completar el despliegue de Codex.
Codex CLI admite oficialmente la instalación mediante npm. En un VPS de producción no se recomienda usar el Node.js antiguo incluido en la distribución; instala primero la versión LTS de NodeSource:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
node --version
npm --version
Después de confirmar que la versión de Node.js cumple los requisitos del proyecto, instala Codex:
sudo npm install --global @openai/codex
codex --version
Actualizar también es sencillo:
sudo npm update --global @openai/codex
Si el sistema prohíbe la escritura global de npm, puedes usar nvm para instalar Node.js y luego ejecutar la instalación global como el usuario coder. No cambies todo el directorio /usr a 777 solo por comodidad.
Codex CLI admite el inicio de sesión con ChatGPT y con API Key. Al ejecutar codex login en un ordenador con escritorio, se abre una página de autorización en el navegador; un VPS puramente SSH normalmente no tiene navegador, por lo que una API Key es más adecuada para automatización o máquinas remotas.
Ejecuta lo siguiente en el directorio del proyecto en el VPS:
mkdir -p /srv/workspaces/demo && cd /srv/workspaces/demo
codex login
Si el terminal proporciona una URL de autorización, ábrela en el navegador de tu ordenador local, completa el inicio de sesión y vuelve a la sesión SSH. Las distintas versiones de la CLI pueden mostrar indicaciones ligeramente diferentes; sigue las instrucciones del terminal. Puedes comprobar el estado del inicio de sesión con:
codex login status
No escribas la API Key directamente en el historial del shell. Pásala a la CLI mediante la entrada estándar usando una variable de entorno protegida:
read -s OPENAI_API_KEY
printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key
unset OPENAI_API_KEY
codex login status
Si necesitas usarla para systemd o CI, coloca la Key en un archivo de credenciales legible solo por coder:
mkdir -p /home/coder/.config
install -m 600 /dev/null /home/coder/.config/codex.env
printf 'OPENAI_API_KEY=replace-me\n' > /home/coder/.config/codex.env
No hagas commit de .config/codex.env en Git, ni pongas la Key en ~/.bashrc para luego hacer capturas de pantalla o pegarla en tickets. El inicio de sesión con API Key se factura según el uso de la API y es adecuado para scripts e integración continua; el inicio de sesión con ChatGPT usa los permisos y la cuota del espacio de trabajo de ChatGPT correspondiente. Para el comportamiento específico de autenticación, consulta la documentación de Codex CLI en OpenAI Docs y Authentication.
Cambia al repositorio de código:
cd /srv/workspaces/demo
git clone YOUR_REPOSITORY_URL .
git status
codex
En la primera conversación, se recomienda pedir primero a Codex una inspección de solo lectura del proyecto y luego permitir modificaciones:
先阅读项目结构和 README,只告诉我启动命令,不要修改文件。
Después de confirmar el directorio de trabajo, propón un cambio pequeño y solicita que se ejecuten las pruebas. Cuanto menores sean los permisos del espacio de trabajo, mejor: no incluyas /etc, directorios de copias de seguridad de bases de datos ni directorios de credenciales del proveedor de nube en el directorio de trabajo de Codex. En proyectos de producción, crea primero una rama de Git o confirma un punto de control para poder revertir.
Si ejecutas codex directamente, el proceso normalmente también termina cuando se desconecta SSH. La forma más sencilla es usar tmux:
tmux new -s codex
cd /srv/workspaces/demo
codex
Pulsa Ctrl+b y luego d para salir de la sesión manteniendo el proceso en ejecución; tras volver a iniciar sesión, restáurala:
tmux attach -t codex
Ver las sesiones existentes:
tmux ls
tmux es adecuado para la operación manual; no se recomienda convertir un agente de codificación interactivo que requiere confirmación de permisos en un servicio de arranque desatendido. Solo considera systemd si ejecutas un script fijo codex exec, y configura para el servicio un usuario dedicado, un directorio de trabajo, límites de recursos y credenciales de solo lectura.
Normalmente se debe a que el directorio global de npm no está en PATH. Localízalo primero:
npm prefix --global
which node
which npm
Al instalar globalmente con sudo, confirma que /usr/bin o el directorio bin de npm esté en el PATH del usuario actual; si usas nvm, recarga la configuración del shell correspondiente.
Comprueba el propietario del repositorio y los permisos del directorio:
whoami
ls -ld /srv/workspaces/demo
sudo chown -R coder:coder /srv/workspaces/demo
No uses chmod -R 777 para resolver problemas de permisos; esto expondría el código fuente, .env y la configuración de SSH a otros usuarios de la misma máquina.
Primero revisa la memoria y los registros de OOM:
free -h
dmesg -T | grep -i -E 'oom|killed process'
Un VPS de 2GB puede añadir temporalmente 2GB de swap, pero el swap no sustituye a la memoria real. Cuando hay muchas tareas de compilación, actualizar a 4GB ahorra más tiempo que reintentar repetidamente.
Confirma que se usa el mismo usuario de Linux para iniciar sesión y ejecutar Codex, y comprueba el estado:
whoami
codex login status
No inicies sesión con la Key como root y luego cambies al usuario coder para ejecutar; los directorios de credenciales de ambos usuarios son diferentes.
node --versionycodex --versiondevuelven normalmente;- El usuario
coderpuede leer y escribir el proyecto, pero no tiene permisos innecesarios sobre directorios del sistema; - Se ha elegido el inicio de sesión con ChatGPT o con API Key y se puede verificar mediante
codex login status; - Los permisos del archivo de API Key son
600y se ha añadido a.gitignore; - Las sesiones interactivas se ejecutan en tmux y se pueden restaurar tras desconectar SSH;
- Hay una rama o commit de Git antes de las modificaciones, y los comandos de prueba y la ruta de reversión están claros;
- Los proyectos Docker tienen healthchecks, registros y límites de recursos configurados por separado; puedes seguir consultando la lista de verificación de configuración de producción de VPS Docker Compose.
Lo esencial de ejecutar Codex CLI en un VPS no es lo lujosa que sea la configuración de la máquina, sino hacer bien la autenticación, los permisos de usuario y la persistencia de sesiones. Un proyecto pequeño puede empezar con 2 núcleos y 2GB; si necesitas ejecutar Docker, bases de datos y tareas de compilación al mismo tiempo, elige directamente 4 núcleos y 8GB para dedicar menos tiempo a solucionar OOM.