Stirling PDF is an amazing collection of on-line tools to edit, cut, rotate and edit PDF files. Being able to self-host it is amazing and a must-have.
Stirling-PDF can be installed on bare-metal, but the list of dependencies is so thick and complex that this is one of those situations where a container is highly recomended.
So first of all, as usual, create the dedicated user:
useradd -d /data/daemons/stirlingpdf -m stirlingpdf
and, as user stirlingpdf, create the /data/daemons/stirlingpdf/docker-compose.yml file:
version: '3.3' services: stirling-pdf: image: frooodle/s-pdf:latest ports: - '8089:8080' volumes: - /data/daemons/stirlingpdf/trainingData:/usr/share/tessdata #Required for extra OCR languages - /data/daemons/stirlingpdf/extraConfigs:/configs # - /location/of/customFiles:/customFiles/ # - /location/of/logs:/logs/ environment: - DOCKER_ENABLE_SECURITY=false - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false - LANGS=en_GB - SYSTEM_ROOTURIPATH=/stirlingpdf network: - stirlingpdf-net networks: stirlingpdf-net: {}
Adapt the paths and the port to your needs (8089).
Now pull it:
su - stirlingpdf
podman compose pull
The following NGINX configuration file is the base for Stirling-PDF:
location /stirlingpdf/ { proxy_pass http://127.0.0.1:8089; access_log off; client_max_body_size 200M; proxy_read_timeout 3600; }
Adapt the port to match the one in the docker compose. I also suggest to set a proper client_max_body_size to allow upload/download of big enough files, and also the proxy_read_timeout value.
To start it, and set it up on boot, as usual follow my indications Using Containers on Gentoo, so link the user-containers init script:
ln -s /etc/init.d/user-containers /etc/init.d/user-containers.stirlingpdf
and create the following config file:
USER=stirlingpdf DESCRIPTION="The PDF manager server"
Add the service to the default runlevel and start it now:
rc-update add user-containers.stirlingpdf default rc-service user-containers.stirlingpdf start