Codex CLI — Flow Complet : Dev → GitHub → Deploy
Vue d'ensemble
Cette skill guide un développeur pas à pas pour :
- Installer et authentifier OpenAI Codex CLI
- Coder avec Codex (tâches simples à complexes)
- Gérer un repo GitHub
- Déployer sur un serveur (Coolify, Railway, ou SSH classique)
⚠️ Cette skill est générique — remplace les placeholders <...> par tes propres infos.
Prérequis
Binaires requis (déclarés en metadata)
- codex — le coding agent CLI OpenAI
- git — gestion de version
- npm — installation de codex
Binaires optionnels (selon ton workflow)
- gh (GitHub CLI) — gestion de repos depuis la CLI
- curl — appels API (Coolify, GitHub)
- ssh — connexion aux serveurs
- docker — déploiement conteneurisé
Variables d'environnement (recommandées)
GH_TOKEN— Personal Access Token GitHub (optionnel, sinon passer pargh auth login)
Secrets à configurer (non stockés dans le skill)
<GH_TOKEN>— token GitHub avec droitsrepo<COOLIFY_TOKEN>— token API Coolify (si déployement Coolify)- Clé SSH privée — accès au serveur de déploiement
Étape 1 — Installer Codex CLI
npm install -g @openai/codex
Vérifier :
which codex
codex --help
Étape 2 — Authentifier avec ChatGPT
Méthode A : Device Code Flow (recommandé pour serveur/VPS)
codex login --device-auth
Le CLI affiche un code court (type VQ4Z-XSTZV). Ouvre https://auth.openai.com/codex/device dans ton navigateur, connecte-toi avec ton compte ChatGPT Pro/Plus, entre le code.
Vérifier :
codex login --status
Méthode B : Flow navigateur (en local)
codex login
Étape 3 — Coder avec Codex CLI
Codex n'est pas un LLM à qui tu poses des questions — c'est un coding agent qui lit, modifie et teste ton code sur place.
Tâche simple
cd /chemin/du/projet
codex exec --json --color never --skip-git-repo-check "Décris ce que tu veux faire ici..."
Avec sandbox désactivé (si le sandbox n'est pas supporté)
⚠️ Utilise cette option uniquement si tu sais ce que tu fais — elle désactive l'isolation du sandbox.
codex exec --json --color never --sandbox danger-full-access --skip-git-repo-check "Ta tâche..."
Recommandation de sécurité : n'utilise pas
--sandbox danger-full-accesssur des machines contenant des données sensibles. Privilégie un conteneur isolé pour les tâches à risque.
Tâche interactive (dans un terminal avec TTY)
cd /chemin/du/projet
codex "Décris ta tâche"
Flags importants
| Flag | Pourquoi |
|---|---|
| --skip-git-repo-check | Permet de coder hors repo git "trusté" (VPS, Docker) |
| --sandbox danger-full-access | ⚠️ Désactive le sandbox — voir avertissement ci-dessus |
| --json | Sortie structurée en JSON (utile pour l'analyse automatisée) |
| --color never | Pas de codes ANSI (utile dans les logs non-TTY) |
Exemples de tâches Codex
- "Crée un serveur Express.js avec un endpoint GET /api/health"
- "Ajoute une connexion PostgreSQL basée sur les variables d'environnement"
- "Fix le bug : la fonction parseJSON crash quand l'entrée est vide"
- "Ajoute des tests Jest pour le module auth"
Étape 4 — Repo GitHub
Authentifier GitHub
Via gh CLI :
gh auth login
Ou via token :
gh auth login --with-token <<< "$GH_TOKEN"
Créer un nouveau repo
gh repo create ton-username/nom-repo --private --source=. --remote=upstream --push
Git workflow
# Après que Codex a fait ses modifications
git add -A
git commit -m "Message descriptif du changement"
git push origin <branche>
Conventions de messages
feat: ...→ nouvelle fonctionnalitéfix: ...→ correction de bugdocs: ...→ documentationrefactor: ...→ refactoring sans changement fonctionnel
Étape 5 — Déploiement
Option A : Coolify (auto-hébergé PaaS)
-
Pré-requis : Coolify installé (https://coolify.io)
-
Configurer l'app dans Coolify (repo GitHub, branche, variables d'environnement)
-
Déployer :
# Via API Coolify curl -X POST "https://<COOLIFY_URL>/api/v1/deploy" \ -H "Authorization: Bearer <COOLIFY_TOKEN>" \ -H "Content-Type: application/json" \ -d '{"uuid":"<APP_UUID>","force":true}'
Option B : Railway
- Connecter le repo GitHub dans Railway dashboard
- Déploiement automatique sur push via GitHub
- Variables d'environnement dans Railway settings
Option C : SSH classique / VPS
# Push le code
git push origin main
# SSH sur le serveur
ssh root@<SERVER_IP>
# Pull et restart
cd /opt/mon-app
git pull origin main
npm install
pm2 restart mon-app
# ou docker compose pull && docker compose up -d --build
Option D : Docker / Cloud Run / autre
- Push l'image Docker sur registry
- Deploy via la CLI du provider (gcloud, aws, etc.)
Checklist de déploiement
Avant de déployer sur prod :
- [ ] Le code a été testé en staging
- [ ] Les variables d'environnement sont configurées
- [ ] Les migrations DB sont prêtes (si applicable)
- [ ] Un rollback plan est défini
- [ ] Validation d'un humain (pas de déploiement prod automatique sans go)
Architecture type d'un projet
mon-projet/
├── .env.example # Template des vars d'env (JAMAIS de vraies valeurs dans git)
├── .gitignore
├── package.json
├── server.js # Point d'entrée
├── src/ # Code source
├── tests/ # Tests
├── deploy/ # Scripts de déploiement
└── README.md # Documentation
⚠️ Sécurité et bonnes pratiques
- JAMAIS commiter de tokens, clés API, mots de passe ou
.envréels - Utiliser
.env.examplepour documenter les vars nécessaires - Les secrets vont dans les variables d'environnement du serveur (Coolify, Railway, etc.)
- Token GitHub avec le minimum de permissions nécessaires
- SSH keys : permissions
600pour la clé privée,644pour la publique --sandbox danger-full-access: ne l'utiliser qu'en environnement isolé (container/VM dédiée)- Ne jamais exécuter Codex avec
--sandbox danger-full-accesssur une machine contenant des credentials de production
Ressources
- Codex CLI docs : https://developers.openai.com/codex/
- Coolify docs : https://coolify.io/docs
- Railway docs : https://docs.railway.app
- Cloudflare DNS API : https://developers.cloudflare.com/api/
微信扫一扫