# 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: ```bash cp -n .env.sample .env ``` 2. Adjust the values in `.env` if needed: ```dotenv TZ=Africa/Johannesburg BENTOPDF_PORT=8080 BENTOPDF_MEM_LIMIT=256m DOCKERLOGGING_MAXFILE=3 DOCKERLOGGING_MAXSIZE=10m ``` 3. Deploy with `make`: ```bash make deploy-bento-pdf ``` Manual equivalent: ```bash ./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://:8080`: ```bash 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.` to this host on port 8080. After changing the port, update `docker-compose-files/caddy/Caddyfile_template` and run `make reload-caddy`. ## Useful Commands ```bash # 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 ```