Introduce an outbound Python host agent, Debian installer, durable remote operations, immutable game-file libraries, host-aware deployments and ports, and occupancy-safe campaigns and draining. Native hosts do not require Komodo. Add administrator, operator and viewer accounts, protected management routes, secure sessions, password recovery, audit history and separate telemetry tokens. Document first-admin setup, reporter migration and live-host acceptance checks. Validation: 1,343 TypeScript tests and 39 agent tests passed, along with type checking, the production build, compiled SSR/API smoke tests and administrator recovery. Real Debian/Docker T5/T6 acceptance remains unrun.
38 lines
976 B
Docker
38 lines
976 B
Docker
# syntax=docker/dockerfile:1.7
|
|
FROM node:22-alpine AS build
|
|
|
|
# native builds for better-sqlite3
|
|
RUN apk add --no-cache python3 make g++ sqlite
|
|
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json* ./
|
|
RUN --mount=type=cache,target=/root/.npm \
|
|
npm install --include=dev
|
|
|
|
COPY . .
|
|
RUN npm run build \
|
|
&& npm prune --omit=dev
|
|
|
|
# ---- runtime ----
|
|
FROM node:22-alpine
|
|
|
|
RUN apk add --no-cache sqlite tini rsync
|
|
|
|
WORKDIR /app
|
|
COPY --from=build /app/build ./build
|
|
COPY --from=build /app/node_modules ./node_modules
|
|
COPY --from=build /app/package.json ./package.json
|
|
COPY --from=build /app/src/lib/server/db/schema.sql ./build/schema.sql
|
|
COPY scripts/reset-admin.mjs ./scripts/reset-admin.mjs
|
|
COPY src/lib/server/auth/passwords.js ./src/lib/server/auth/passwords.js
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=3000
|
|
ENV HOST=0.0.0.0
|
|
ENV BODY_SIZE_LIMIT=Infinity
|
|
EXPOSE 3000
|
|
|
|
ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"]
|