The combined stack now includes PocketBase as a first-class service instead of assuming an external one: a Docker/pocketbase image built from the release binary that bundles the pb_migrations and upserts the superuser on boot, so a fresh stack checks/creates its collections and super-admin the same way DriverVault does. Add production compose variants (registry images) and .env(.prod).example files for both Docker/ and Docker AIO/, a top-level compose name, a PocketBase healthcheck with a service_healthy dependency, and env-driven ports. Move the containerized PocketBase to :8070 (the live remote PB stays 10.2.1.10:8026). Add a root .dockerignore to trim the repo-root build context used by the pocketbase and AIO images. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.6 KiB
YAML
43 lines
1.6 KiB
YAML
name: pilotvault-aio
|
|
|
|
# All-in-one PilotVault stack (PocketBase + API Server + Web App) in ONE container.
|
|
# Run from this Docker AIO/ folder:
|
|
#
|
|
# cp .env.example .env # then edit the credentials/ports
|
|
# docker compose up --build
|
|
#
|
|
# The build context is the repo root (..) because the Dockerfile COPYs from
|
|
# "API Server/" and "Web App/".
|
|
#
|
|
# On first boot the bundled PocketBase upserts its superuser from
|
|
# POCKETBASE_ADMIN_* and runs the JS migrations, which create/reconcile every
|
|
# collection and seed the baseline org + accounts (incl. superadmin@pilotvault.local).
|
|
|
|
services:
|
|
pilotvault:
|
|
build:
|
|
context: ".."
|
|
dockerfile: "Docker AIO/Dockerfile"
|
|
# args:
|
|
# PB_VERSION: "0.22.21" # override the bundled PocketBase version
|
|
# PB_ARCH: "amd64" # use "arm64" on Apple Silicon
|
|
image: pilotvault-aio
|
|
container_name: pilotvault-aio
|
|
restart: unless-stopped
|
|
environment:
|
|
# Loopback-wired between the three in-container services. Override the
|
|
# bundled default credentials here for anything real.
|
|
POCKETBASE_ADMIN_EMAIL: "${POCKETBASE_ADMIN_EMAIL:-admin@dji.local}"
|
|
POCKETBASE_ADMIN_PASSWORD: "${POCKETBASE_ADMIN_PASSWORD:-djiadmin2026!}"
|
|
CORS_ALLOW_ORIGINS: "${CORS_ALLOW_ORIGINS:-*}"
|
|
ports:
|
|
- "${WEB_PORT:-8090}:8090" # Web App (control panel)
|
|
- "${API_PORT:-8080}:8080" # API Server
|
|
- "${PB_PORT:-8070}:8070" # PocketBase admin UI / API
|
|
volumes:
|
|
# Named volume by default; set PB_DATA to a host path in .env for a bind mount.
|
|
- "${PB_DATA:-pb_data}:/pb/pb_data"
|
|
|
|
volumes:
|
|
pb_data:
|