PdfDing
Selfhosted PDF manager, viewer and editor offering a seamless experience on multiple devices
Alternative to: adobe acrobat, dropbox paper, smallpdf
PdfDing is a self-hosted PDF manager, viewer, and editor designed to be minimal, fast, and easy to set up with Docker. It keeps your reading position across devices, organizes files with workspaces, collections and tags, lets you highlight, annotate, and sign PDFs, and share files externally via link or QR code with optional access control. It also supports OIDC single sign-on and two-factor authentication.
PdfDing Docker Compose example
Self-host PdfDing on your own server, homelab, or VPS starting from this Docker Compose example.
It runs PdfDing in Docker containers using the official mrmn/pdfding:latest image, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
pdfding:
image: mrmn/pdfding:latest
restart: unless-stopped
volumes:
- sqlite_data:/home/nonroot/pdfding/db
- media:/home/nonroot/pdfding/media
environment:
# UI color theme. One of: light, dark, creme, night.
DEFAULT_THEME: "dark"
# Accent color of the UI. One of: green, blue, gray, red, pink, orange, brown.
DEFAULT_THEME_COLOR: "green"
# Secret key used by Django for cryptographic signing. Set a long random value.
SECRET_KEY: "changeme"
# The domain name PdfDing is served from, e.g. pdf.example.com. Used as the allowed host.
HOST_NAME: "changeme"
# Send the CSRF cookie only over HTTPS. Set to TRUE when served behind an HTTPS reverse proxy.
CSRF_COOKIE_SECURE: "FALSE"
# Send the session cookie only over HTTPS. Set to TRUE when served behind an HTTPS reverse proxy.
SESSION_COOKIE_SECURE: "FALSE"
volumes:
sqlite_data:
media:
Values set to changeme are required — replace them with your own
values before starting PdfDing.
Prefer a managed setup? WinterFlow installs, configures, and updates PdfDing for you using this same Docker Compose configuration.