Aller au contenu
Auto-hébergement

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.

Linux · 2 vCPU · 4 GoDocker + Compose v2Licence (offres payantes seulement)
Démarrage rapide

Démarrage rapide (5 minutes)

1

Choisissez un répertoire

sudo mkdir -p /opt/pluma && sudo chown $USER:$USER /opt/pluma
cd /opt/pluma
2

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:
3

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ée
LICENSE_KEYOffres payantes seulement — laissez vide pour Free
4

Démarrez la stack

docker compose up -d
docker compose logs -f pluma
5

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

Intégrations optionnelles

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

Mise à jour

docker compose pull
docker compose up -d

Les 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.