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:
2026-05-16 17:44:39 +00:00
parent 212d072417
commit e7819bfc82
246 changed files with 3625 additions and 17311 deletions
-48
View File
@@ -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