Initial import

This commit is contained in:
sirily
2026-03-10 14:03:52 +03:00
commit 6c0ca4e28b
102 changed files with 6598 additions and 0 deletions

13
infra/docker/README.md Normal file
View File

@@ -0,0 +1,13 @@
# infra/docker
Docker build definitions for the single-VPS Compose topology.
## Implemented in this iteration
- Workspace-aware Node 22 images for `web`, `worker`, and `bot`
- Dedicated `migrate` image for schema bootstrap
- `corepack` + `pnpm` based install flow inside containers
- TypeScript build step for each runtime before container startup
## Current limitations
- No production pruning yet
- No `cli` image yet

View File

@@ -0,0 +1,32 @@
FROM node:22-alpine
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
WORKDIR /app
COPY package.json pnpm-workspace.yaml tsconfig.base.json ./
COPY apps/bot/package.json apps/bot/package.json
COPY packages/config/package.json packages/config/package.json
COPY packages/db/package.json packages/db/package.json
COPY packages/domain/package.json packages/domain/package.json
COPY packages/providers/package.json packages/providers/package.json
RUN pnpm install --no-frozen-lockfile
COPY apps/bot apps/bot
COPY packages/config packages/config
COPY packages/db packages/db
COPY packages/domain packages/domain
COPY packages/providers packages/providers
RUN pnpm --filter @nproxy/config build
RUN pnpm --filter @nproxy/domain build
RUN pnpm --filter @nproxy/providers build
RUN pnpm --filter @nproxy/db generate
RUN pnpm --filter @nproxy/db build
RUN pnpm --filter @nproxy/bot build
CMD ["node", "apps/bot/dist/main.js"]

View File

@@ -0,0 +1,32 @@
FROM node:22-alpine
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
WORKDIR /app
COPY package.json pnpm-workspace.yaml tsconfig.base.json ./
COPY apps/cli/package.json apps/cli/package.json
COPY packages/config/package.json packages/config/package.json
COPY packages/db/package.json packages/db/package.json
COPY packages/domain/package.json packages/domain/package.json
COPY packages/providers/package.json packages/providers/package.json
RUN pnpm install --no-frozen-lockfile
COPY apps/cli apps/cli
COPY packages/config packages/config
COPY packages/db packages/db
COPY packages/domain packages/domain
COPY packages/providers packages/providers
RUN pnpm --filter @nproxy/config build
RUN pnpm --filter @nproxy/domain build
RUN pnpm --filter @nproxy/providers build
RUN pnpm --filter @nproxy/db generate
RUN pnpm --filter @nproxy/db build
RUN pnpm --filter @nproxy/cli build
CMD ["node", "apps/cli/dist/main.js"]

View File

@@ -0,0 +1,26 @@
FROM node:22-alpine
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
WORKDIR /app
COPY package.json pnpm-workspace.yaml tsconfig.base.json ./
COPY packages/db/package.json packages/db/package.json
COPY packages/domain/package.json packages/domain/package.json
COPY packages/providers/package.json packages/providers/package.json
RUN pnpm install --no-frozen-lockfile
COPY packages/db packages/db
COPY packages/domain packages/domain
COPY packages/providers packages/providers
RUN pnpm --filter @nproxy/domain build
RUN pnpm --filter @nproxy/providers build
RUN pnpm --filter @nproxy/db generate
RUN pnpm --filter @nproxy/db build
CMD ["sh", "-lc", "pnpm --filter @nproxy/db migrate:deploy && node packages/db/dist/bootstrap-main.js"]

View File

@@ -0,0 +1,34 @@
FROM node:22-alpine
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
WORKDIR /app
COPY package.json pnpm-workspace.yaml tsconfig.base.json ./
COPY apps/web/package.json apps/web/package.json
COPY packages/config/package.json packages/config/package.json
COPY packages/db/package.json packages/db/package.json
COPY packages/domain/package.json packages/domain/package.json
COPY packages/providers/package.json packages/providers/package.json
RUN pnpm install --no-frozen-lockfile
COPY apps/web apps/web
COPY packages/config packages/config
COPY packages/db packages/db
COPY packages/domain packages/domain
COPY packages/providers packages/providers
RUN pnpm --filter @nproxy/config build
RUN pnpm --filter @nproxy/domain build
RUN pnpm --filter @nproxy/providers build
RUN pnpm --filter @nproxy/db generate
RUN pnpm --filter @nproxy/db build
RUN pnpm --filter @nproxy/web build
EXPOSE 3000
CMD ["node", "apps/web/dist/main.js"]

View File

@@ -0,0 +1,32 @@
FROM node:22-alpine
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
WORKDIR /app
COPY package.json pnpm-workspace.yaml tsconfig.base.json ./
COPY apps/worker/package.json apps/worker/package.json
COPY packages/config/package.json packages/config/package.json
COPY packages/db/package.json packages/db/package.json
COPY packages/domain/package.json packages/domain/package.json
COPY packages/providers/package.json packages/providers/package.json
RUN pnpm install --no-frozen-lockfile
COPY apps/worker apps/worker
COPY packages/config packages/config
COPY packages/db packages/db
COPY packages/domain packages/domain
COPY packages/providers packages/providers
RUN pnpm --filter @nproxy/config build
RUN pnpm --filter @nproxy/domain build
RUN pnpm --filter @nproxy/providers build
RUN pnpm --filter @nproxy/db generate
RUN pnpm --filter @nproxy/db build
RUN pnpm --filter @nproxy/worker build
CMD ["node", "apps/worker/dist/main.js"]