# Warp on SQLite: the homeserver, the admin panel and the web client, each # in its own container, pulled from a registry. # # cd Docker # cp .env.example .env # then edit it # docker compose -f docker-compose.sqlite.prod.yml up -d # # Homeserver http://localhost:8008, admin panel http://localhost:8009, web # client http://localhost:8080. The database, signing key and media live # in the warp-data volume. # # Create the first administrator once the server is up: # # docker compose -f docker-compose.sqlite.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the images come from WARP_REGISTRY (default # ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.sqlite.prod.yml pull && docker compose -f docker-compose.sqlite.prod.yml up -d name: warp-sqlite services: warp: image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped # The signing key is created on first start and kept in the volume: # losing it means other servers no longer recognise this one. entrypoint: ["/bin/sh", "-c"] command: - test -f /data/signing.key || warp generate-keys --output /data/signing.key; exec warp serve env_file: .env environment: WARP_DB_DRIVER: sqlite volumes: - warp-data:/data ports: - "${WARP_PORT:-8008}:8008" admin: image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: - warp env_file: .env environment: WARP_ADMIN_HOMESERVER: http://warp:8008 ports: - "${WARP_ADMIN_PORT:-8009}:8009" web: image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: - warp env_file: .env environment: WARP_WEB_HOMESERVER: http://warp:8008 ports: - "${WARP_WEB_PORT:-8080}:8080" volumes: warp-data: