General Settings
The General tab covers your instance’s identity, upload limits, language, and a few site-wide toggles.
Site Configuration
| Setting | Default | What it does |
|---|---|---|
| Site URL | (empty) | Used for absolute URLs in emails, OG previews, and webhook payloads. Set this to your public-facing origin (https://galleries.example.com). |
| Default Expiration (days) | 30 | Pre-fills the expiration field on the Create Event form. Range: 1–365. |
| Max File Size (MB) | 50 | Per-photo upload cap. Range: 1–500. Larger files are rejected before disk write. |
| Max Files per Upload | 500 | Per-batch cap. Range: 1–2000. Hard-capped at the MAX_ALLOWED_FILES_PER_UPLOAD build constant — UI value can be lower but never higher. |
| Max Video Size (MB) | 500 | Per-video upload cap, separate from the photo cap so photos can keep a smaller limit. |
| Allowed File Types | jpg,jpeg,png,webp | Comma-separated extensions. One list for every upload path: the admin upload screen, the admin chunked-upload API, guest uploads and the v1 API. Videos are off by default — add mp4,mov,webm (and m4v, avi if needed) to accept them. See Allowed file types below. |
Allowed file types
The list is matched on the file extension, which selects the MIME type PicPeak stores and later serves. Extensions outside this table are ignored even if you add them:
| Extension | Type |
|---|---|
jpg, jpeg, png, webp, gif | image |
heic, heif | image (iPhone) |
dng | camera RAW — the embedded preview is used for thumbnails |
mp4, m4v, webm, mov, avi | video |
Where it is enforced:
- Admin upload screen — the file picker’s
acceptfilter and the client-side check are built from this list, so disallowed files never leave the browser. - Admin chunked-upload API (
/api/admin/photos/:eventId/chunked-upload/init) — the extension offilenamemust be on the list; themimeTypea client declares is ignored. On the default list a chunkedvideo.mp4is refused with400 File type not allowed. See Photos API. - Guest uploads and the v1 API (images only) — MIME + magic-byte validation against the same list.
Feature Toggles
| Toggle | Default | What it does |
|---|---|---|
| Enable analytics tracking | on | Records gallery views, photo opens, downloads, unique visitors. Off = none of those metrics populate. |
| Allow self-registration for admins | off | Exposes a public /admin/register form. Leave off in production. |
| Enable maintenance mode | off | Blocks every non-admin request with a 503 + branded splash. Admin login still works so you can flip it back. |
| Use short gallery URLs | off | New share links use a random short ID instead of the event slug. Existing links keep working. |
Maintenance mode is enforced by middleware (backend/src/middleware/maintenance.js) — if your reverse proxy caches the 503 response aggressively you may need to flush its cache after disabling.
Language
Sets the default language served to guests before they click the language toggle, and the language used for system emails when the event has no specific recipient locale.
Supported: en, de, nl, pt, ru (Brazilian Portuguese, Russian).
Date & Time Format
Pick the format used everywhere a date is rendered (admin tables, emails, gallery footer):
DD/MM/YYYY (European)— defaultMM/DD/YYYY (US)YYYY-MM-DD (ISO)DD.MM.YYYY (German)
The locale code derived from this setting is also passed to date-fns for relative time strings (“3 days ago”).
Saving
Each subsection has its own Save button — partial saves are fine. Cached settings are invalidated automatically; no restart needed.