Wiki/Makefile
Corentin JOGUET 668576cdc4 chore: initial commit — formation-hub conception phase
Conception complete (Phase 0) pour formation-hub Acadenice :

- 19 docs Merise Agile + UML + GitOps + plans (tests/deploy/ops/api)
  cf docs/00-readme.md pour l'index complet
- Stack Docker compose (Docmost + Baserow + Postgres + Redis + MinIO local FS)
  compose.yml + compose.staging.yml + compose.prod.yml
- CI/CD GitHub Actions skeleton (ci, deploy-staging, deploy-prod)
- Bridge service skeleton (Hono + TS + Biome + Vitest + zod + pino)
- Templates GitHub : PR + 3 issue types + CODEOWNERS + dependabot.yml
- Scripts ops : healthcheck, backup quotidien, smoke-test post-deploy
- LICENSE AGPL-3.0 + SECURITY.md + CONTRIBUTING.md + CHANGELOG.md
- Diagramme drawIO archi infra (XML importable dans diagrams.net)

Decisions structurelles enregistrees :
- Scope CFA + Agence avec entite PERSONNE pivot multi-roles (ADR-001)
- Stack composite Docmost AGPL + Baserow MIT + bridge custom (ADR-001)
- Path B : UX quasi-unified via Tiptap node-views custom (ADR-002)
- Monorepo trunk-based development (ADR-003)
- Postgres separe Docmost/Baserow (ADR-004)
- Bridge stack Node 22 + Hono (ADR-005)
- Repo neuf prefere a fork Docmost
- Prod-like des le jour 1 (pas MVP)
2026-05-07 12:16:19 +02:00

82 lines
2.9 KiB
Makefile

.PHONY: help up down restart logs ps clean reset shell-docmost shell-baserow backup backup-docmost backup-baserow status
DATE := $(shell date +%Y%m%d-%H%M%S)
BACKUP_DIR := ./backups
help:
@echo "formation-hub — commandes disponibles"
@echo ""
@echo "Stack lifecycle:"
@echo " make up Demarre la stack en background"
@echo " make down Stoppe la stack (conserve les volumes)"
@echo " make restart Redemarre tous les services"
@echo " make logs Suit les logs (Ctrl+C pour quitter)"
@echo " make ps Liste les services et leur etat"
@echo " make status Healthcheck rapide des endpoints HTTP"
@echo ""
@echo "Acces shell:"
@echo " make shell-docmost Shell dans le container Docmost"
@echo " make shell-baserow Shell dans le container Baserow"
@echo ""
@echo "Sauvegardes:"
@echo " make backup Backup complet (Docmost + Baserow)"
@echo " make backup-docmost Backup uniquement Docmost (pg_dump + files)"
@echo " make backup-baserow Backup uniquement Baserow (data dir)"
@echo ""
@echo "DESTRUCTIF:"
@echo " make clean Stoppe ET supprime les volumes (ATTENTION)"
@echo " make reset clean + up (reset complet)"
up:
@test -f .env || (echo "ERREUR: .env manquant. Copier .env.example vers .env et editer." && exit 1)
docker compose up -d
@echo ""
@echo "Stack demarree :"
@echo " Docmost : $${DOCMOST_URL:-http://localhost:3000}"
@echo " Baserow : $${BASEROW_URL:-http://localhost:8080}"
down:
docker compose down
restart:
docker compose restart
logs:
docker compose logs -f --tail=100
ps:
docker compose ps
status:
@echo "Docmost :" && curl -sf -o /dev/null -w " HTTP %{http_code} en %{time_total}s\n" http://localhost:3000 || echo " KO"
@echo "Baserow :" && curl -sf -o /dev/null -w " HTTP %{http_code} en %{time_total}s\n" http://localhost:8080 || echo " KO"
shell-docmost:
docker compose exec docmost sh
shell-baserow:
docker compose exec baserow bash
backup: backup-docmost backup-baserow
@echo "Backup complet termine dans $(BACKUP_DIR)/"
backup-docmost:
@mkdir -p $(BACKUP_DIR)
@echo "Backup Docmost (pg_dump + files)..."
docker compose exec -T docmost-db pg_dump -U docmost docmost | gzip > $(BACKUP_DIR)/docmost-db-$(DATE).sql.gz
docker compose exec -T docmost tar czf - /app/data/storage > $(BACKUP_DIR)/docmost-files-$(DATE).tar.gz
@echo " -> $(BACKUP_DIR)/docmost-db-$(DATE).sql.gz"
@echo " -> $(BACKUP_DIR)/docmost-files-$(DATE).tar.gz"
backup-baserow:
@mkdir -p $(BACKUP_DIR)
@echo "Backup Baserow (data dir)..."
docker compose exec -T baserow tar czf - /baserow/data > $(BACKUP_DIR)/baserow-$(DATE).tar.gz
@echo " -> $(BACKUP_DIR)/baserow-$(DATE).tar.gz"
clean:
@echo "ATTENTION: cette commande supprime TOUS les volumes (donnees perdues)."
@read -p "Tapez 'oui' pour confirmer: " confirm; [ "$$confirm" = "oui" ] || exit 1
docker compose down -v
reset: clean up