MCPSERV.CLUB
Dashy

Dashy

Self-Hosted

Central hub for self-hosted services

Active(89)
22.9kstars
0views
Updated 6 days ago
Dashy screenshot 1
1 / 5

Overview

Discover what makes Dashy powerful

Dashy is a lightweight, self‑hosted personal dashboard built to aggregate links and services into a single, highly configurable web interface. From a developer’s perspective, the application functions as a **single‑page web portal** that consumes a declarative YAML/JSON configuration to render pages, widgets, and status indicators. The dashboard exposes no external APIs for data ingestion; instead, it pulls information directly from the services you host via HTTP(S) endpoints or local sockets. This design keeps the runtime footprint small while still allowing rich, real‑time monitoring and interaction with a wide variety of self‑hosted tools.

Frontend

Backend

Configuration

Data Sources

Overview

Dashy is a lightweight, self‑hosted personal dashboard built to aggregate links and services into a single, highly configurable web interface. From a developer’s perspective, the application functions as a single‑page web portal that consumes a declarative YAML/JSON configuration to render pages, widgets, and status indicators. The dashboard exposes no external APIs for data ingestion; instead, it pulls information directly from the services you host via HTTP(S) endpoints or local sockets. This design keeps the runtime footprint small while still allowing rich, real‑time monitoring and interaction with a wide variety of self‑hosted tools.

Architecture

  • Frontend: A Vue 3 SPA powered by Vite. The UI is rendered client‑side, with the configuration fetched once during bootstrap and then stored in Vuex/Pinia for reactive updates. Styling is handled by Tailwind CSS, with optional custom CSS injection.
  • Backend: A minimal Node.js/Express server (or a static file host) that serves the SPA and optional API endpoints for authentication, cloud sync, and status checks. The backend can be replaced with any static file server or CDN because the dashboard is largely self‑contained.
  • Configuration: A single config.yml (or JSON) file describes pages, links, widgets, theming, authentication rules, and more. The file is parsed by the server at startup; changes trigger a hot‑reload if run in development mode.
  • Data Sources: Status checks are performed by the client via fetch or WebSocket to arbitrary URLs, enabling integration with health‑check endpoints (/health, /status) of services like Grafana, Traefik, or custom scripts.
  • Persistence: Optional encrypted cloud backup uses the axios‑based sync service; otherwise, state is purely in-memory and the config file is the source of truth.

Core Capabilities

  • Multi‑page navigation: Declaratively define an arbitrary number of pages, each with its own layout and widgets.
  • Real‑time status monitoring: Periodic polling or WebSocket hooks provide live status bars, color coding, and tooltips.
  • Widgets: Built‑in widgets include Markdown, iFrame, JSON viewer, and custom HTTP data visualizers. Developers can extend this via a simple plugin interface that registers new widget components.
  • Theming & Custom CSS: Tailwind theme overrides, custom color palettes, and raw CSS injection give full control over appearance.
  • Authentication & SSO: Supports OAuth2, OpenID Connect, and custom user stores; multi‑user roles and permissions are configurable in the YAML.
  • Keyboard shortcuts & search: Global hotkeys, fuzzy search by name/domain/tags, and customizable keybindings.
  • Backup & Sync: Encrypted backup to cloud services (e.g., S3, Dropbox) via a REST endpoint; supports restore and versioning.

Deployment & Infrastructure

Dashy is intentionally lightweight (≈ 10 MB for the Node bundle) and can run on any platform that supports Node 14+ or Docker. The recommended deployment model is a Docker container:

  • docker run -p 80:80 -v /path/to/config.yml:/app/config.yml dashy
  • Supports environment variables for secrets (e.g., OAuth client IDs) and TLS termination via a reverse proxy.

For large teams, a Kubernetes deployment can be achieved with a simple StatefulSet and ConfigMap to mount the configuration. The stateless nature of the frontend allows horizontal scaling behind a load balancer; only one instance needs to manage authentication sessions unless session persistence is required.

Integration & Extensibility

Dashy’s plugin system lets developers ship new widgets or link handlers as npm packages. The API surface is intentionally minimal: a GET /status/:service endpoint for health checks, an optional /auth/callback, and a WebSocket channel (/ws) for real‑time updates. Custom scripts can expose JSON over HTTP, which Dashy can consume via its “JSON widget.” Webhooks are supported by adding a link with type: webhook and specifying the payload schema.

Developer Experience

  • Configuration: YAML is human‑readable; the documentation includes extensive examples for each feature. The config-editor in the UI offers live validation.
  • Documentation: Comprehensive docs on GitHub cover every option, with a quick‑start guide and a showcase of real deployments.
  • Community: Active issue tracker, frequent releases (semantic versioning), and a Discord channel for real‑time support.
  • Licensing: MIT, encouraging commercial use without copyleft obligations.

Use Cases

ScenarioWhy Dashy?
Home Lab OperatorCentralize access to VPN, Grafana, Portainer, and personal projects in one UI.
DevOps TeamProvide a single portal for internal services with role‑based access and live health dashboards.
Remote WorkersA minimal startpage that loads quickly, with custom widgets for weather or GitHub activity.
Educational LabsShare a curated list of learning resources and project dashboards with students.

Advantages

  • Performance: The SPA loads in under 200 ms on a typical home router; all status checks are asynchronous and non‑blocking.
  • Flexibility: Declarative config + plugin hooks mean developers can tailor the dashboard to any workflow without touching core code.
  • Security: Optional OAuth2/SSO and encrypted backups keep sensitive links hidden from casual observers.
  • Cost

Open SourceReady to get started?

Join the community and start self-hosting Dashy today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
22.9k
Technical Specs
Pricing
Open Source
Database
None
Docker
Community
Supported OS
LinuxDocker
Author
Lissy93
Lissy93
Last Updated
6 days ago