Files
FileHost/docs-site/en/guide/getting-started.md
T
O96u ff20f97522 release: v1.2.1 — login captcha, docs site, and bug fixes
Add slider captcha for web login, VitePress documentation on GitHub Pages,
and fixes for gallery delete refresh, pagination jump, and copy-format persistence.
2026-08-29 11:42:18 +08:00

2.2 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 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

  1. Open your instance URL (Docker default http://<host>:6892).
  2. Complete /setup with admin username and password.
  3. (Optional) Configure site URL, image URL, Referer rules — see Environment variables and Dual-domain separation.
  4. Upload from the home page; admins can open Storage, Settings, and API.

Sign in

Management pages (upload, stats, settings, etc.) require login. Enter username and password, drag the slider to align with the gap, then click Sign in.

Login

If registration is enabled, create an account from the register page. Legacy deployments may still use a secret key (see the on-screen hint).

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.

Next steps