Files
Infra/bonsai/README.md
T
2026-06-15 06:52:10 +02:00

53 lines
1.6 KiB
Markdown

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