Bureaublad is a flexible dashboard application that aggregates information from multiple open-source components into a unified interface. Users can access essential tools and data from a single location without needing to switch between different applications.
Key Features:
- π Stateless Design - All data remains at the source
- π Multiple Integrations - Connects to various productivity tools
- π Secure Authentication - OpenID Connect with Token Exchange support
- π± Modern Interface - React-based responsive frontend
Bureaublad follows a modern microservices architecture:
- Frontend: React SPA (Single Page Application)
- Backend: FastAPI REST API
- Authentication: OpenID Connect with Token Exchange support
| Tool | Protocol | Features |
|---|---|---|
| Calendar & Tasks | CalDav | Calendar events, task management |
| Docs | Docs API | Document management |
| Nextcloud/OwnCloud | OCS API | Activity feeds |
| Drive | Drive API | File storage and sharing |
| Meet | Meet API | Video conferencing |
| AI Assistant | OpenAI API | AI-powered endpoint |
| Conversations | Conversations API | AI-powered assistance |
- Matrix Chat via Synapse
- Docker installed on your system
-
Clone the repository
git clone https://github.com/minbzk/bureaublad.git cd bureaublad -
Configure environment
cp backend/example.env backend/.env
-
Start the application
docker compose build docker compose up
Once started, you can access the following services:
| Service | URL | Description |
|---|---|---|
| Frontend | http://bureaublad.localhost | Main application interface |
| Backend API | http://bureaublad.localhost/api/ | REST API documentation |
| Keycloak Admin | http://keycloak.localhost | Identity provider admin console |
| User Account | http://keycloak.localhost/realms/mijnbureau/account/ | User account management |
| Docs mocks | http://docs.localhost/mockserver/dashboard | docs mocks |
| Drive mocks | http://drive.localhost/mockserver/dashboard | drive mocks |
| Grist mocks | http://grist.localhost/mockserver/dashboard | grist mocks |
| Meet mocks | http://meet.localhost/mockserver/dashboard | meet mocks |
| Nextcloud mocks | http://nextcloud.localhost/mockserver/dashboard | nextcloud mocks |
| OpenAI mocks | http://ai.localhost/mockserver/dashboard | AI mocks |
| Conversation mocks | http://conversation.localhost/mockserver/dashboard | conversation mocks |
Username: admin
Password: adminjane@mijnbureau.nl / jane
john@mijnbureau.nl / john- Frontend: React with TypeScript, modern hooks and functional components
- Backend: FastAPI with Python 3.13, Pydantic v2 for data validation
- Authentication: Keycloak with OpenID Connect
- Containerization: Docker with multi-service orchestration
bureaublad/
βββ backend/ # FastAPI application
βββ frontend/ # React application
|-- keycloak/ # Keycloak config
|-- mocks/ # Mocks of integrated tools
|-- scripts/ # Helper scripts
βββ compose.yaml # Docker orchestration
βββ README.md # This file
Important: Your identity provider must support Token Exchange (RFC 8693) for proper authentication flow. Please verify compatibility before deployment.
- π Advanced search capabilities across all integrated tools
- βοΈ User-customizable dashboard layouts and widgets
- π Additional third-party integrations
We welcome contributions! Please see our contributing guidelines for more information.
This project is licensed under the terms specified in the LICENSE file.