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. |
| Browser-playable copies of videos | off | Re-encodes videos a browser cannot play (HEVC, QuickTime, non-streamable MP4) into an H.264 MP4 that the gallery streams instead; the download stays the original. Switching it on queues the videos already uploaded. Costs CPU per video and a second file. See Video Support → Browser playback. |
| Strip location and device data from played videos | on | Videos that already play in a browser get a copy without the recording location, camera and other metadata, made without re-encoding; guests play that copy and the original stays the download. Stores one extra file per such video, about the size of the original. Switching it on queues the existing videos; switching it off keeps the copies already made. |
| Adaptive video streaming | off | Converts each video into a stream in up to three qualities (480p, 720p, 1080p), so playback starts quickly and adapts to the viewer’s connection. The original stays the download. Costs CPU per video and roughly as much storage again; videos longer than 30 minutes keep playing as before. Switching it on queues the existing videos, including ones that failed before. See Video Support. |
| Max Upload Batch Size (MB) | 95 | Maximum size per upload request. Lower it behind a reverse proxy with a request size limit (Cloudflare: 100 MB). |
| Trash retention (days) | 30 | Photos deleted from a gallery stay in its trash this long and can be restored. Range: 0–365; 0 deletes photos at once. Photos in the trash still use storage. See Managing Photos. |
| 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, arw, sr2, srf, cr2, nef, nrw, orf, pef, srw | camera RAW (Adobe DNG / Apple ProRAW, Sony, Canon CR2, Nikon, Olympus, Pentax, Samsung) — the embedded preview is used for thumbnails and display, the original stays the download |
mp4, m4v, webm, mov, avi | video |
None of the RAW extensions is on the default list; add the ones you need. Browsers send RAW files without a usable type, so for these PicPeak takes the type from the extension. Canon CR3, Fujifilm RAF and Panasonic RW2 are not accepted. An extension PicPeak does not know is dropped with a warning in the backend log that lists the supported ones. A change to the list applies to the next upload, without waiting for a cache to expire.
RAW formats other than DNG are on the beta channel from v3.162.0-beta.0. Stable (v3.134.x) accepts dng only. The Browser-playable copies of videos switch is beta-only (from v3.157.0-beta.0), as are Adaptive video streaming (v3.171.0-beta.0), Trash retention (v3.172.0-beta.0) and Strip location and device data from played videos (v3.174.2-beta.0). See Release Channels.
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
The Language card has two selectors:
| Setting | Scope | What it does |
|---|---|---|
| Your admin language | You, on this device | Language of the admin area. Applies at once; no save needed. |
| Gallery & guest language | Whole instance | Language shown to guests before they pick one with the language toggle, and the language of system emails when the event has no recipient locale. Saved with the tab. |
Eight languages are available: English (en), German (de), Russian (ru), Brazilian Portuguese (pt), Dutch (nl), French (fr), Spanish (es) and Slovenian (sl). English and German are complete; the other six are partial, and a string missing there is shown in English.
The admin language moved into this card on the beta channel in v3.151.0-beta.0. On stable (v3.134.x) the card has only the guest language, and you switch your admin language with the selector in the admin header.
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
One save bar at the bottom of the window saves the whole tab, including your account details at the top (see Saving). On stable (v3.134.x) each subsection has its own Save button. Cached settings are invalidated automatically; no restart needed.