- Backend: app_settings table + users.is_admin flag (schema + migrate) - POST /api/setup creates admin user, first workspace and marks installed (transactional, single-use, rate-limited); GET /api/setup/status - Guard middleware: API answers 503 { setupRequired: true } until installed - Frontend: /setup wizard (welcome, admin account, workspace), router guard redirects to installer when uninstalled, API interceptor handles 503 - Docs: installer covered in README, SETUP, HOSTING and ROADMAP
- Add README with features, quick-start (local + Docker) and docs index - Add MIT LICENSE, root .gitignore and .env.example - Add docker-compose.yml (postgres + backend + frontend) - Add root package.json with install:all/dev helpers - Add Gitea CI workflow (backend syntax check, frontend build)