2.6 KiB
Quick start
PicHost is a self-hosted image host for NAS, home servers, or VPS. Docker is recommended; the first visit runs a web wizard to create the admin account.
Try it online
| Branch | Notes |
|---|---|
| main | No public demo — see screenshots or the repository README |
| cloudflare | R2-only live demo: pic.roven.cc |
Docker (recommended)
docker run -d \
--name pichost \
-p 6892:6892 \
-v ./data:/data \
--restart unless-stopped \
muxui/pichost:latest
Default port: 6892. Open http://<host>:6892 and complete setup.
If you cloned the repo:
docker compose up -d
See docker-compose.yml in the repository.
First-time setup
- Open your instance URL (Docker default
http://<host>:6892). - Complete
/setupwith admin username and password. - (Optional) Configure site URL, image URL, Referer rules — see Environment variables and Dual-domain separation.
- Upload from the home page; use the top nav for Gallery, Storage (admin), Settings, and API.
Sign in
Management pages (upload, gallery, settings, etc.) require login. Enter username and password, complete the verification challenge, then click Sign in.
The default is a local slider (align the thumb with the gap). Admins can switch to Cloudflare Turnstile or Cap under Settings → Access control, with the matching site key / secret or API endpoint.
If registration is enabled, create an account from the register page (same verification). Legacy deployments may still use a secret key (see the on-screen hint).
Locked out of verification
If Turnstile / Cap is misconfigured and you cannot sign in, reset to the local slider on the server:
docker exec pichost slider
Local dev: npm run slider
Forgot password
Requires docker exec (server access):
docker exec pichost reset-password # admin only when there is exactly one
docker exec pichost reset-password <username> # admin or regular user
A random password is printed. Change it after login.
Local dev: npm run reset-password or npm run reset-password -- <username>
Upgrading to v1.2.0
If data/ has legacy top-level folders next to images (e.g. blog/, twikoo/), read the v1.2 migration guide first.
Object-storage-only or files already under data/images/ — pull the new image and restart.
