Web Portal - Manage Links to Your Web Services

A simple and basic self hosted dashboard for managing links to your web services and apps.

Web Portal - Manage Links to Your Web Services

When I first saw Web-Portal I wasn't too dazzled on the look and design. When I began adding widgets and saw how easy it was to manage, I became more and more fond of how great it really is!

What is Web-Portal?

Web-Portal is a web app written in Python using Quart, that aims to provide an easy and fast way to manage the links to all of your web services.

While it's not the most beautiful dashboard we've seen, what it lacks in beauty, it makes up for in functionality and overall usability. After all, when it's only you who will be seeing the dashboard, who really cares what it looks like? I'd rather have a more functional dashboard any day over something that focuses more on aesthetics. Not saying I don't like a fancy dashboard though.

Web-Portal Features

  • Access a grid of beautiful links to your web services
  • Minimal use of Javascript, to provide a lightning fast experience
  • Wide range of link colors
  • Icon based theme
  • Minimal docker image (if deployed with docker)
  • Dark/Light mode
  • Links can be put into groups
  • Optional search-bar for quickly accessing your search browser of choice
  • Optional Compact view
  • Password protection for admin modification
  • Optionally secure the portal with user accounts & passwords
  • Import/Export widgets using JSON
  • MySQL/MariaDB and sqlite support

Install Web-Portal with Docker Compose

Web-Portal ships with a pre-made Docker Compose template that uses an SQLite database. However, you can use MariaDB or MySQL as well.

version: "3.3"

services:
  web-portal:
    container_name: web-portal
    image: ghcr.io/enchant97/web-portal:1
    restart: unless-stopped
    volumes:
      - web-portal:/data
    ports:
      - 8000:8000
    environment:
      - "DB_URI=sqlite:///data/db.sqlite"
      # This must be secure
      - "SECRET_KEY=my_super_secret_123"

volumes:
  web-portal:

Once installed, you can log in using admin:admin and change the password by accessing the user panel.

Turn device sideways to enlarge

Adding links and groups is very straightforward. Just fill in the form with your URL, name of the button and the color you want it to be on the dashboard.

Turn device sideways to enlarge

If you want to rearrange things later, you can do that using the same menu by selecting the corresponding widget and adding it to a different group, change the color and of-course delete it.

From the Dev

It runs fine with SQLite, which requires no setup. I do agree it is overkill for the features this version (V1) offers. I am also currently working on V2 which has the ability to load plugins and much more customization.
V2 is still in early development, but it has app icons as well as colors (among other improvements). If you want to check it out navigate to the "next" branch on the repository. It has no setup guide at the moment though.

Web-Portal Demo Video

Final Notes and Thoughts

As the saying goes, "don't judge a book by it's cover", Web-Portal is a fine example of that quote! It really is a great application that keeps simplicity at the forefront of its functionality. So, if you need a system that let's you easily add links via a control panel rather than editing a file on the server, Web-Portal is a great solution.

If you find Web-Portal useful, be sure to give it a star on the Github repo!