forked from unom/punktfunk
Port 3000 collides with half the dev-server ecosystem; 47992 sits next to the mgmt API (47990) in the punktfunk port family. Updates the run scripts, systemd/scheduled-task units, Dockerfile, Windows firewall rule + installer, packaging, and every doc that referenced :3000. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
1.1 KiB
Docker
30 lines
1.1 KiB
Docker
# punktfunk management console — TanStack Start built with Bun, served by the Nitro `bun`
|
|
# preset bundle. Build context is the REPO ROOT (orval generates the API client from
|
|
# api/openapi.json, referenced as ../api/openapi.json from web/):
|
|
#
|
|
# docker build -f web/Dockerfile -t punktfunk-web .
|
|
#
|
|
# Runtime: PORT (default 47992) and PUNKTFUNK_MGMT_URL (upstream management API the Nitro
|
|
# server proxies /api to; see web/server/routes).
|
|
FROM oven/bun:1 AS build
|
|
WORKDIR /repo/web
|
|
|
|
# Dependency layer: lockfile only, so source edits don't re-install.
|
|
# --ignore-scripts: the root `prepare` script runs codegen, which needs sources that
|
|
# aren't copied yet — `bun run build` regenerates everything below.
|
|
COPY web/package.json web/bun.lock ./
|
|
RUN bun install --frozen-lockfile --ignore-scripts
|
|
|
|
COPY api/openapi.json /repo/api/openapi.json
|
|
COPY web/ ./
|
|
# prebuild runs orval (openapi → src/api/gen); the paraglide vite plugin compiles i18n.
|
|
RUN bun run build
|
|
|
|
FROM oven/bun:1-slim
|
|
WORKDIR /app
|
|
COPY --from=build /repo/web/.output ./.output
|
|
USER bun
|
|
ENV PORT=47992
|
|
EXPOSE 47992
|
|
CMD ["bun", "run", ".output/server/index.mjs"]
|