homelab-blueprint/docker-compose-files/bento-pdf/README.md
Brian Pooe 1815beadf4 refactor: restructure docs, sync stacks with Caddyfile, harden compose templates
- Add compose stacks for apps already proxied by Caddy: bento-pdf,
  it-tools, paperless-ngx, and beszel-hub (with Makefile targets)
- Remove the unused Vault stack and the drawio Caddyfile block
- Fix Caddyfile gramps upstream to port 80 to match the compose file
- Bring immich and gramps-web up to the shared template pattern
  (no-new-privileges, log rotation, memory limits, healthchecks)
- Single-quote vaultwarden SSO_AUDIENCE_TRUSTED so regex values like
  ^\d{18}$ render as valid YAML
- Move root docs into kebab-case topic folders, rebuild the docs index
  to cover every doc, and fix all broken links
2026-07-03 17:45:16 +02:00

1.5 KiB

BentoPDF

Privacy-first PDF toolkit (merge, split, compress, convert, sign). All processing happens client-side in the browser — the container only serves static assets, so no document data ever touches the server.

Persistent Data

None. The container is stateless; nothing needs backing up.

Installation

  1. Create .env if it does not exist:

    cp -n .env.sample .env
    
  2. Adjust the values in .env if needed:

    TZ=Africa/Johannesburg
    BENTOPDF_PORT=8080
    BENTOPDF_MEM_LIMIT=256m
    
    DOCKERLOGGING_MAXFILE=3
    DOCKERLOGGING_MAXSIZE=10m
    
  3. Deploy with make:

    make deploy-bento-pdf
    

    Manual equivalent:

    ./substitute_env.sh docker-compose-files/bento-pdf/template.yaml docker-compose.bento-pdf.yml .env
    docker compose -f docker-compose.bento-pdf.yml config --quiet
    docker compose -f docker-compose.bento-pdf.yml up -d
    
  4. Verify the container and open http://<host-ip>:8080:

    docker compose -f docker-compose.bento-pdf.yml ps
    docker compose -f docker-compose.bento-pdf.yml logs --tail=100 bentopdf
    

Reverse Proxy

The Caddyfile proxies bento-pdf.<domain> to this host on port 8080. After changing the port, update docker-compose-files/caddy/Caddyfile_template and run make reload-caddy.

Useful Commands

# Tail logs
docker compose -f docker-compose.bento-pdf.yml logs -f bentopdf

# Recreate after an image update
docker compose -f docker-compose.bento-pdf.yml pull
docker compose -f docker-compose.bento-pdf.yml up -d