# Bookshelf PocketBase server — Docker Compose deployment. # # Build context is the parent `server/` directory (so the Dockerfile can see # pocketbase, pb_migrations/, pb_hooks/). Run compose from server/deploy/: # # cd server/deploy && docker compose up -d # # Data lives in the named volume `bookshelf_pb_data`, independent of the # container lifecycle — `docker compose down` (without -v) never touches it. # # The port is published on 127.0.0.1 only, matching bookshelf.service: this # container is meant to sit behind Tailscale or a Caddy reverse proxy on the # same host, never exposed directly to the internet (see deploy/README.md). services: pocketbase: build: context: .. dockerfile: deploy/Dockerfile container_name: bookshelf-pocketbase restart: unless-stopped ports: - "127.0.0.1:8090:8090" volumes: - bookshelf_pb_data:/pb/pb_data healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:8090/api/health"] interval: 30s timeout: 5s retries: 3 volumes: bookshelf_pb_data: name: bookshelf_pb_data