Selbst hosten
Pluma mit Docker selbst hosten
Pluma auf deiner eigenen Infrastruktur. Zwei Container, eine Compose-Datei, fünf Minuten vom leeren Server bis zur laufenden App.
Linux · 2 vCPU · 4 GBDocker + Compose v2Lizenz (nur kostenpflichtige Tarife)
Schnellstart
Schnellstart (5 Minuten)
1
Verzeichnis anlegen
Verzeichnis anlegen
sudo mkdir -p /opt/pluma && sudo chown $USER:$USER /opt/pluma
cd /opt/pluma2
Compose-Datei anlegen
Compose-Datei anlegen
Speichern als docker-compose.yml.
services:
pluma:
image: mertdalbudak/pluma:latest
container_name: pluma
restart: unless-stopped
env_file: .env
ports:
- "4100:4100"
volumes:
- builder-data:/app/builder/data
# Lets the Pro+ Publish flow drive `docker buildx`. Remove this line
# if you won't publish workspace renderer images.
- /var/run/docker.sock:/var/run/docker.sock
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4100/health"]
interval: 30s
timeout: 5s
retries: 5
volumes:
builder-data:
3
.env-Datei anlegen
.env-Datei anlegen
Speichern als .env. Nur vier Werte zählen — der Rest wird beim ersten Boot automatisch erzeugt.
# Where Pluma is reachable. http://localhost:4100 for internal,
# https://pluma.your-company.com when fronted by TLS.
PUBLIC_URL=http://localhost:4100
# Free tier needs no key. For paid tiers, paste your license here.
LICENSE_KEY=
# ── Database ─────────────────────────────────────────────────────────
# Recommended: point at your own PostgreSQL — easier to back up, scale,
# and operate alongside your other infra. Uncomment and fill in:
# DATABASE_URL=postgresql://USER:PASS@host:5432/pluma
#
# Leave it unset and the container uses a bundled SQLite file under the
# builder-data volume — zero database to run, fine for a single team.
# ── Object storage (optional) ────────────────────────────────────────
# By default uploaded PDFs and images live in the builder-data volume.
# To put them in S3-compatible object storage instead (MinIO, Hetzner
# Object Storage, AWS S3, Cloudflare R2, Backblaze B2, …), set
# STORAGE_BACKEND=s3 and fill in the rest. Useful when you want to
# horizontally scale the builder, share storage across nodes, or
# offload the data volume from the application host.
#
# Database backups are configured from the in-app GUI, not from this
# file — leave the storage block here for application data only.
# STORAGE_BACKEND=s3
# S3_BUCKET=pluma
# S3_ENDPOINT=https://your-s3-endpoint
# S3_PUBLIC_ENDPOINT=https://your-s3-endpoint
# S3_REGION=eu-central-1
# S3_ACCESS_KEY=...
# S3_SECRET_KEY=...
PUBLIC_URLWo die Installation läuftLICENSE_KEYNur kostenpflichtige Tarife — für Free leer lassen4
Stack starten
Stack starten
docker compose up -d
docker compose logs -f pluma5
Prüfen
Prüfen
Wenn beide Endpunkte antworten, läuft es.
curl http://127.0.0.1:4100/health
# → {"ok":true,"service":"builder"}Öffnen http://your-host:4100 und registrieren mit der E-Mail aus
Aktualisieren
Aktualisieren
docker compose pull
docker compose up -dDatenbank-Migrationen laufen automatisch beim Boot, bevor der HTTP-Server Traffic annimmt. Kein manueller Schritt nötig.
Lizenz nötig?
Free-Tier läuft ohne Lizenz. Advanced und Pro brauchen einen Lizenzschlüssel — auf unserer Hosted-Seite kaufen, als LICENSE_KEY in die .env eintragen und neu starten.