Docker¶
Images¶
| Image | Description | Base |
|---|---|---|
ghcr.io/stefanposs/file-flux/backend |
API + WebSocket server | alpine:3.19 |
ghcr.io/stefanposs/file-flux/frontend |
Nginx serving static UI | nginx:alpine |
ghcr.io/stefanposs/file-flux/agent |
Endpoint agent | alpine:3.19 |
Docker Compose Services¶
services:
db:
image: postgres:16-alpine
volumes: [postgres-data:/var/lib/postgresql/data]
backend:
build: ./backend
ports: ["3001:3001", "3002:3002"]
depends_on: [db]
frontend:
build: ./frontend
ports: ["3000:80"]
agent-central:
build: ./agent
depends_on: [backend]
Building Images¶
Production Compose¶
Use the production overlay for hardened settings:
Volumes¶
| Volume | Purpose |
|---|---|
postgres-data |
Database persistence |
file-storage |
File transfer storage |
Networking¶
All services communicate on internal Docker network. Only exposed ports:
3000— Frontend (HTTP)3001— Backend REST API3002— Backend WebSocket
Datenbank nicht exponieren
PostgreSQL sollte in Produktion nicht nach außen erreichbar sein. Port 5432 wird nur im Docker-Netzwerk bereitgestellt.