No description
  • Python 79.1%
  • JavaScript 14.4%
  • CSS 5.1%
  • Shell 0.8%
  • Dockerfile 0.6%
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-09 11:46:06 +02:00
.github ⬆️(deps) Bump the allgithubactions group with 5 updates (#237) 2026-04-01 11:41:51 +02:00
.vscode (backend) add pytest 2025-11-05 08:13:01 +01:00
backend (frontend) add admin portal (#239) 2026-04-09 11:46:06 +02:00
frontend (frontend) add admin portal (#239) 2026-04-09 11:46:06 +02:00
keycloak/import (backend) setup token exchange 2025-12-02 09:52:48 +01:00
mocks (frontend) add favorite (#235) 2026-04-01 11:07:43 +02:00
scripts (backend) add grist orgs api endpoint 2025-10-23 13:53:22 +02:00
.editorconfig 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00
.gitignore (backend) add pytest 2025-11-05 08:13:01 +01:00
.gitlint 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00
.pre-commit-config.yaml 🌐(backend) add i18n system 2025-11-17 11:02:10 +01:00
.prettierignore (backend) add pytest 2025-11-05 08:13:01 +01:00
.prettierrc.json 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00
CODE_OF_CONDUCT.md 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00
compose.yaml ⬆️(deps) Bump the alldockercompose group with 3 updates (#236) 2026-04-01 11:41:34 +02:00
CONTRIBUTING.md 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00
crowdin.yaml (frontend) add i18n to frontend (#144) 2026-01-06 10:21:36 +01:00
LICENSE Add initial setup 2025-03-04 16:10:23 +01:00
README.md (other) add treafik reverse proxy 2025-10-15 17:36:45 +02:00
SECURITY.md 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00
sonar-project.properties 🎨(ci) update formatting 2025-10-07 23:14:57 +02:00

Bureaublad

GitHub Actions Workflow Status GitHub Actions Workflow Status Coverage Quality Gate Status GitHub License

Overview

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

Architecture

Bureaublad follows a modern microservices architecture:

  • Frontend: React SPA (Single Page Application)
  • Backend: FastAPI REST API
  • Authentication: OpenID Connect with Token Exchange support

Integrations

Currently Supported

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

Planned Integrations

Quick Start

Prerequisites

  • Docker installed on your system

Setup

  1. Clone the repository

    git clone https://github.com/minbzk/bureaublad.git
    cd bureaublad
    
  2. Configure environment

    cp backend/example.env backend/.env
    
  3. Start the application

    docker compose build
    docker compose up
    

Access the Application

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

Default Credentials

Admin Access (Keycloak Master Realm)

Username: admin
Password: admin

User Accounts (MijnBureau Realm)

jane@mijnbureau.nl / jane
john@mijnbureau.nl / john

Development

Technology Stack

  • 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

Project Structure

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

Requirements

Important: Your identity provider must support Token Exchange (RFC 8693) for proper authentication flow. Please verify compatibility before deployment.

Future Roadmap

  • 🔍 Advanced search capabilities across all integrated tools
  • ⚙️ User-customizable dashboard layouts and widgets
  • 🔗 Additional third-party integrations

Contributing

We welcome contributions! Please see our contributing guidelines for more information.

License

This project is licensed under the terms specified in the LICENSE file.