Dockerfile builds warp-aio on SQLite, Dockerfile.PocketBase builds warp-aio-pocketbase and Dockerfile.PostgreSQL builds warp-aio-postgresql with PostgreSQL bundled. The database driver and connection string now come from the image, so the SQLite and PocketBase images no longer carry PostgreSQL (103 MB instead of 149 MB). The AIO compose files point at their own Dockerfile and image, and the entrypoint refuses to start an embedded PostgreSQL in an image that has none. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
180 lines
5.6 KiB
Bash
180 lines
5.6 KiB
Bash
# Settings for every compose file in this folder.
|
|
#
|
|
# cp .env.example .env
|
|
#
|
|
# then edit .env. Compose reads it for the ports and the registry, and
|
|
# hands all of it to the container, so anything below takes effect on the
|
|
# next `docker compose ... up -d`.
|
|
#
|
|
# An empty value means the built-in default, given in the comment above it.
|
|
# Every homeserver setting is described in docs/configuration.md.
|
|
#
|
|
# Set by the image, not here: the database driver and connection string
|
|
# (each Dockerfile is one database), the listen addresses, the signing key
|
|
# and media paths inside /data, the address the admin panel and web client
|
|
# reach the homeserver on, and whether the bundled PostgreSQL runs.
|
|
|
|
# ---------------------------------------------------------------- compose
|
|
|
|
# Host ports for the homeserver, the admin panel and the web client.
|
|
WARP_PORT=8008
|
|
WARP_ADMIN_PORT=8009
|
|
WARP_WEB_PORT=8080
|
|
|
|
# The *.prod.yml files pull $WARP_REGISTRY/warp-aio (SQLite),
|
|
# warp-aio-pocketbase or warp-aio-postgresql at this tag. Pin a release in
|
|
# production.
|
|
WARP_REGISTRY=ghcr.io/dariuszjaniak
|
|
WARP_VERSION=latest
|
|
|
|
# ------------------------------------------------------------------- aio
|
|
|
|
# false runs the container without the admin panel or the web client.
|
|
WARP_AIO_ADMIN=true
|
|
WARP_AIO_WEB=true
|
|
|
|
# ------------------------------------------------------------ homeserver
|
|
|
|
# Part of every user and room ID: it cannot be changed later.
|
|
WARP_SERVER_NAME=localhost
|
|
|
|
# The URL clients are told to use, in /.well-known/matrix/client.
|
|
# Default https://<server name>.
|
|
WARP_WELL_KNOWN_CLIENT_BASE_URL=http://localhost:8008
|
|
# Default empty.
|
|
WARP_WELL_KNOWN_IDENTITY_SERVER_BASE_URL=
|
|
# host:port other homeservers should use. Default empty: no delegation.
|
|
WARP_WELL_KNOWN_SERVER_ADDRESS=
|
|
|
|
# Registration. Default false; the admin API can switch it at runtime.
|
|
WARP_REGISTRATION_ENABLED=false
|
|
# Default true.
|
|
WARP_REGISTRATION_ALLOW_RUNTIME_TOGGLE=
|
|
# Comma-separated sign-up tokens. Default none.
|
|
WARP_REGISTRATION_TOKENS=
|
|
# Default false.
|
|
WARP_REGISTRATION_REQUIRE_TOKEN=
|
|
|
|
# Federation. Default false.
|
|
WARP_FEDERATION_ENABLED=false
|
|
# Default true.
|
|
WARP_FEDERATION_ALLOW_RUNTIME_TOGGLE=
|
|
# Comma-separated server names. Default none.
|
|
WARP_FEDERATION_ALLOWLIST=
|
|
WARP_FEDERATION_DENYLIST=
|
|
WARP_FEDERATION_TRUSTED_KEY_SERVERS=
|
|
# Default 24h.
|
|
WARP_FEDERATION_KEY_VALIDITY_PERIOD=
|
|
# A second, TLS listener for federation, e.g. :8448, with its certificate
|
|
# and key (paths inside the container). Publish the port yourself.
|
|
WARP_LISTEN_FEDERATION_ADDRESS=
|
|
WARP_TLS_CERT_FILE=
|
|
WARP_TLS_KEY_FILE=
|
|
WARP_FEDERATION_TLS_CA_FILE=
|
|
|
|
# HTTP server. Defaults 10s, 60s, 120s, 120s, 1048576, 30s.
|
|
WARP_READ_HEADER_TIMEOUT=
|
|
WARP_READ_TIMEOUT=
|
|
WARP_WRITE_TIMEOUT=
|
|
WARP_IDLE_TIMEOUT=
|
|
WARP_MAX_HEADER_BYTES=
|
|
WARP_SHUTDOWN_TIMEOUT=
|
|
|
|
# Database pool (PostgreSQL). Defaults 10, 5, 1h, true.
|
|
WARP_DB_MAX_OPEN_CONNS=
|
|
WARP_DB_MAX_IDLE_CONNS=
|
|
WARP_DB_CONN_MAX_LIFETIME=
|
|
WARP_DB_AUTO_MIGRATE=
|
|
|
|
# docker-compose.pocketbase*.yml only: keep media in an S3 bucket instead
|
|
# of pb_data/storage. Bucket, region, endpoint and keys are all required
|
|
# when it is on.
|
|
WARP_PB_S3_ENABLED=false
|
|
WARP_PB_S3_BUCKET=
|
|
WARP_PB_S3_REGION=
|
|
WARP_PB_S3_ENDPOINT=
|
|
WARP_PB_S3_ACCESS_KEY=
|
|
WARP_PB_S3_SECRET=
|
|
WARP_PB_S3_FORCE_PATH_STYLE=false
|
|
|
|
# Client API. Defaults *, false, 0s (never expire), 0s, true.
|
|
WARP_CORS_ALLOWED_ORIGINS=
|
|
WARP_TRUST_X_FORWARDED_FOR=
|
|
WARP_ACCESS_TOKEN_LIFETIME=
|
|
WARP_REFRESH_TOKEN_LIFETIME=
|
|
WARP_RATE_LIMIT_ENABLED=
|
|
|
|
# Calls: the LiveKit JWT service's URL (see docs/calls.md). Default empty.
|
|
WARP_RTC_LIVEKIT_SERVICE_URL=
|
|
# Delayed events. Defaults 24h, 100.
|
|
WARP_DELAYED_EVENTS_MAX_DELAY=
|
|
WARP_DELAYED_EVENTS_MAX_PER_USER=
|
|
# TURN for legacy 1:1 calls: comma-separated URIs, then a shared secret or
|
|
# a static username and password. Lifetime default 1h.
|
|
WARP_TURN_URIS=
|
|
WARP_TURN_SHARED_SECRET=
|
|
WARP_TURN_USER_LIFETIME=
|
|
WARP_TURN_USERNAME=
|
|
WARP_TURN_PASSWORD=
|
|
|
|
# Sync. Defaults false, 30s, 30s.
|
|
WARP_SYNC_PRESENCE=
|
|
WARP_SYNC_TYPING_TIMEOUT=
|
|
WARP_SYNC_LONG_POLL_TIMEOUT=
|
|
|
|
# Media. Defaults 52428800 (50 MiB), 0 (no limit), 32000000, 24h, 10, false.
|
|
WARP_MEDIA_MAX_UPLOAD_BYTES=
|
|
WARP_MEDIA_MAX_USER_STORAGE_BYTES=
|
|
WARP_MEDIA_MAX_THUMBNAIL_PIXELS=
|
|
WARP_MEDIA_PENDING_UPLOAD_EXPIRY=
|
|
WARP_MEDIA_MAX_PENDING_UPLOADS=
|
|
WARP_MEDIA_LEGACY_UNAUTHENTICATED_DOWNLOADS=
|
|
|
|
# Push. Defaults true, true, 10s, 720h.
|
|
WARP_PUSH_ENABLED=
|
|
WARP_PUSH_INCLUDE_CONTENT=
|
|
WARP_PUSH_GATEWAY_TIMEOUT=
|
|
WARP_PUSH_NOTIFICATION_RETENTION=
|
|
|
|
# Application services: comma-separated registration files (paths inside
|
|
# the container). Timeout default 30s.
|
|
WARP_APPSERVICE_CONFIG_FILES=
|
|
WARP_APPSERVICE_TIMEOUT=
|
|
|
|
# Server notices. Defaults false, server-notices, Server Notices, Server
|
|
# Notices.
|
|
WARP_SERVER_NOTICES_ENABLED=
|
|
WARP_SERVER_NOTICES_LOCALPART=
|
|
WARP_SERVER_NOTICES_DISPLAY_NAME=
|
|
WARP_SERVER_NOTICES_ROOM_NAME=
|
|
|
|
# Logging: debug, info, warn or error; text or json; file and line.
|
|
WARP_LOG_LEVEL=info
|
|
WARP_LOG_FORMAT=json
|
|
WARP_LOG_ADD_SOURCE=
|
|
|
|
# Metrics. Defaults true, /metrics.
|
|
WARP_METRICS_ENABLED=
|
|
WARP_METRICS_PATH=
|
|
|
|
# OpenTelemetry tracing. Defaults false, localhost:4318, 1, warp.
|
|
WARP_TRACING_ENABLED=false
|
|
WARP_TRACING_ENDPOINT=
|
|
WARP_TRACING_SAMPLE_RATIO=
|
|
WARP_TRACING_SERVICE_NAME=
|
|
|
|
# ----------------------------------------------------------- admin panel
|
|
|
|
# text or json.
|
|
WARP_ADMIN_LOG_FORMAT=json
|
|
|
|
# ------------------------------------------------------------ web client
|
|
|
|
# The homeserver's public URL. Set, the browser talks to it directly and
|
|
# the web client proxies nothing; empty, it proxies the client API.
|
|
WARP_WEB_PUBLIC_HOMESERVER=
|
|
# Space-separated origins of the LiveKit JWT service and SFU, for calls.
|
|
WARP_WEB_CALL_ORIGINS=
|
|
# text or json.
|
|
WARP_WEB_LOG_FORMAT=json
|