feat(deploy): add Docker image, static server, and CI workflows

One build artifact serves both a self-hosted subpath deploy and GitHub
Pages. CI runs the tests, typechecks, builds, and smoke-tests the image.

server.ts's traversal guard uses a separator-aware check
(resolved === root || resolved.startsWith(root + path.sep)) instead of
a bare startsWith(root), which would let a request resolving to
"/app/dist-evil/x" pass a check against root "/app/dist".
This commit is contained in:
Lucas Winther committed 2026-09-01 21:33:45 +02:00
1 parent 4478c46a43
commit 6eb77c8733
7 files changed
+210 -3

No files matched your search

+3 -1
View File
@@ -6,7 +6,9 @@
"scripts": {
"dev": "bun --hot src/index.ts",
"start": "NODE_ENV=production bun src/index.ts",
"build": "bun run build.ts"
"build": "bun run build.ts",
"serve": "bun server.ts",
"test": "bun test"
},
"dependencies": {
"@radix-ui/react-label": "^2.1.7",