Pluma'yı Docker ile kendi sunucunuzda barındırın
Pluma'yı kendi altyapınızda çalıştırın. Tek konteyner, tek compose dosyası, temiz sunucudan çalışan uygulamaya beş dakika.
Hızlı başlangıç (5 dakika)
Bir dizin seçin
Bir dizin seçin
sudo mkdir -p /opt/pluma && sudo chown $USER:$USER /opt/pluma
cd /opt/plumacompose dosyasını oluşturun
compose dosyasını oluşturun
Şu adla kaydet 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:
env dosyasını oluşturun
env dosyasını oluşturun
Şu adla kaydet .env. Sadece dört değer önemli — gerisi ilk açılışta otomatik üretilir.
# Where Pluma is reachable (use https://… when fronted by TLS).
PUBLIC_URL=http://localhost:4100
# Paid tiers: paste your license key. Free tier: leave blank.
LICENSE_KEY=
# Database (optional) — unset uses a bundled SQLite file; point at your
# own PostgreSQL to back it up and scale it yourself.
# DATABASE_URL=postgresql://USER:PASS@host:5432/pluma
# Object storage (optional) — defaults to the local data volume; set these
# for S3-compatible storage (MinIO, R2, S3, B2, …).
# STORAGE_BACKEND=s3
# S3_BUCKET=pluma
# S3_ENDPOINT=https://your-s3-endpoint
# S3_REGION=eu-central-1
# S3_ACCESS_KEY=...
# S3_SECRET_KEY=...
# Email (optional) — only for the enterprise e-signature workflow. Any SMTP
# URL works; without it /sign-requests is disabled and everything else runs
# offline.
# SMTP_URL=smtp://user:[email protected]:587
# EMAIL_FROM=Pluma <[email protected]>
# [email protected]
PUBLIC_URLKurulumun yaşadığı yerLICENSE_KEYYalnızca ücretli planlar — Free için boş bırakınStack'i başlatın
Stack'i başlatın
docker compose up -d
docker compose logs -f plumaDoğrulayın
Doğrulayın
İki uç nokta da yanıt veriyorsa, çalışıyor.
curl http://127.0.0.1:4100/health
# → {"ok":true,"service":"builder"}Açın http://your-host:4100 ve şu e-postayla kaydolun
Plug in only what you need
The core install runs offline — no external services required. The integrations below are opt-in, configured through .env, and only activate the feature they're paired with.
SMTP — e-signature workflow
Yalnızca Enterprise kurulumlarındaki e-imza iş akışı için gereklidir. Herhangi bir standart SMTP adresi çalışır:
# ── Transactional email (optional; needed for /sign-requests) ──
SMTP_URL=smtp://user:[email protected]:587
EMAIL_FROM=Pluma <[email protected]>
[email protected]Branding — make it look like yours
After the first sign-in, the dashboard Settings → Branding page lets you replace "Pluma" with your product name, swap in your own logo (header + email) and favicon, set an accent colour, and add a legal footer to every transactional email. Changes hot-swap immediately — no restart, no env-var dance. Self-hosted only; hosted SaaS branding is Pluma-owned.
Object storage — share state across nodes
By default uploaded PDFs and images live in the builder-data volume. Point STORAGE_BACKEND at any S3-compatible service (MinIO, Hetzner, R2, B2, AWS) when you want to scale horizontally, run multiple builder replicas, or take the data volume off the application host.
STORAGE_BACKEND=s3
S3_BUCKET=pluma
S3_ENDPOINT=https://your-s3-endpoint
S3_REGION=eu-central-1
S3_ACCESS_KEY=...
S3_SECRET_KEY=...Güncelleme
docker compose pull
docker compose up -dVeritabanı migrasyonları, HTTP sunucusu trafik kabul etmeden önce builder açılışında otomatik çalışır. Manuel adım yok.
Lisans mı gerekiyor?
Free planı lisanssız çalışır. Advanced ve Pro planları bir lisans anahtarı gerektirir — barındırılan sitemizden bir tane satın alın, .env'inize LICENSE_KEY olarak yapıştırın ve yeniden dağıtın.