Back to Apps
Gotenberg

Deploy Gotenberg on Your Own Server

Docker-Powered Stateless API For PDF Files

πŸ’Ύ Storageβœ… Productivity

Want to deploy Gotenberg on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is Gotenberg?

Gotenberg provides a developer-friendly API to interact with powerful tools like Chromium and LibreOffice for converting numerous document formats (HTML, Markdown, Word, Excel, etc.) into PDF files, and more!

Learn more

Self-Host Gotenberg

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
API
Chromium
LibreOffice
PDF Engines
Webhook
Prometheus
Logging
3

Deploy

Copy the configuration and run it on your server.

services:
  gotenberg:
    environment:
      API_DISABLE_HEALTH_CHECK: "false"
      API_PORT: "3000"
      API_ROOT_PATH: /
      API_TIMEOUT: 30s
      API_TRACE_HEADER: Gotenberg-Trace
      CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES: "true"
      CHROMIUM_ALLOW_INSECURE_LOCALHOST: "true"
      CHROMIUM_ALLOW_LIST: ""
      CHROMIUM_DENY_LIST: ^file:///[^tmp].*
      CHROMIUM_DISABLE_JAVASCRIPT: "false"
      CHROMIUM_DISABLE_ROUTES: "false"
      CHROMIUM_DISABLE_WEB_SECURITY: "true"
      CHROMIUM_HOST_RESOLVER_RULES: ""
      CHROMIUM_IGNORE_CERTIFICATE_ERRORS: "true"
      CHROMIUM_INCOGNITO: "false"
      CHROMIUM_PROXY_SERVER: ""
      GRACEFUL_SHUTDOWN_DURATION: 30s
      LIBREOFFICE_DISABLE_ROUTES: "false"
      LIBREOFFICE_LISTENER_RESTART_THRESHOLD: "10"
      LIBREOFFICE_LISTENER_START_TIMEOUT: 10s
      LOG_FORMAT: auto
      LOG_LEVEL: info
      PDFENGINES_DISABLE_ROUTES: "false"
      PDFENGINES_ENGINES: ""
      PROMETHEUS_COLLECT_INTERVAL: 1s
      PROMETHEUS_DISABLE_COLLECT: "false"
      PROMETHEUS_DISABLE_ROUTE_LOGGING: "false"
      PROMETHEUS_NAMESPACE: gotenberg
      VERSION: "7"
      WEBHOOK_ALLOW_LIST: ""
      WEBHOOK_CLIENT_TIMEOUT: 30s
      WEBHOOK_DENY_LIST: ""
      WEBHOOK_DISABLE: "false"
      WEBHOOK_ERROR_ALLOW_LIST: ""
      WEBHOOK_ERROR_DENY_LIST: ""
      WEBHOOK_MAX_RETRY: "4"
      WEBHOOK_RETRY_MAX_WAIT: 30s
      WEBHOOK_RETRY_MIN_WAIT: 1s

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:80

Why Self-Host Gotenberg?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"