Add complete production-ready Ysterbaard PocketBase registry browser frontend: - Next.js 14 App Router with TypeScript, Tailwind CSS, and TanStack React Query - Secure server-side PocketBase API proxy to avoid exposing superuser tokens - Read-only directors and companies registry browse pages with search, filtering, and pagination - Client onboarding workflow for creating and managing client submissions - Docker container configuration for easy deployment - All supporting UI components, utility functions, and configuration files
40 lines
1.6 KiB
YAML
40 lines
1.6 KiB
YAML
# ─────────────────────────────────────────────────────────────────
|
|
# Workflow PocketBase Frontend — Docker Compose
|
|
#
|
|
# For local Docker testing (matches Coolify's contract closely enough
|
|
# that you can copy these env values straight into Coolify's UI).
|
|
#
|
|
# Usage:
|
|
# cp .env.example .env # fill in real values
|
|
# docker compose up -d --build
|
|
# open http://localhost:3000
|
|
# ─────────────────────────────────────────────────────────────────
|
|
|
|
services:
|
|
workflow:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
# Bake the public URL into the client bundle at build time.
|
|
NEXT_PUBLIC_BASE_URL: ${NEXT_PUBLIC_BASE_URL:-http://localhost:3000}
|
|
image: workflow-frontend:latest
|
|
container_name: workflow-frontend
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT:-3000}:3000"
|
|
environment:
|
|
# Server-only secrets. Coolify's secret manager is the right
|
|
# home for these — never commit real values.
|
|
PB_URL: ${PB_URL:?Set PB_URL in .env}
|
|
PB_TOKEN: ${PB_TOKEN:?Set PB_TOKEN in .env}
|
|
ONBOARDING_TOKEN_PEPPER: ${ONBOARDING_TOKEN_PEPPER:-}
|
|
NODE_ENV: production
|
|
PORT: 3000
|
|
HOSTNAME: 0.0.0.0
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/api/pb/records/list?collection=ysterbaard_directors&perPage=1"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 20s
|