- docker-compose.yml: db (timescaledb/pg17) + backend + frontend - backend/Dockerfile: multi-stage (golang:1.24-alpine -> debian:bookworm-slim) - frontend/Dockerfile: multi-stage (node:22-alpine -> nginx:alpine), Build-Args fuer VITE_* - frontend/nginx.conf: SPA-Routing + Asset-Caching - .env.example: BACKEND_HOST, DB_PASSWORD, JWT_SECRET, API_KEY - backend/config/config.go: ENV-Var-Support vervollstaendigt (JWT_SECRET, API_KEY, DB_PORT, DB_USER, DB_NAME) - backend/config.yaml.example: ENV-Var Kommentare ergaenzt - README: Docker-Quickstart als empfohlener Einstieg (3 Befehle) - .gitignore: .env zur ignore-Liste hinzugefuegt
50 lines
1004 B
YAML
50 lines
1004 B
YAML
services:
|
|
|
|
db:
|
|
image: timescale/timescaledb:latest-pg17
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: rmm
|
|
POSTGRES_USER: rmm
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U rmm"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
backend:
|
|
build: ./backend
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8443:8443"
|
|
environment:
|
|
RMM_DB_HOST: db
|
|
RMM_DB_PASSWORD: ${DB_PASSWORD}
|
|
RMM_JWT_SECRET: ${JWT_SECRET}
|
|
RMM_API_KEY: ${API_KEY}
|
|
volumes:
|
|
- certs:/app/certs
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
VITE_BACKEND_HOST: ${BACKEND_HOST}
|
|
VITE_BACKEND_PORT: ${BACKEND_PORT:-8443}
|
|
VITE_API_KEY: ${API_KEY}
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
depends_on:
|
|
- backend
|
|
|
|
volumes:
|
|
pgdata:
|
|
certs:
|