Six compose files for the separate-container setup, a build and a prod
file for each, modelled on DriverVault's Docker folder:
- pocketbase.s3: media in an existing bucket elsewhere; the endpoint
and key pair are required, host.docker.internal is mapped, and the
homeserver waits up to 30 seconds for the endpoint before starting.
- pocketbase.seaweedfs: SeaweedFS as one `weed server -s3` container
whose only identity is the homeserver's key pair, plus a one-shot
init that creates the bucket.
- pocketbase.seaweedfs.split: master, volume, filer, S3 gateway and
admin UI as separate containers; the init seeds the bucket and the
homeserver's identity into the filer's IAM store, and the gateway
waits for it.
Only the S3 gateway and admin UI are published, on loopback. Both
SeaweedFS files share one project and data layout, so switching needs
no migration. .env.example gains the SEAWEED_* settings and leaves
WARP_PB_S3_FORCE_PATH_STYLE empty so the S3 file's default applies.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each folder gets a .env.example listing every homeserver, admin panel
and web client setting with its default (empty means the default).
Compose reads .env for ports, registry and the PostgreSQL password, and
passes it to the containers through env_file; the compose files keep
only the database driver, connection string and internal addresses.
.env is git-ignored.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Docker/ runs the homeserver, admin panel and web client as separate
containers built from the existing Dockerfiles; Docker-AIO/ runs all
three (and optionally PostgreSQL) in one warp-aio image, supervised by
a small entrypoint. Each has a build file and a .prod.yml that only
pulls images from WARP_REGISTRY at WARP_VERSION.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>