# Bonsai — Stack complète Stack Docker Compose unifiée pour l'application Bonsai : base de données, API et webapp. Les images sont **buildées depuis les sources** de la branche `main` de chaque dépôt au moment du build. La clé SSH est transmise au build via un secret BuildKit — elle n'est jamais gravée dans les couches de l'image. ## Services | Service | Image de base | Source | |---------|--------------|--------| | `db` | `postgres:16-alpine` | — | | `api` | `eclipse-temurin:25-jdk` → `25-jre-alpine` | `Bonsai-api` (branche `main`) | | `webapp` | `node:22-alpine` → `nginx:alpine` | `Bonsai-webapp` (branche `main`) | ## Prérequis - Docker avec BuildKit activé (Docker 23+) - Une clé SSH ayant accès au dépôt Gitea (`git.goutailler-olivier.com:2222`) - Réseau Docker externe `proxy` (Traefik) ## Démarrage ```bash # 1. Configurer les variables d'environnement cp .env.example .env # Éditer .env : définir POSTGRES_PASSWORD et SSH_KEY_PATH # 2. Builder les images (clone + compile) docker compose build # 3. Démarrer la stack docker compose up -d ``` ## Mise à jour Pour rebuilder depuis le dernier commit de `main` : ```bash docker compose build --no-cache docker compose up -d ``` ## Arrêt ```bash docker compose down ``` Les données PostgreSQL sont persistées dans `~/Applications/data/bonsai/db_data` et les fichiers uploadés dans `~/Applications/data/bonsai/uploads`.