diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..03b842a --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,20 @@ +FROM node:22-bookworm-slim AS build +WORKDIR /app +RUN corepack enable +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile +COPY . . +RUN pnpm build + +FROM node:22-bookworm-slim +WORKDIR /app +RUN corepack enable +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile --prod +COPY --from=build /app/dist ./dist +COPY --from=build /app/server/db/migrations ./server/db/migrations +COPY --from=build /app/templates ./templates +ENV SU_DB_PATH=/data/system-update.db +ENV SU_REPORTS_DIR=/reports +EXPOSE 8787 +CMD ["node", "dist/index.js"] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..dd505b6 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,17 @@ +services: + system-update: + build: + context: .. + dockerfile: docker/Dockerfile + ports: + - "8787:8787" + environment: + SU_MASTER_KEY: ${SU_MASTER_KEY:?définir SU_MASTER_KEY} + volumes: + - su-data:/data + - su-reports:/reports + restart: unless-stopped + +volumes: + su-data: + su-reports: diff --git a/tsup.config.ts b/tsup.config.ts new file mode 100644 index 0000000..55989cb --- /dev/null +++ b/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["server/index.ts"], + outDir: "dist", + format: ["esm"], + platform: "node", + target: "node22", + bundle: true, + noExternal: [/^(?!better-sqlite3|ssh2|cpu-features).*/], + external: ["better-sqlite3", "ssh2", "cpu-features"], +});