Skip to content

Latest commit

 

History

History
152 lines (104 loc) · 7.13 KB

README.md

File metadata and controls

152 lines (104 loc) · 7.13 KB

Fenrus

Fenrus personal home page/dashboard.

It allows you to have a custom home page/new tab page with quick access to your personal apps.

Donate


image


Installation

Dotnet

Fenrus is a Dotnet application and requires ASP.NET Core Runtime to run.

Then you can run Fenrus

dotnet Fenrus.dll

Or to specify a port

dotnet Fenrus.dll --urls=http://*:1234

Docker

Docker is the preferred method of installing Fenrus

docker run -d \
--name=Fenrus \
-e TZ=Pacific/Auckland \
-p 3000:3000 \
-v /path/to/data:/app/data \
--restart unless-stopped \
revenz/fenrus:latest

Note: You can customise the port used by using the environmental variable "Port"

-e PORT=1234
services:
  fenrus:
    image: revenz/fenrus
    container_name: fenrus
    environment:
      - TZ=Pacific/Auckland
    volumes:
      - /path/to/data:/app/data
    ports:
      - 3000:3000
    restart: unless-stopped

Fenrus will save all the user configuration data in the folder /app/data so map this folder outside the docker container.

All the configuration is saved into LiteDB file, Fenrus.db. There is an encryption key alongside this database file used to encrypt sensitive data inside the database. This way if you need to provide the database for support reasons, your sensitive data cannot be read.


Reverse Proxy configuration

If you want to host Fenrus behind a ReverseProxy in combination with oauth authentication, you need to make sure that you are passing X-Forwarded-Proto and X-Forwarded-For headers from your reverse proxy to Fenrus. Fenrus will use these headers to generate the correct urls for oauth authentication.

The following environment variables can be set to change the reverse proxy settings:

Variable Description Default Example
ReverseProxySettings__UseForwardedHeaders Enable reverse proxy support, all the below settings are negated, if this setting is false false true
ReverseProxySettings__DebugPrintRequestHeaders Print request headers to console, to verify if X-Forwarded-X headers are present false true
ReverseProxySettings__KnownProxies String array of trusted proxy IP addresses [] ["192.168.2.15", "192.168.2.16"]
ReverseProxySettings__KnownIPv4Network__Enabled Enable adding a Known IPv4 Network true false
ReverseProxySettings__KnownIPv4Network__IpAddress Network network to add, for example 192.168.2.0/24 (the prefixLength, will be added in the below variable "10.0.0.0" "192.168.2.0"
ReverseProxySettings__KnownIPv4Network__PrefixLength The prefix length for the Known network to add. 8 24
ReverseProxySettings__KnownIPv6Network__Enabled Enable adding a Known IPv6 Network true false
ReverseProxySettings__KnownIPv6Network__IpAddress Network network to add, for example fe80::/24 (the prefixLength, will be added in the below variable "fe80::" "fe80::"
ReverseProxySettings__KnownIPv6Network__PrefixLength The prefix length for the Known network to add. 64 24

Getting Started

First, you need to register a user, you can do this on the login page by entering a username and password and clicking "Register" if no user with that username exists, a new one will be created.

image

Admin

The first user created in the system will automatically be assigned the admin role. This role allows the user to manage other users.


Configuration

Groups

Groups contain applications, links and other dashboards.

image

Group Items

Shortcuts are broken down into 4 types

Links

These are basic links to websites, either internal or external, and show no extra information. You can configure an icon for these links, or if left blank Fenrus will try to magically download the favicon for the site.

Apps - Basic

These are a step above links, they are known to Fenrus, and will have a high-resolution icon, perhaps a default URL, but little else.

Apps - Smart

This is where the magic really happens. These smart apps, or spell casts if you will, have extra information that Fenrus can download and query to display more information about the app. This could be as simple as some basic information, or it could be a feature-rich magical experience.

Dashboards

These link to other dashboards. You can add a dashboard link to a group or they are also available through the drop down menu at the top of the page.


Search Engines

Name: The name of the search engine
URL: The URL for the search query with %s being repalced by the search term
Shortcut: The shortcut to type to use this search engine (if not the default)
Icon: The icon to show when using this search engine

image


FAQ

Q: What is the default username/password?

A: There is no default user. Enter a username and password, then click the "Register" button. This will create a new administrator user. You can then go ot "System" and turn off registrations if you do not wish to allow open registrations.


Q: Why was Fenrus rewritten in .NET?

A: Fenrus was original a much smaller application and was written in NodeJS. This was simple when Fenrus was a simple dashboard application. But as features were added (Docker Terminals/Logs, SSH, Up-Time Recording), the app become more complicated. To ease development, it was rewritten in .NET using Blazor Server Side. This drastically simplifies the code for system configuration/settings, and makes it easier to add more features. .NET has the added benefit of being a faster rendering engine than Node, resulting in faster page loading.