YAS/apps/api/Dockerfile
YetAnotherSuite Dev 2a2b2e5398 feat: Phase 6 platform — public API, desktop app, Docker deployment, analytics
Phase 6.1: Public API & Webhooks
- OpenAPI/Swagger docs at /docs (from Phase 1)
- Webhook subscription CRUD with secret-based verification
- Webhook delivery with event type headers
- Test webhook endpoint for debugging

Phase 6.2: Desktop App (Tauri)
- Tauri v2 project skeleton with Rust backend
- Window configuration (1200x800, min 800x600)
- Shell and notification plugins configured
- Desktop build documentation

Phase 6.3: Docker Deployment
- Multi-service Docker Compose (PostgreSQL 16, Redis 7, Meilisearch)
- Production Dockerfiles for API and web (multi-stage builds)
- Nginx config with API proxy and WebSocket upgrade
- Health checks on all services

Phase 6.4: Analytics Dashboard
- Analytics overview endpoint (node counts, completion rates)
- Activity tracking feed (30-day history)
- Weekly activity metrics
2026-07-20 22:30:12 +02:00

25 lines
719 B
Docker

FROM node:22-alpine AS base
RUN corepack enable && corepack prepare pnpm@latest --activate
FROM base AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
COPY tooling/ ./tooling/
COPY packages/ ./packages/
COPY apps/api/ ./apps/api/
RUN pnpm install --frozen-lockfile --filter @yetanother/api
FROM deps AS builder
WORKDIR /app
RUN pnpm --filter @yetanother/db exec prisma generate
RUN pnpm build --filter @yetanother/api
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/apps/api/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/packages/db/prisma ./prisma
EXPOSE 4000
CMD ["node", "dist/main.js"]