# Playbook — Migration d’un projet vers le NUC Ce document décrit la procédure standard pour migrer un projet local (Mac / Docker Desktop) vers l’environnement **NUC Docker Dev**. Objectifs : - centraliser l’exécution des conteneurs sur le NUC - garder le code sur le NUC pour le développement via SSH / VSCode - uniformiser la structure des projets --- # Architecture cible Sur le NUC : ``` /srv/ projects/ # code des projets docker-data/ # volumes persistants backups/ # sauvegardes ``` Exemple pour un projet : ``` /srv/projects/portfolio ``` Les volumes Docker doivent vivre dans : ``` /srv/docker-data// ``` --- # Étape 1 — Cloner le projet sur le NUC Depuis le NUC : ``` cd /srv/projects git clone ``` Exemple : ``` git clone git@github.com:xxx/portfolio.git ``` --- # Étape 1b — Initialiser la mémoire projet Depuis la racine du projet cloné : ``` cd /srv/projects/ gen-claude ``` Cette commande : - génère `CLAUDE.md` depuis le template projet - crée `AGENTS.md -> CLAUDE.md` - initialise la mémoire active du projet pour Claude / Codex --- # Étape 2 — Adapter docker-compose Les projets ne doivent pas dépendre de Docker Desktop. Principes : - utiliser des **chemins absolus côté NUC** pour les volumes - éviter les volumes implicites Docker Exemple : ```yaml volumes: - /srv/docker-data/portfolio/postgres:/var/lib/postgresql/data ``` --- # Étape 3 — Vérifier les dépendances système Sur la VM `docker-dev` : - Docker installé - Docker Compose disponible - Node / npm si nécessaire Vérifier : ``` docker --version docker compose version node -v ``` --- # Étape 4 — Lancer les conteneurs Depuis le dossier du projet : ``` docker compose up -d ``` Vérifier : ``` docker ps ``` --- # Étape 5 — Migration éventuelle des données Si le projet utilisait Docker Desktop : 1. exporter la base ``` pg_dump -U user dbname > dump.sql ``` 2. copier le dump sur le NUC 3. restaurer : ``` psql -U user dbname < dump.sql ``` --- # Étape 6 — Vérification Vérifier : - l’application démarre - la base de données est accessible - les migrations fonctionnent - les logs ne contiennent pas d’erreurs Commandes utiles : ``` docker logs docker compose logs -f ``` --- # Bonnes pratiques - ne jamais stocker de données persistantes dans `/srv/projects` - tous les volumes doivent vivre dans `/srv/docker-data` - documenter les migrations importantes --- # Quand utiliser ce playbook Ce playbook doit être utilisé lorsque : - un projet Docker Desktop est migré vers le NUC - un nouveau projet est installé sur le NUC - un projet doit être reproduit sur un nouvel environnement --- # Outils associés - `scripts/generate_project_claude.sh` — initialisation de la mémoire projet (`CLAUDE.md` + `AGENTS.md`)