BentoPDF
PDF toolkit that runs in your browser, so files never leave your machine. Merge, split, compress, convert, sign and edit.
Documents / Tools
File converter for over a thousand formats, covering images, documents, audio, video and ebooks.
It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.
In Portainer, head to Settings --> App Templates, paste this in as the URL and save.
https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json http://<your-server>:3000 in a browser.Save this as compose.yml, then run docker compose up -d next to it.
services:
convertx:
image: ghcr.io/c4illin/convertx:latest
container_name: convertx
restart: unless-stopped
ports:
- 3000:3000
environment:
HTTP_ALLOWED: "true"
AUTO_DELETE_EVERY_N_HOURS: "24"
TZ: UTC
volumes:
- convertx-data:/app/data
volumes:
convertx-data:
Or skip the file and start it with one command.
docker run -d \
--name convertx \
--restart unless-stopped \
-p 3000:3000 \
-e HTTP_ALLOWED=true \
-e AUTO_DELETE_EVERY_N_HOURS=24 \
-e TZ=UTC \
-v convertx-data:/app/data \
ghcr.io/c4illin/convertx:latest Open http://<your-host>:3000 and create your account straight away, since the first visitor gets it and sign-ups close after that. Uploads and the database live in the /app/data volume. It's a big image (LibreOffice, TeX and Calibre are all in there), so the first pull takes a while. You'll be logged out whenever the container restarts, unless you add a JWT_SECRET env var holding a long random string (openssl rand -hex 32). Docs: github.com/C4illin/ConvertX
What the Portainer form asks for. With compose they go in the environment block instead.
| Variable | What it's for | Default |
|---|---|---|
HTTP_ALLOWED | Opening it over plain http? ConvertX only sends its login cookie over HTTPS unless this is on. Switch it off once it's behind a reverse proxy with HTTPS. One of true, false. | true |
AUTO_DELETE_EVERY_N_HOURS | Delete converted files after (hours) | 24 |
TZ | Timezone Like Europe/London | UTC |
Change the left side of a port if it clashes with something else on your server. The volumes are where the data lives, so keep them when you update.
| On your server | In the container |
|---|---|
3000 | 3000/tcp |
convertx-data | /app/data |