feat: add visual admin panel with page builder and settings editor
- Add /admin route with password-protected visual page builder
- Page Builder: manage hero images, standalone albums, subpages, and sections
- Album Picker: browse all shared Immich albums with search and filtering
- Settings Editor: theme, grid, footer, legal, SEO configuration
- YAML service with atomic writes and automatic backups (content/.backups/)
- HMAC-signed admin sessions (24h expiry, HttpOnly cookies)
- API endpoints: /api/admin/{auth,gallery,settings,albums,reload}
- Enable with ADMIN_PASSWORD env var; disabled by default
- invalidateConfigCache() export for hot-reload after saves
This commit is contained in:
@@ -30,6 +30,17 @@ CACHE_TTL=300
|
||||
# If not provided, IMMICH_API_KEY will be used as a fallback (not recommended).
|
||||
# AUTH_SECRET=your-super-long-random-secret-here
|
||||
|
||||
# Webhook secret for cache invalidation (optional, string).
|
||||
# Set this to a long random string and configure Immich to send webhooks to
|
||||
# POST /api/webhook with an x-immich-signature header (HMAC-SHA256 of the body).
|
||||
# If not set, the webhook endpoint returns 501 and is effectively disabled.
|
||||
# WEBHOOK_SECRET=your-long-random-webhook-secret
|
||||
|
||||
# ── Admin Panel ──────────────────────────────────────────────────
|
||||
# Set a password to enable the visual admin panel at /admin.
|
||||
# Leave unset or empty to disable the admin UI entirely.
|
||||
# ADMIN_PASSWORD=your-secure-admin-password
|
||||
|
||||
# ── Album configuration ──────────────────────────────────────────
|
||||
# Albums, subpages, hero image, and passwords are defined in content/gallery.yaml
|
||||
# See content/gallery.yaml.example for the full reference.
|
||||
|
||||
Reference in New Issue
Block a user