PRD 08: Admin Navigation, Analytics, Hetzner Deployment, and Operations
Problem Statement
The legacy platform includes broad navigation: home, companions, apps, agents, spaces, boards, controls, favorites, insights, external users, profile settings, integrations, plans, agentic apps, and threads. It also has old deployment material across Helm, Docker, Azure pipelines, and multiple services.
The new platform must preserve the product navigation and become operable on Hetzner with clear service boundaries, health checks, backup, restore, logs, and deployment runbooks.
Solution
Create an admin and operations layer that supports:
- complete legacy navigation coverage;
- dashboards, insights, favorites, recent/popular items;
- admin settings for org, profile, external users, integrations, billing, tools;
- deployment architecture for Hetzner;
- containerized services;
- database, object storage, queues, and optional vector/search services;
- backup and restore;
- logs, metrics, alerts, and health checks.
Legacy Source References
zweistein-reference/admin/src/pages_chat/zweistein-reference/admin/src/pages/plans/zweistein-reference/admin/src/pages/agentic-apps/zweistein-reference/server/src/dashboard/studio-api-reference/src/modules/studio/modules/statistics/picasso-fe-reference/charts/picasso-fe-reference/devops/docker/zweistein-reference/helm/zweistein-reference/admin/Dockerfilezweistein-reference/server/Dockerfilezweistein-reference/python_server/*/devops/docker/studio-api-reference/devops/docker/studio-api-reference/devops/charts/
User Stories
- As a user, I want a home dashboard, so that I can quickly access companions, apps, agents, spaces, and boards.
- As a user, I want conversations listed, so that I can resume previous work.
- As a creator, I want boards, companions, collections, favorites, and recent items, so that work is easy to find.
- As an agent builder, I want my agents, org agents, official agents, and internal agents organized clearly.
- As an admin, I want integrations, external users, billing, plans, and profile settings in predictable places.
- As a creator, I want insights and analytics, so that I can understand product usage.
- As an operator, I want every service containerized, so that deployment to Hetzner is repeatable.
- As an operator, I want health checks, so that broken services are detected quickly.
- As an operator, I want backup and restore, so that data can be recovered after failure.
- As an operator, I want logs and metrics, so that production issues can be investigated.
- As an operator, I want staging before production, so that releases can be verified safely.
- As a workspace owner, I want production data protected, so that customer information is safe.
Functional Requirements
Admin Navigation
Preserve or represent these navigation areas:
- Home dashboard.
- Conversations.
- Agents.
- Bots/companions.
- Boards.
- Collections.
- Spaces/knowledge base.
- Controls/widgets.
- Favorites.
- Insights.
- External users and groups.
- Profile settings.
- Integrations.
- Plans and billing.
- Agentic apps.
- Agent threads.
- Blinkbot/assistant.
Dashboards and Analytics
- Show recently used and popular items.
- Show traffic, active users, completion, date range, and flow-level metrics.
- Show billing/usage status where relevant.
- Show ingestion and agent execution statuses.
Hetzner Services
Initial service candidates:
- Web/admin frontend.
- API backend.
- Runtime/public companion service.
- AI/query service.
- Ingestion worker.
- Queue/worker service.
- Database.
- Object storage.
- Cache/Redis.
- Optional vector/search service.
- Reverse proxy and TLS.
Deployment
- Use containerized services.
- Support staging and production.
- Use environment files or secret manager outside git.
- Provide health endpoints for every service.
- Provide migration command/runbook.
- Provide logs and restart policy.
- Provide domain/TLS setup.
Backups and Restore
- PostgreSQL backups.
- Object storage backups.
- Environment/secrets backup procedure.
- Restore rehearsal in staging.
- Retention policy.
- Disaster recovery runbook.
Non-Functional Requirements
- No
.envcommits. - No deployment process that depends on a developer laptop.
- No production deploy without health checks.
- No single unbacked storage path for user media.
- Logs must include request IDs.
- Public services must sit behind TLS.
Implementation Decisions
- Start with Docker Compose or equivalent simple Hetzner orchestration before Kubernetes unless scale demands it.
- Keep legacy Helm charts as reference, not a direct requirement.
- Prefer Postgres as the primary DB.
- Prefer S3-compatible object storage if practical for Hetzner portability.
- Add a deployment PRD/runbook before production implementation.
Testing Decisions
- Smoke-test every service health endpoint.
- Test database migrations in staging.
- Test backup and restore before production.
- Browser-test main navigation and admin surfaces.
- Load-test public runtime and AI/query endpoints.
Out of Scope
- Production cutover.
- Real customer data migration.
- Replacing every old pipeline with Kubernetes before a simpler deployment has been validated.