Skip to content

Self-host Piwigo

updated Sep 2026prices checked · Jul 2026
We earn commissions when you shop through the links below. Full disclosure →

A PHP photo gallery for organizing large photo collections into albums, with per-user and per-group permissions, tags and a plugin system.

Key facts

LicenseGPL-2.0
StackPHP, MySQL
Min RAM512 MB
Official imageyes
Difficulty

What you need

  • Any VPS with at least 512 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# Piwigo — the official Piwigo/piwigo-docker compose file (Piwigo + MariaDB), per doc.piwigo.org's Docker install guide
mkdir -p piwigo && cd piwigo
curl -O https://raw.githubusercontent.com/Piwigo/piwigo-docker/refs/heads/main/compose.yaml
DB_PW=$(openssl rand -hex 32) && echo "database password: $DB_PW"
printf 'piwigo_port=8080\ndb_user_password=%s\ntimezone=UTC\nPIWIGO_UID=1000\nPIWIGO_GID=1000\n' "$DB_PW" > .env
docker compose up -d
# open http://SERVER_IP:8080 and finish the install form: host piwigo-db:3306, user piwigodb_user,
# the database password printed above, database piwigodb — then create the webmaster account

More in Photo backup & gallery

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.