36 lines
1.3 KiB
YAML
36 lines
1.3 KiB
YAML
name: carcontrol-aio
|
|
|
|
# Single all-in-one container: PocketBase + API Server + Web App (nginx).
|
|
# The build context is the project root so the Dockerfile can reach both
|
|
# "API Server/" and "Web App/". Copy .env.example to .env before starting.
|
|
|
|
services:
|
|
carcontrol:
|
|
build:
|
|
# Project root (one level up from this compose file).
|
|
context: ..
|
|
dockerfile: Docker AIO/Dockerfile
|
|
args:
|
|
# Empty -> bundle uses same-origin "/api", proxied internally by nginx.
|
|
VITE_API_BASE: "${VITE_API_BASE:-}"
|
|
# Optional: pin PocketBase; empty fetches the latest release at build.
|
|
PB_VERSION: "${PB_VERSION:-}"
|
|
image: carcontrol-aio
|
|
container_name: carcontrol-aio
|
|
restart: unless-stopped
|
|
environment:
|
|
# Superuser (also used by the API Server to authenticate to PocketBase).
|
|
PB_ADMIN_EMAIL: "${PB_ADMIN_EMAIL:?set PB_ADMIN_EMAIL in .env}"
|
|
PB_ADMIN_PASSWORD: "${PB_ADMIN_PASSWORD:?set PB_ADMIN_PASSWORD in .env}"
|
|
# Signs auth tokens — set to a long random value.
|
|
AUTH_SECRET: "${AUTH_SECRET:?set AUTH_SECRET in .env}"
|
|
ports:
|
|
- "${WEB_PORT:-80}:80" # Web App
|
|
- "${PB_PORT:-8090}:8090" # PocketBase admin UI / API
|
|
- "${API_PORT:-8080}:8080" # API Server + embedded API web panel (root /)
|
|
volumes:
|
|
- pb_data:/pb/pb_data
|
|
|
|
volumes:
|
|
pb_data:
|