# Playbook — Bootstrap d’un projet Docker sur le NUC Ce document décrit la procédure standard pour **initialiser un nouveau projet Docker** sur l’environnement NUC (`docker-dev`). Objectifs : - garantir une structure cohérente entre les projets - centraliser les volumes persistants - préparer le projet pour le développement via VSCode Remote / SSH --- # Architecture standard du NUC Tous les projets suivent la structure suivante : ``` /srv/ projects/ # code source des projets docker-data/ # volumes persistants Docker backups/ # sauvegardes ``` Exemple pour un projet `portfolio` : ``` /srv/projects/portfolio /srv/docker-data/portfolio/ ``` --- # Étape 1 — Cloner le projet Depuis la VM `docker-dev` : ``` cd /srv/projects git clone cd ``` Exemple : ``` git clone git@github.com:xxx/portfolio.git ``` --- # Étape 2 — Préparer les volumes persistants Créer le dossier dédié au projet : ``` mkdir -p /srv/docker-data/ ``` Exemples : ``` /srv/docker-data/portfolio/postgres /srv/docker-data/portfolio/uploads ``` Principe : - **aucune donnée persistante ne doit vivre dans le repo Git** - tous les volumes doivent être externalisés dans `/srv/docker-data` --- # Étape 3 — Adapter le docker-compose Les services doivent utiliser les volumes du NUC. Exemple : ```yaml services: postgres: image: postgres:17 volumes: - /srv/docker-data/portfolio/postgres:/var/lib/postgresql/data ``` Bonnes pratiques : - éviter les volumes anonymes - préférer les chemins absolus --- # Étape 4 — Préparer la base de données (si nécessaire) Si le projet utilise la base partagée : ``` psql -U postgres_su ``` Créer : ``` CREATE USER WITH PASSWORD ''; CREATE DATABASE OWNER ; ``` --- # Étape 5 — Initialiser la mémoire projet Dans le repo : 1. copier le template : ``` 70_templates/projet_CLAUDE.md ``` 2. créer le fichier : ``` CLAUDE.md ``` 3. créer le symlink pour Codex : ``` ln -s CLAUDE.md AGENTS.md ``` Ce fichier servira de **mémoire active du projet**. --- # Étape 6 — Lancer l’environnement Depuis le dossier du projet : ``` docker compose up -d ``` Vérifier : ``` docker ps ``` --- # Étape 7 — Vérification Contrôler : - que les conteneurs démarrent correctement - que les volumes sont bien montés - que la base de données est accessible Commandes utiles : ``` docker compose logs -f docker logs ``` --- # Bonnes pratiques - garder les volumes hors du repo - documenter la stack dans `CLAUDE.md` - vérifier les ports exposés --- # Quand utiliser ce playbook Ce playbook doit être utilisé lorsque : - un **nouveau projet Docker** est créé - un projet est **installé pour la première fois sur le NUC** - un environnement doit être **reproduit sur une nouvelle machine**