Switchboard
Concept Phase v0.0.0

Switchboard

Identity & Access Management (IAM) Dashboard for Homelabs & Self-Hosted Environments


Identity & Access Management (IAM) Dashboard for Homelabs & Self-Hosted Environments

Switchboard connects your identity provider (LDAP or Local Database) with self-hosted services (Plex, Overseerr, Wireguard). It provides administrators with Role-Based Access Control (RBAC) and users with a portal to manage credentials and service access.


Core Features

Security

  • Containerized Architecture: Runs within Docker with non-root user enforcement.
  • Configuration Validation: Environment variable validation on boot (via Zod/Joi).
  • External Database: Requires PostgreSQL for data storage.
  • Encryption: LDAP bind passwords and plugin API keys are encrypted at rest using AES-256-GCM.
  • Audit Logging: Login attempts, password resets, and permission changes are logged in JSON format.
  • Rate Limiting: Defenses against brute-force attacks on authentication endpoints.

Identity & Access Management

  • Identity Sources: Connect to an LDAP/Active Directory server or use the Local Database provider.
  • LDAP Synchronization & Write-Back: Read-only user syncs or LDAPS/StartTLS to allow users to reset LDAP passwords.
  • Role-Based Access Control (RBAC): Map users to roles and assign plugin access based on permission schemas.

User Portal

  • Onboarding: Setup workflows for added users.
  • Profile Management: Users update personal information and reset passwords via tokenized email links.
  • Service Dashboard: Users view modules and services they are granted access to.

Plugin Engine

Switchboard uses a domain-driven architecture. The application can be extended with plugins that use lifecycle hooks (install, uninstall, grantAccess, revokeAccess).

First-Party Modules:

  • Plex: Invite or revoke users from Plex library shares.
  • Overseerr / Jellyseerr: Map Switchboard users to Overseerr permissions.
  • Wireguard (API): Provision and revoke VPN profiles via external managers (e.g., wg-easy). Switchboard acts as an API client, not the VPN server.