577b052c05
User Profile (US-004): - Add authenticated profile endpoints (GET/PUT /users/me) - Add avatar upload with file validation (PNG/JPEG, max 2MB) - Create frontend profile page with edit form and avatar upload - Update app shell to link to profile page OAuth/Traefik Integration: - Externalize all Authentik URLs to environment variables - Add domain configuration (API_DOMAIN, WEB_DOMAIN, AUTHENTIK_DOMAIN) - Create docker-compose.traefik.yml for reverse proxy deployment - Update OAuth redirect/callback URLs to use configured domains - Add VITE_APP_URL for frontend public URL configuration Quality gates: pytest (50 passed), ruff, mypy, npm test (12 passed), typecheck, lint, build
1.4 KiB
1.4 KiB
1. Externalize Authentik and domain configuration
- 1.1 Update
apps/api/src/config.pyto read all Authentik URLs from environment variables with no hardcoded defaults. - 1.2 Add
API_PUBLIC_URL,WEB_PUBLIC_URL, and related domain env vars to config.py. - 1.3 Update
apps/api/src/api/auth.pyto construct OAuth redirect/callback URLs from configured domains. - 1.4 Update
.env.examplewith all new environment variables for Authentik and domain configuration.
2. Create Traefik deployment compose file
- 2.1 Create
docker-compose.traefik.ymlwith all services configured for Traefik reverse proxy. - 2.2 Add Traefik Docker labels to all services with configurable domain-based routing rules.
- 2.3 Ensure no ports are exposed directly in traefik mode (all through Traefik).
- 2.4 Add
PROXY_WEB_NAMEand other traefik-specific env vars to.env.example.
3. Frontend configuration
- 3.1 Update frontend to support configurable public URL for OAuth redirect.
- 3.2 Update
apps/web/.env.exampleor relevant config withVITE_APP_URL.
4. Verification and testing
- 4.1 Run backend quality gates (
pytest,ruff,mypy). - 4.2 Run frontend quality gates (
npm test,typecheck,lint,build). - 4.3 Validate
docker-compose configworks for both compose files. - 4.4 Update this tasks file with completed checkboxes.