- 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
- Vue 3 + Vite + Pinia + Vue Router, Axios client with JWT interceptor - Auth views (login/register), dashboard with workspace switcher and search - Nested PageTree sidebar, TipTap rich-text editor with debounced save - Live collaboration via Socket.IO (remote updates, presence avatars, typing) - Comments thread per page, invite-members card, member list - Theme store (light/dark/system) persisted, CSS variables, ThemeToggle - Multi-stage Dockerfile (build + nginx) for hosting