12.8k stars · MIT · v8.37.0 (2026-09-11), read from /releases/latest — published at 14:42 on the day of this edition · Track this in Scout
One service that turns HTML, Markdown, Word files and spreadsheets into PDF, using a real browser to lay the page out.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A Docker image that exposes a simple web address you can post files to. Inside it are Chromium (the browser engine that lays out your HTML) and LibreOffice (which reads Word and spreadsheet files), wrapped so you never have to install or manage either one yourself.
What it is good for. Anybody who has to produce a PDF that looks right. Invoices, reports, certificates, contracts and exported documents all end up needing one. Writing the page in HTML and CSS and letting a browser print it gives a far better result than assembling a PDF box by box in code.
This is the missing piece of an "export this page as a PDF" button. If the page is already HTML, the export is a single request to this service.
- It uses a real browser to lay out the page, so your CSS, your web fonts and your page breaks behave.
- One service covers HTML, Markdown, Word, spreadsheets and merging PDFs together.
- It is the same in development and in production, because it is the same container.
- You have to run and watch another service. It is one more thing that can be down.
- Chromium is hungry. Give it about 1 GB of memory, and more if several conversions run at once.
- It must never be exposed to the open internet without protection, because anything that can send it a page can make the server fetch things on its behalf.
# Start it: docker run --rm -p 3000:3000 gotenberg/gotenberg:8 # Convert a live page to PDF: curl --request POST http://localhost:3000/forms/chromium/convert/url \ --form url=https://example.com \ -o out.pdf # Convert a Word file: curl --request POST http://localhost:3000/forms/libreoffice/convert \ --form files=@report.docx \ -o report.pdf
