Auto-hébergez Pluma avec Docker
Faites tourner Pluma sur votre propre infrastructure. Un conteneur, un fichier compose, cinq minutes d'un serveur vierge à l'application en marche.
Démarrage rapide (5 minutes)
Choisissez un répertoire
Choisissez un répertoire
sudo mkdir -p /opt/pluma && sudo chown $USER:$USER /opt/pluma
cd /opt/plumaCréez le fichier compose
Créez le fichier compose
Enregistrer sous 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:
Créez le fichier env
Créez le fichier env
Enregistrer sous .env. Seulement quatre valeurs comptent — le reste est généré automatiquement au premier démarrage.
# 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_URLOù l’installation est hébergéeLICENSE_KEYOffres payantes seulement — laissez vide pour FreeDémarrez la stack
Démarrez la stack
docker compose up -d
docker compose logs -f plumaVérifiez
Vérifiez
Si les deux endpoints répondent, c’est en ligne.
curl http://127.0.0.1:4100/health
# → {"ok":true,"service":"builder"}Ouvrez http://your-host:4100 et inscrivez-vous avec l’e-mail défini dans
N'activez que ce dont vous avez besoin
L’installation de base fonctionne hors ligne — aucun service externe requis. Les intégrations ci-dessous sont facultatives, se configurent via .env et n’activent que la fonctionnalité à laquelle elles sont associées.
SMTP — flux de signature électronique
Nécessaire uniquement pour le flux de signature électronique sur les installations Enterprise. Toute URL SMTP standard convient :
# ── Transactional email (optional; needed for /sign-requests) ──
SMTP_URL=smtp://user:[email protected]:587
EMAIL_FROM=Pluma <[email protected]>
[email protected]Marque — à votre image
Après la première connexion, la page Paramètres → Marque du tableau de bord vous permet de remplacer « Pluma » par le nom de votre produit, d’utiliser votre propre logo (en-tête + e-mail) et favicon, de définir une couleur d’accent et d’ajouter un pied de page légal à chaque e-mail transactionnel. Les changements sont appliqués immédiatement — sans redémarrage ni manipulation de variables d’environnement. Auto-hébergé uniquement ; la marque du SaaS hébergé appartient à Pluma.
Stockage objet — partager l’état entre les nœuds
Par défaut, les PDF et images téléversés résident dans le volume builder-data. Pointez STORAGE_BACKEND vers n’importe quel service compatible S3 (MinIO, Hetzner, R2, B2, AWS) si vous souhaitez évoluer horizontalement, exécuter plusieurs réplicas du builder ou sortir le volume de données de l’hôte applicatif.
STORAGE_BACKEND=s3
S3_BUCKET=pluma
S3_ENDPOINT=https://your-s3-endpoint
S3_REGION=eu-central-1
S3_ACCESS_KEY=...
S3_SECRET_KEY=...Mise à jour
docker compose pull
docker compose up -dLes migrations de base de données s'exécutent automatiquement au démarrage du builder, avant que le serveur HTTP n'accepte le trafic. Aucune étape manuelle.
Besoin d'une licence ?
L'offre Free fonctionne sans licence. Les offres Advanced et Pro nécessitent une clé de licence — achetez-en une sur notre site hébergé, collez-la dans votre .env comme LICENSE_KEY et redéployez.