Wedding Photo Booth · Docs
Quick links
Architecture
┌─────────┐
Internet ──▶ │ Caddy │
:80 / :443 │ (TLS) │
└────┬────┘
│
┌──────────┼──────────┐
▼ │ ▼
┌──────────┐ │ ┌──────────┐
│ Next.js │ │ │Next.js │
│ :3000 │ │ │ :3001 │
│(production)│ │ │(develop) │
└────┬─────┘ │ └────┬─────┘
│ │ │
┌────▼─────┐ │ ┌────▼─────┐
│PocketBase│ │ │PocketBase│
│ :8090 │ │ │ :8091 │
└──────────┘ │ └──────────┘
│
am-party.pl dev.am-party.pl
Services
| Service |
Image |
Port |
Notes |
| Caddy |
caddy:latest |
80, 443 |
Auto‑TLS via Let’s Encrypt |
| wedding-app |
$CI_REGISTRY_IMAGE |
3000 |
Next.js 16 standalone |
| pocketbase |
custom |
8090 |
PocketBase 0.39.4, internal only |
Environments
| Environment |
Branch |
Domain |
Compose project |
| Production |
main |
am-party.pl |
wedding |
| Develop |
develop |
dev.am-party.pl |
wedding-dev |
Pipeline
scan → check → test → build → release (main) → deploy
- Every commit to
main / develop runs scan,
check, and test.
main additionally runs semantic‑release (version bumps
+ Git tag).
- Tag pipelines build and deploy to production.
develop deploys automatically on every successful
build.
Secrets
All sensitive values live in GitLab CI Variables (Settings → CI/CD →
Variables):
| Variable |
Purpose |
WEDDING_SESSION_SECRET |
HMAC signing key for auth cookies |
POCKETBASE_ADMIN_EMAIL |
PB superuser |
POCKETBASE_ADMIN_PASSWORD |
PB superuser |
WEDDING_APP_URL |
Public URL (used by QR generator) |
VPS_HOST |
VPS IP or hostname |
VPS_USER |
SSH user |
VPS_SSH_KEY |
SSH private key |