Simple Install
The install script sets up PicPeak with a single command — it installs Docker if needed, generates all secrets, writes the configuration, and starts the stack. Best for photographers and studios who want a working install without editing config files.
Prefer to run the steps yourself, or already have Docker? See Quick Start for the manual Docker path.
Requirements: a Linux host (Ubuntu, Debian, Fedora, RHEL/CentOS, Raspberry Pi OS), run as root/sudo. Docker installs are recommended (~4 GB RAM); native installs work on smaller hosts like a Raspberry Pi.
Interactive install (recommended)
Download and run
curl -fsSL https://raw.githubusercontent.com/PicPeak/picpeak/main/scripts/picpeak-setup.sh -o picpeak-setup.sh
chmod +x picpeak-setup.sh
sudo ./picpeak-setup.shAnswer the wizard
The script asks a few questions, then shows a summary and asks you to confirm before it changes anything. Press Enter to accept the [default] shown in brackets.
- Install method — Docker (recommended) or Native (systemd + SQLite, good for a Raspberry Pi)
- Install directory — Docker only (default
~/picpeak) - Release channel —
stable(default) orbeta - Domain — leave blank to run on the local IP over HTTP; you can add a domain later
- HTTPS — with a domain: automatic HTTPS via Caddy (native), your own reverse proxy, or plain HTTP
- Admin email — used for the account you create in the browser
- Email / SMTP — configure now (Gmail, SendGrid, or custom) or skip
Let it install
For a Docker install the script clones PicPeak, generates the machine secrets, writes a minimal .env pointed at docker-compose.production.yml (prebuilt images), creates the storage folders, and starts the stack. No secrets to manage by hand.
Create your admin account
When it finishes, the script prints a one-time setup token:
Create your admin account in the browser:
1. Open http://<host>:3000/admin
2. Enter your email and a password.
3. When prompted, paste this one-time setup token:
q7Fh2K9x… (also saved to data/SETUP_TOKEN)Open the admin URL, paste the token, and set your email + password. See First Login for the full walkthrough.
Unattended install
Pass --unattended plus flags to install without any prompts — useful for automation, CI, or a NAS. The script fails fast on impossible combinations (e.g. --enable-ssl without --domain).
Browser-first admin
The stack comes up unattended; you finish by creating the admin in the browser (the setup token is printed / saved to data/SETUP_TOKEN).
sudo ./picpeak-setup.sh --docker --unattended --email [email protected]Options
| Flag | Purpose |
|---|---|
--docker / --native | Install method (default: docker) |
--unattended | Run without prompts, using defaults + the flags below |
--email EMAIL | Admin email (default [email protected]) |
--admin-password-file FILE | Seed the admin directly from a password file (skips the browser token step). The file must be a regular file with no group or other permissions. Builds containing PicPeak PR #1809 . |
--admin-password PASS | The same with the password on the command line. Still works, with a warning: the password ends up in the process list and the shell history. |
--domain DOMAIN | Domain name (enables HTTPS URLs) |
--enable-ssl | Native only: provision HTTPS via Caddy (requires --domain) |
--install-dir DIR | Install directory (Docker; default ~/picpeak) |
--channel CHANNEL | Image channel: stable (default) or beta |
--port PORT | User-facing port |
--smtp-host / --smtp-port / --smtp-user / --smtp-pass-file | Email configuration. --smtp-pass-file FILE reads the SMTP password from a file under the same rules; --smtp-pass PASS still works, with the same warning. |
--update | Update an existing installation |
--uninstall | Remove PicPeak |
HTTPS
- Native +
--domain— the script can provision automatic HTTPS with Caddy (Let’s Encrypt). - Docker +
--domain— terminate TLS with your own reverse proxy (Traefik, nginx, or a Cloudflare Tunnel) pointed at the frontend port. See Reverse Proxy and SSL.
Putting PicPeak on the internet? Any public server is probed by automated scanners within minutes. Before you share your first gallery link, read Bots and Scanners: a four-point checklist that takes ten minutes, plus an optional free shield in front of PicPeak. Installs that are only reachable inside your own network can skip it.
Updating and removing
sudo ./picpeak-setup.sh --update # pull the latest images and restart
sudo ./picpeak-setup.sh --uninstall # remove PicPeak (prompts before deleting data)