Development
How to develop Deck Publisher
Clone superbonfire-lab/deck-publisher.
Use pnpm. You need Node 22.13 or later and pnpm 9 or later.
Install LibreOffice, pdftoppm, ffmpeg, and img2webp, and make sure they are on your PATH.
Start the web UI locally
- Run
pnpm install. - Copy
.env.exampleto.envif you will publish to R2. - Run
pnpm web. - Open
http://127.0.0.1:5178.
The API listens on port 5177.
CLI
pnpm deck doctor
pnpm deck inspect ./deck.pptx
pnpm deck convert ./deck.pptx --out ./out/my-deck --fonts-dir ./fonts --force
pnpm deck publish ./out/my-deck/site --prefix sbf/projects/my-deckUse --yes in CI to skip prompts.
Use --no-video or --no-animate to skip heavy steps.
Layout
packages/deck-engine— convert and publish.packages/deck-viewer— cinema template.packages/deck-cli— CLI.apps/web— local UI and API.
Coolify
Use the Dockerfile target app. The port is 5177. The health check is GET /api/health.
Put a volume on /app/apps/web/data.
Raise the proxy timeout to 15–30 minutes. Raise the request body size limit to about 512 MB.
Give the host 4 GB RAM. Use 8 GB when you encode video.
Set the R2 keys in the Coolify UI when publishing is required. Do not copy local job data into the image.
Current deployment
The app is deployed to https://deck-pub.superbonfire.tech through Coolify on our Tencent Cloud VPS.