SBF Innovation Lab Wiki
ApplicationsDeck Publisher

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

  1. Run pnpm install.
  2. Copy .env.example to .env if you will publish to R2.
  3. Run pnpm web.
  4. 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-deck

Use --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.

On this page