Introduce registry-pull production stacks (docker-compose.prod.yml) for both the multi-container Docker setup and the all-in-one Docker AIO image, with everything an operator needs (superuser, super-admin, ports, volumes) driven from .env. The API Server now bootstraps PocketBase on startup: a new internal/bootstrap package (Go port of setup-pocketbase.mjs) creates missing collections, reconciles existing ones, and creates the DriverVault super-admin from DRIVERVAULT_SUPERADMIN_* when absent. Idempotent and gated by PB_BOOTSTRAP. The PocketBase superuser is still upserted by the PocketBase container, since the REST API cannot bootstrap the first superuser. Move PocketBase to port 8070 (internal + published) and the web app to 8090 across both stacks, with matching CORS defaults. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 lines
505 B
Bash
13 lines
505 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Create/update the superuser from env vars so the API Server can authenticate
|
|
# on first boot. `superuser upsert` is idempotent (PocketBase v0.23+).
|
|
if [ -n "$PB_ADMIN_EMAIL" ] && [ -n "$PB_ADMIN_PASSWORD" ]; then
|
|
echo "Ensuring PocketBase superuser $PB_ADMIN_EMAIL exists..."
|
|
/pb/pocketbase superuser upsert "$PB_ADMIN_EMAIL" "$PB_ADMIN_PASSWORD" \
|
|
|| echo "warning: superuser upsert failed; create an admin via the UI at /_/"
|
|
fi
|
|
|
|
exec /pb/pocketbase serve --http=0.0.0.0:8070
|