MCPcopy Index your code
hub / github.com/gotenberg/gotenberg

github.com/gotenberg/gotenberg @v8.34.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v8.34.0 ↗ · + Follow
1,184 symbols 4,790 edges 150 files 671 documented · 57% 63 cross-repo links updated 3d agov8.34.0 · 2026-06-12★ 12,54238 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://raw.githubusercontent.com/gotenberg/art/master/logo.png" alt="Gotenberg Logo" width="150" height="150" />
<h3 align="center">Gotenberg</h3>

A Docker-based API for converting documents to PDF

    <a href="https://hub.docker.com/r/gotenberg/gotenberg"><img alt="Total downloads (gotenberg/gotenberg)" src="https://img.shields.io/docker/pulls/gotenberg/gotenberg"></a>
    <a href="https://github.com/gotenberg/gotenberg/actions/workflows/continuous-integration.yml"><img alt="Continuous Integration" src="https://github.com/gotenberg/gotenberg/actions/workflows/continuous-integration.yml/badge.svg"></a>
    <a href="https://pkg.go.dev/github.com/gotenberg/gotenberg/v8"><img alt="Go Reference" src="https://pkg.go.dev/badge/github.com/gotenberg/gotenberg.svg"></a>






    <a href="https://trendshift.io/repositories/2996"><img src="https://trendshift.io/api/badge/repositories/2996" alt="gotenberg%2Fgotenberg | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>






    <a href="https://gotenberg.dev/docs/getting-started/introduction"><strong>Documentation</strong></a> &#183;
    <a href="https://gotenberg.dev/docs/getting-started/installation#live-demo"><strong>Live Demo</strong></a> &#183;
    <a href="https://github.com/gotenberg/gotenberg/discussions"><strong>Community</strong></a>

Gotenberg is a Docker-based API for converting documents to PDF. Trusted in production by thousands of companies. Also adopted by notable open-source projects.

Send your files via multipart/form-data, get a PDF back. No need to manage Chromium, LibreOffice, or fonts yourself.

Quick Start

docker run --rm -p 3000:3000 gotenberg/gotenberg:8

Convert a URL to PDF:

curl \
  --request POST http://localhost:3000/forms/chromium/convert/url \
  --form url=https://sparksuite.github.io/simple-html-invoice-template/ \
  -o invoice.pdf

Features

  • HTML, URL, Markdown to PDF via Headless Chromium
  • Office documents to PDF via LibreOffice (100+ formats)
  • Merge, split, rotate, flatten PDFs
  • Watermark, stamp, encrypt PDFs
  • PDF/A and PDF/UA compliance
  • Screenshots of URLs and HTML
  • Read/write metadata and bookmarks

See the full documentation.

Contributing

Questions and feedback: GitHub Discussions. Bug reports: GitHub Issues.

Sponsors

If Gotenberg powers your workflow or your business, consider becoming a sponsor.

Historic & GitHub Sponsors

Powered By

Extension points exported contracts — how you extend this code

Module (Interface)
Module is a sort of plugin which adds new functionalities to the application or other modules. type YourModule struct [13 …
pkg/gotenberg/modules.go
Router (Interface)
Router is a module interface that adds routes to the [Api]. [5 implementers]
pkg/modules/api/api.go
Provisioner (Interface)
Provisioner is a module interface for modules which have to be initialized according to flags, environment variables, th [13 …
pkg/gotenberg/modules.go
HealthChecker (Interface)
HealthChecker is a module interface that allows adding health checks to the API. See https://github.com/alexliesenfeld/ [3 …
pkg/modules/api/api.go
Validator (Interface)
Validator is a module interface for modules which have to be validated after provisioning. [12 implementers]
pkg/gotenberg/modules.go
MiddlewareProvider (Interface)
MiddlewareProvider is a module interface that adds middlewares to the [Api]. [2 implementers]
pkg/modules/api/api.go
Debuggable (Interface)
Debuggable is a module interface for modules which want to provide additional debug data. [8 implementers]
pkg/gotenberg/modules.go
HttpError (Interface)
Credits: https://www.joeshaw.org/error-handling-in-go-http-applications. HttpError is an interface allowing to retrieve [2 …
pkg/modules/api/errors.go

Core symbols most depended-on inside this repo

String
called by 269
pkg/modules/api/formdata.go
Error
called by 225
pkg/modules/api/errors.go
Run
called by 141
pkg/gotenberg/supervisor.go
Bool
called by 109
pkg/modules/api/formdata.go
Start
called by 95
pkg/gotenberg/modules.go
Is
called by 87
pkg/modules/api/errors.go
Get
called by 87
pkg/modules/webhook/pool_safe_context.go
Close
called by 85
pkg/modules/chromium/stream.go

Shape

Method 549
Function 488
Struct 115
Interface 25
TypeAlias 6
FuncType 1

Languages

Go100%

Modules by API surface

pkg/modules/pdfengines/routes.go51 symbols
pkg/gotenberg/mocks.go47 symbols
pkg/modules/qpdf/qpdf.go42 symbols
test/integration/scenario/scenario.go41 symbols
pkg/modules/api/formdata.go37 symbols
pkg/gotenberg/supervisor.go36 symbols
pkg/modules/chromium/chromium.go35 symbols
pkg/gotenberg/pdfengine.go31 symbols
pkg/modules/pdfcpu/pdfcpu.go28 symbols
pkg/modules/exiftool/exiftool.go28 symbols
pkg/modules/chromium/pinning_proxy_test.go27 symbols
pkg/modules/api/formdata_test.go27 symbols

Dependencies from manifests, versioned

dario.cat/mergov1.0.2 · 1×
github.com/Azure/go-ansitermv0.0.0-2025010203350 · 1×
github.com/STARRY-S/zipv0.2.3 · 1×
github.com/andybalholm/brotliv1.2.1 · 1×
github.com/aymerick/douceurv0.2.0 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/bodgit/plumbingv1.3.0 · 1×
github.com/bodgit/windowsv1.0.1 · 1×

For agents

$ claude mcp add gotenberg \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact