# DEPLOY — Le Donut Infolab Procédure exacte de déploiement sur le serveur **Donut Marseille**. - Hôte : `arnaud.donut@82.66.40.209` - OS : Ubuntu 26.04 - Sous-domaine : `infolab.ledonut-marseille.org` - Conteneur PHP : `donut-infolab` (UID `33` = www-data côté Apache) - BDD : conteneur existant `donut-mariadb`, réseau Docker `donut-net` - Reverse proxy : Caddy natif sur l'hôte > ⚠️ Pré-requis DNS : créer chez OVH un record `A infolab.ledonut-marseille.org → 82.66.40.209` > **avant** le reload Caddy (sinon échec ACME challenge). --- ## 0. Pré-requis vérifiés une fois ```bash ssh arnaud.donut@82.66.40.209 # Le réseau donut-net existe docker network ls | grep donut-net # Le mariadb tourne et est joignable depuis donut-net docker ps | grep donut-mariadb # /srv/donut/secrets/mariadb.env est en place et lisible par root sudo ls -l /srv/donut/secrets/mariadb.env # Le group donut-admins existe getent group donut-admins ``` --- ## 1. Copier le projet vers le serveur Depuis ta machine de dev (à la racine du repo) : ```bash # Code app -> /srv/donut/web/infolab/ (bind-mount dans le conteneur, UID 33) rsync -avz --delete \ --exclude '.git' --exclude '.idea' --exclude '.env' --exclude 'tests' \ --exclude 'docker-compose.yml' --exclude 'Dockerfile' --exclude 'caddy.conf' \ --exclude 'migrations' --exclude 'DEPLOY.md' --exclude 'INSTRUCTIONS.md' \ ./ arnaud.donut@82.66.40.209:/tmp/infolab-app/ # Fichiers d'orchestration -> /srv/donut/compose/infolab/ rsync -avz \ docker-compose.yml Dockerfile caddy.conf README.md DEPLOY.md .env.example \ migrations \ arnaud.donut@82.66.40.209:/tmp/infolab-compose/ ``` Puis sur le serveur : ```bash ssh arnaud.donut@82.66.40.209 # Code app (UID 33 = www-data du conteneur Apache) sudo mkdir -p /srv/donut/web/infolab sudo rsync -a --delete /tmp/infolab-app/ /srv/donut/web/infolab/ sudo chown -R 33:33 /srv/donut/web/infolab sudo find /srv/donut/web/infolab -type d -exec chmod 755 {} \; sudo find /srv/donut/web/infolab -type f -exec chmod 644 {} \; # Orchestration (root:donut-admins, lisible par les admins) sudo mkdir -p /srv/donut/compose/infolab sudo rsync -a /tmp/infolab-compose/ /srv/donut/compose/infolab/ sudo chown -R root:donut-admins /srv/donut/compose/infolab sudo chmod 750 /srv/donut/compose/infolab sudo chmod 640 /srv/donut/compose/infolab/* # Cleanup tmp rm -rf /tmp/infolab-app /tmp/infolab-compose ``` --- ## 2. Créer les secrets `/srv/donut/secrets/infolab.env` ```bash ssh arnaud.donut@82.66.40.209 DB_PASS="$(openssl rand -hex 24)" ADMIN_TOKEN="$(openssl rand -hex 32)" sudo tee /srv/donut/secrets/infolab.env > /dev/null <