YAS/apps/web/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

21 lines
595 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/web/ ./apps/web/
RUN pnpm install --frozen-lockfile --filter @yetanother/web
FROM deps AS builder
WORKDIR /app
RUN pnpm build --filter @yetanother/web
FROM nginx:alpine AS runner
COPY --from=builder /app/apps/web/dist /usr/share/nginx/html
COPY apps/web/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]