Add Dockerfile and compose setup for self-hosting

Multi-stage build: Node builds the static PWA, nginx serves it with an SPA
fallback, long-lived caching for hashed assets, no-cache for the app shell
and service worker, and the correct type for the web manifest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VsorPV3JeJRoZ1mD1pdvtL
This commit is contained in:
agent 2026-09-26 22:33:08 +00:00
parent 08a530c78f
commit 23d0c29e0b
5 changed files with 72 additions and 0 deletions

8
compose.yaml Normal file
View file

@ -0,0 +1,8 @@
services:
papure:
build: .
image: papure
restart: unless-stopped
# Put an HTTPS reverse proxy in front: the PWA install and service worker need HTTPS.
ports:
- "${PAPURE_PORT:-8080}:80"