# TarninaHub — szablon docker-compose (wersja projektu 0.0.1) # # Użycie: # cp docker-compose.yaml.example docker-compose.yaml # docker compose up --build # # Aplikacja: http://localhost:8080 # Dane: ./data (bind mount, trwałe, SurrealDB embedded RocksDB) name: tarninahub services: app: # Obraz budowany lokalnie z Dockerfile (multi-stage: klient Vue + backend .NET). image: tarninahub:${APP_VERSION:-0.0.1} build: context: . dockerfile: Dockerfile args: APP_VERSION: ${APP_VERSION:-0.0.1} container_name: tarninahub restart: unless-stopped # RocksDB zapisuje do bind-mountu ./data; root upraszcza uprawnienia (MVP). # W produkcji użyj named volume albo dopasuj właściciela katalogu ./data. user: "0:0" ports: - "${TARNINAHUB_PORT:-8080}:8080" environment: ASPNETCORE_ENVIRONMENT: Production ASPNETCORE_URLS: http://+:8080 # SurrealDB — wbudowany silnik RocksDB (domyślnie), dane w /app/data. SurrealDb__Namespace: hubmi SurrealDb__Database: hubmi SurrealDb__DataDirectory: data # Tryb zdalny (opcjonalnie) — wskaż zewnętrzny serwer SurrealDB zamiast # wbudowanego RocksDB. Wtedy usuń `user: "0:0"` i przekieruj port 8010. # SurrealDb__RemoteUrl: ws://127.0.0.1:8010/rpc # SurrealDb__Username: root # SurrealDb__Password: root volumes: # Jedyny volumen aplikacji — trwałe dane (SurrealDB / RocksDB). - ./data:/app/data healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:8080/api/health"] interval: 30s timeout: 5s retries: 3 start_period: 20s