MCPSERV.CLUB
Fenrus

Fenrus

Self-Hosted

Custom personal homepage and new tab dashboard

Stale(57)
709stars
0views
Updated Jan 31, 2025
Fenrus screenshot 1
1 / 4

Overview

Discover what makes Fenrus powerful

Fenrus is a lightweight, self‑hosted personal dashboard built on **ASP.NET Core 7**. Its core mission is to replace the default browser home page with a customizable, data‑driven interface that exposes quick links, widgets, and user‑specific settings. The application persists all configuration in a single encrypted **LiteDB** file (`Fenrus.db`), making it trivial to backup, migrate, or share across machines without compromising credentials.

Configurable Widgets

OAuth Integration

Plugin‑Friendly

Data Encryption

Overview

Fenrus is a lightweight, self‑hosted personal dashboard built on ASP.NET Core 7. Its core mission is to replace the default browser home page with a customizable, data‑driven interface that exposes quick links, widgets, and user‑specific settings. The application persists all configuration in a single encrypted LiteDB file (Fenrus.db), making it trivial to backup, migrate, or share across machines without compromising credentials.

Key Features

  • Configurable Widgets – Users can drop, reorder, and resize components such as bookmarks, RSS feeds, or custom HTML snippets.
  • OAuth Integration – Supports external identity providers (Google, Azure AD, etc.) with reverse‑proxy awareness.
  • Plugin‑Friendly – Exposes a REST API and webhooks for third‑party extensions, enabling developers to add new widgets or automate dashboard updates.
  • Data Encryption – Sensitive data (e.g., OAuth tokens) is encrypted with a key stored alongside the database, ensuring secure off‑site backups.

Technical Stack

LayerTechnology
Runtime.NET 7, ASP.NET Core MVC + Razor
PersistenceLiteDB (embedded NoSQL) with AES encryption
ContainerizationDocker image revenz/fenrus:latest
ConfigurationEnvironment variables + appsettings.json (reverse‑proxy, port)
Web ServerKestrel (self‑hosted) behind optional reverse proxy

The application is intentionally minimalistic: no external services are required, and all assets (JS/CSS) are bundled within the Docker image. This design reduces attack surface and simplifies compliance for security‑conscious environments.

Core Capabilities

  • RESTful API – CRUD operations for widgets, user profiles, and authentication tokens. The API follows conventional ASP.NET routing patterns (/api/widgets, /api/users).
  • Webhooks – POST endpoints that external services can call to trigger UI refreshes or data syncs.
  • Plugin Hooks – Custom middleware can inject additional routes or modify the Razor view pipeline, allowing developers to extend functionality without touching core code.
  • Template System – Razor partials are exposed for developers to create new widget types or override existing layouts.

Deployment & Infrastructure

Fenrus is designed for single‑instance deployments, but its stateless API layer and embedded database make it suitable for horizontal scaling with a shared volume (e.g., NFS, SMB). Typical deployment scenarios include:

  • Docker Compose – Example compose file shows volume mapping for /app/data and environment variables for time zone, port, and reverse‑proxy settings.
  • Kubernetes – The container image can be run in a StatefulSet with a PersistentVolumeClaim for /app/data.
  • Bare Metal – Directly run dotnet Fenrus.dll on any machine with .NET 7 installed; the only requirement is file system access to the database folder.

Resource consumption is modest: a single container consumes < 200 MB of RAM under normal load, making it ideal for home labs or edge devices.

Integration & Extensibility

Fenrus’ plugin architecture is deliberately open. Developers can:

  • Add New Widgets – Publish a NuGet package that registers Razor components and routes.
  • Consume External APIs – Use the built‑in HTTP client factory to fetch data and push it into widgets.
  • Expose Data – The API returns JSON, so any front‑end framework (React, Vue) can consume it for custom dashboards.
  • Automate via Webhooks – Set up CI/CD pipelines to push configuration changes or refresh tokens automatically.

The reverse‑proxy section of the README details how to forward X-Forwarded-* headers, ensuring OAuth flows work correctly behind corporate proxies or cloud load balancers.

Developer Experience

  • Configuration – Environment variables provide a clean, declarative way to tweak runtime behavior (port, TZ, reverse‑proxy flags).
  • Documentation – The README covers installation, Docker usage, and reverse‑proxy configuration in a concise manner. API endpoints are documented via Swagger (auto‑generated from controller attributes).
  • Community & Support – The project is open source on GitHub with an active issue tracker. Contributions are welcomed, and the author encourages pull requests for new widgets or integrations.
  • Licensing – The MIT license allows unrestricted use, modification, and redistribution, making it attractive for internal tooling.

Use Cases

ScenarioWhy Fenrus?
Personal ProductivityQuick access to bookmarks, calendar widgets, and task lists on a single page.
Developer PortalsHost internal tools (GitHub, CI dashboards) behind a single, secure entry point.
IoT MonitoringEmbed sensor data widgets that poll local APIs and display real‑time metrics.
Enterprise OnboardingProvide new employees with a pre‑configured dashboard that pulls from corporate services.
Edge ComputingRun on low‑power devices (Raspberry Pi) to expose local services via a clean UI.

Advantages

  • Zero‑Configuration Persistence – One encrypted file holds all state; no external database or schema migrations.
  • Performance – ASP.NET Core’s Kestrel server delivers sub‑millisecond responses; LiteDB offers fast read/write for small datasets.
  • Flexibility

Open SourceReady to get started?

Join the community and start self-hosting Fenrus today