x
Skip to main content

Docker Installation for Stirling PDF

Run Stirling PDF in Docker for easy self-hosting, automatic updates, and flexible deployment.

Quick Start

docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v ./stirling-data:/configs \
stirlingtools/stirling-pdf:latest

Then open http://localhost:8080 in your browser!

Choosing Your Version

VersionTagWhat's IncludedBest For
StandardlatestAll PDF featuresMost users, balanced features & size
Fatlatest-fatEverything + extra fonts & toolsHighest quality conversions, full format support
Ultra-Litelatest-ultra-liteCore features onlyLimited resources, minimal size

Most users should use latest - it has everything you need.

When to use each version:

Standard (latest) - You want all PDF features, have normal server specs, or you're not sure which to pick.

Fat (latest-fat) - You need the highest quality conversions with full font support, every conversion format, and all optional tools. Disk space isn't a concern.

Ultra-Lite (latest-ultra-lite) - Running on very limited hardware (Raspberry Pi, low-end VPS), want fastest startup, or only need basic PDF operations.

To use a different version, just change the tag:

docker run -d stirlingtools/stirling-pdf:latest-ultra-lite

Full Setup (With All Features)

Want OCR, custom settings, and logging? Add more volumes:

docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v ./stirling-data/tessdata:/usr/share/tessdata \
-v ./stirling-data/configs:/configs \
-v ./stirling-data/logs:/logs \
-v ./stirling-data/pipeline:/pipeline \
-e SECURITY_ENABLELOGIN=false \
-e LANGS=en_GB \
stirlingtools/stirling-pdf:latest

What each volume does:

  • /configs - Your settings and database
  • /usr/share/tessdata - OCR language files
  • /logs - Application logs
  • /pipeline - Automation configurations

Updating Stirling PDF

docker stop stirling-pdf
docker rm stirling-pdf
docker pull stirlingtools/stirling-pdf:latest
# Then run your original docker run command

Your data is safe in the volumes and will persist across updates.

Common Configurations

Enable User Authentication

environment:
- SECURITY_ENABLELOGIN=true

Change Interface Language

environment:
- LANGS=es_ES # Spanish, or en_GB, fr_FR, de_DE, etc.

Custom Port

ports:
- '9000:8080' # Access at http://localhost:9000

Next Steps

Troubleshooting

Can't access at localhost:8080?

  • Check if port 8080 is already in use
  • Try a different port: -p 9000:8080
  • Check firewall settings

Permission errors with volumes?

  • Make sure the directories exist
  • Check folder permissions: chmod -R 755 ./stirling-data

Container keeps restarting?

  • Check logs: docker logs stirling-pdf
  • Check system resources (RAM, disk space)
  • Try ultra-lite version for limited hardware