aether-framework/docker-compose.yml
Jerrit Fritzsche e4b82dd685 Aether-Framework: Fachmodule, Admin-Panel und Docker-Datenbank
- aether-medical: Stationen/Belegung, Intensivstation, Blutbank, Fuhrpark,
  Nachrichten/Aushänge, Berichte und Textbausteine (server + NUI)
- aether-admin: vollständiges Server-Admin-Panel als echtes FiveM-Resource,
  an aether-core gekoppelt (Rechte über aether_users.admin_group), mit
  WebRTC-Live-Kameras (Bildschirmfreigabe) und separatem Media-Server (SFU)
- Prototypen admin/ vervollständigt
- SQL-Schema aether_admin.sql
- Docker-Compose mit MariaDB und idempotenter Auto-Migration (schema_migrations)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 18:55:32 +02:00

69 lines
2.0 KiB
YAML

# =====================================================================
# Aether Framework — Datenbank + Auto-Migration
#
# Startet eine MariaDB und spielt beim Hochfahren alle Schemas ein.
# Bereits angewendete Migrationen werden über `schema_migrations`
# erkannt und übersprungen — mehrfaches `up` ist gefahrlos.
#
# cp .env.example .env # Zugangsdaten anpassen
# docker compose up -d # DB starten + migrieren
# docker compose logs -f migrate # Migration mitlesen
#
# Adminer (Web-Oberfläche für die DB) optional dazu:
# docker compose --profile tools up -d
# =====================================================================
services:
db:
image: mariadb:11
container_name: aether-db
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-aether_root}
MARIADB_DATABASE: ${DB_NAME:-aether}
MARIADB_USER: ${DB_USER:-aether}
MARIADB_PASSWORD: ${DB_PASSWORD:-aether}
ports:
- "${DB_PORT:-3306}:3306"
volumes:
- db_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s
timeout: 5s
retries: 30
# Läuft einmal pro `up`, wartet auf die DB und spielt die Migrationen ein.
migrate:
image: mariadb:11
container_name: aether-migrate
depends_on:
db:
condition: service_healthy
environment:
DB_HOST: db
DB_NAME: ${DB_NAME:-aether}
DB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-aether_root}
volumes:
- ./sql:/sql:ro
- ./docker/migrate.sh:/migrate.sh:ro
entrypoint: ["sh", "/migrate.sh"]
restart: "no"
# Optional: schlanke Web-Oberfläche auf http://localhost:8080
adminer:
image: adminer:4
container_name: aether-adminer
restart: unless-stopped
depends_on:
db:
condition: service_healthy
ports:
- "${ADMINER_PORT:-8080}:8080"
environment:
ADMINER_DEFAULT_SERVER: db
profiles: ["tools"]
volumes:
db_data: