Files
Infra/bonsai

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-jdk25-jre-alpine Bonsai-api (branche main)
webapp node:22-alpinenginx: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

# 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 (sans tout reconstruire) :

CACHEBUST=$(date +%s) docker compose build
docker compose up -d

CACHEBUST invalide uniquement l'étape clone+build. Les couches précédentes (installation des outils, image de base) restent en cache — le build reste rapide.

Arrêt

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.