# Warp all-in-one on PocketBase with media in an S3 bucket elsewhere: the # homeserver, the admin panel and the web client in one container pulled # from a registry (the image is built from Dockerfile.PocketBase.s3). # # cd Docker-AIO # cp .env.pocketbase.s3.prod.example .env # then edit it # docker compose -f docker-compose.pocketbase.s3.prod.yml up -d # # The database stays in /data/pb_data (warp-data); media goes to the bucket # WARP_PB_S3_BUCKET (default warp) on WARP_PB_S3_ENDPOINT, which must already # exist: nothing here runs a gateway or creates the bucket. For a gateway on # this Docker host, use http://host.docker.internal:8333; the host entry below # makes that name resolve. For a SeaweedFS inside the container instead, see # docker-compose.pocketbase.seaweedfs.prod.yml. Media stored before S3 was on # is not moved into the bucket. # # Homeserver http://localhost:8008, admin panel http://localhost:8009, web # client http://localhost:8080. # # Create the first administrator once the server is up: # # docker compose -f docker-compose.pocketbase.s3.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes 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.pocketbase.s3.prod.yml pull && docker compose -f docker-compose.pocketbase.s3.prod.yml up -d name: warp-aio-pocketbase-s3 services: warp: image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio-pocketbase-s3:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped extra_hosts: # Lets WARP_PB_S3_ENDPOINT name the Docker host as host.docker.internal. - "host.docker.internal:host-gateway" env_file: .env environment: WARP_PB_S3_ENABLED: "true" WARP_PB_S3_ENDPOINT: ${WARP_PB_S3_ENDPOINT:?set WARP_PB_S3_ENDPOINT in .env} WARP_PB_S3_BUCKET: ${WARP_PB_S3_BUCKET:-warp} # SeaweedFS and MinIO ignore the region; the client insists on one. WARP_PB_S3_REGION: ${WARP_PB_S3_REGION:-us-east-1} WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} # true for SeaweedFS and MinIO, false for AWS S3 proper. WARP_PB_S3_FORCE_PATH_STYLE: ${WARP_PB_S3_FORCE_PATH_STYLE:-true} volumes: - warp-data:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" - "${WARP_WEB_PORT:-8080}:8080" volumes: warp-data: