serene-pub/docker-compose.dev.yml

51 lines
2.1 KiB
YAML

services:
serene-pub:
build: .
restart: unless-stopped
ports:
- "3000:3000" # Web UI
- "3001:3001" # WebSocket server
volumes:
- serene-pub-dev-data:/data
environment:
# Data directory inside the container (matches the volume mount above)
SERENE_PUB_DATA_DIR: /data
# HTTP port the web UI listens on (must match the left side of the ports mapping)
PORT: 3000
# WebSocket server port (must match the left side of the ports mapping)
SOCKETS_PORT: 3001
# Disable automatic browser launch (always disabled in containers)
SERENE_AUTO_OPEN: 1
# A Docker deployment has already made its own network-exposure
# decision via the port mapping above (and/or a reverse proxy in
# front of it), so the app's own origin allowlist is redundant
# friction here — this opts out of it entirely. Remove this line
# (or set specific hostnames) if you want the app-level allowlist
# enforced on top of your container's own network boundary.
SOCKETS_ALLOWED_ORIGINS: "*"
# --- Optional overrides ---
# Session token lifetime in hours (default: 168 = 7 days)
# USER_TOKEN_EXPIRATION_HOURS: 168
# Override the directory where AI model caches (transformers) are stored.
# Defaults to $SERENE_PUB_DATA_DIR/transformers-cache, already inside the volume.
# TRANSFORMERS_CACHE: /data/transformers-cache
# KoboldCPP managed-mode binary directory (only needed for managed KoboldCPP).
# Mount your KoboldCPP binary into the container and set this path.
# See DOCKER.md for details.
# KOBOLDCPP_BINARY_DIR: /koboldcpp
# Running behind a reverse proxy or tunnel? See HOSTING.md — you'll likely need
# SOCKETS_HTTPS_HOSTS and HOST_HEADER, and to route /socket.io/ to SOCKETS_PORT.
# SOCKETS_HTTPS_HOSTS: serene.example.com
# HOST_HEADER: x-forwarded-host
volumes:
serene-pub-dev-data: