feat: implement docker infrastructure (US-001)
- Add docker-compose.yml with postgres, redis, api, and web services - Add multi-stage Dockerfile for API (Python 3.11) - Add multi-stage Dockerfile for web (Node.js 20 + nginx) - Add Makefile with common development commands - Add .env.example with all required environment variables - Add placeholder pyproject.toml and package.json for builds - Configure health checks for all services - Setup persistent volumes for postgres, redis, and repos - Run services as non-root users
This commit is contained in:
@@ -1,48 +0,0 @@
|
||||
schema: spec-driven
|
||||
|
||||
# Project context - shown to AI when creating artifacts
|
||||
context: |
|
||||
Tech stack:
|
||||
- Frontend: React 19 + Vite 6 + TypeScript 5
|
||||
- Backend: FastAPI + SQLAlchemy 2.0 (async) + Pydantic v2 + Alembic
|
||||
- Database: PostgreSQL 17
|
||||
- Auth: Authentik OIDC (planned)
|
||||
- Runtime: Docker Compose (Portainer-managed production)
|
||||
- Routing: Traefik subdomain-based
|
||||
- Monorepo: pnpm workspace
|
||||
|
||||
Conventions:
|
||||
- Task IDs follow FN-XXX pattern (e.g., FN-002, FN-003)
|
||||
- Conventional commits with scope: feat(FN-XXX), fix(FN-XXX), docs(FN-XXX)
|
||||
- Backend models in apps/api/app/models/
|
||||
- Backend routers in apps/api/app/routers/
|
||||
- Frontend code in apps/web/src/
|
||||
- Tests: Vitest (frontend), pytest (backend)
|
||||
- Documentation in docs/ folder (architecture.md, mvp-scope.md, etc.)
|
||||
|
||||
Domain knowledge:
|
||||
- Headquarter: hosted workspace + tool-orchestration platform
|
||||
- Users create projects, connect Git repos, spawn containerized tools
|
||||
- Built-in tools: OpenCode and code-server
|
||||
- Each tool instance gets HTTPS subdomain via Traefik
|
||||
- Manifest-driven tool registry with JSON schema
|
||||
- Provider-abstracted Git (GitHub, GitLab, Gitea, Forgejo)
|
||||
- Per-repository SSH key generation (Ed25519)
|
||||
- Encrypted secret storage (Fernet)
|
||||
- Config storage at global/user/project/tool-instance scopes
|
||||
|
||||
# Per-artifact rules
|
||||
rules:
|
||||
proposal:
|
||||
- Always reference the task ID (FN-XXX) in the proposal
|
||||
- Include dependency on previous FN tasks if applicable
|
||||
- Reference docs/mvp-scope.md for scope boundaries
|
||||
design:
|
||||
- Follow existing patterns in apps/api/app/ and apps/web/src/
|
||||
- Reference architecture.md for system design decisions
|
||||
- Include database schema changes if applicable
|
||||
tasks:
|
||||
- Break tasks into implementation steps (Step 1, Step 2, etc.)
|
||||
- Include test verification step
|
||||
- Include documentation update step
|
||||
- Reference specific files that need modification
|
||||
Reference in New Issue
Block a user