Enchanted Code

Now Self Hosted - #3

9 minutes read
Cover image for: 'Now Self Hosted - #3'


Welcome to the 3rd issue of Now Self Hosted, I will be reviewing: Shiori, Vaultwarden, Fenrus and Homepage.


First let’s explore Shiori. I found out about this app while reading a article on the Noted site. It describes itself as:

a simple bookmarks manager… Intended as a simple clone of Pocket

Shiori UI side-by-side showing bookmarks page & reader mode for a archived website

The reason why I wanted a bookmark manager is not just to store links to website, but to archive them, preventing Link rot. I know there are lots of archival apps which will archive a whole site, however I just wanted a way of quickly saving a single page. Shiori allows me to do just that. I also found the “readable” mode (which renders the saved page in the apps theme) to be very handy, especially when using the dark mode. I also found the search feature at the top of the page works well, filtering the bookmarks, This will be very useful when I have lots saved. For those who like to organise like myself it also allows you to add tags to saved bookmarks and even search by them.

While Shiori supports multi-user I’m currently the only user, I also haven’t tested out it’s public archive mode. This would seem a good feature to have if you’re sharing an instance with some friends.

Although I haven’t tested yet, Shiori allows deployment using MySQL and PostgreSQL. Unless you’re using an NFS volume (or something similar) the SQLite database will work fine, although if you have an extremely large collection of bookmarks you may want to use a dedicated server.

As well as deploying with Docker, you can also run the app in “portable mode” (using their standalone binary). Although I haven’t tried it, this feature looks like it would allow you to run it on your local machine and since SQLite is supported you could probably sync with a network share or a usb stick.

Here are some of the top features I like (and use):

  • Reader mode of an archived page
  • Tags
  • Search
  • Clean UI

I currently have it running on my Raspberry Pi 4 and have found the speed of the program to be very quick (probably because it’s written in Go). Due to running lots of other services (20+) I took a look at the apps memory usage, I found it was consuming barely anything (18mb).

Something I am looking forward to using is their companion web browser extension, which is currently in BETA, so I will have to wait until that’s released.

Now on to a very minor issue. Which was that I had to use their CLI to setup the database on the initial program run. Although minor it did require exec’ing into the container (since I was using Docker), I hope they remove this in the future; as most programs will create the database for you when one is not detected. I will show the command I used to help others below:

docker exec -it shiori shiori migrate

I have had it deployed for a few weeks now, it has been quite stable. I have enjoyed using the interface as it does not have unnecessary visual clutter. This app is exactly what I wanted, I have seen other alternatives although I did not really like the style of UI. I recommend this app to anyone wanting a way of easily archiving single pages.


The next app I will be covering is Vaultwarden, API compatible with Bitwarden. If you don’t know what Bitwarden is, it’s a password manager.

Vaultwarden used to be called bitwarden_rs

Bitwarden UI showing the “vault”

As a password manager is almost a requirement these days, due to either the growing complexity or amount of passwords everyone has, I would highly recommend self-hosting your own, on your own hardware. Why do that? well it gives you full control of your data, you can also ensure that it is stored securely.

While it’s perfectly ok to run the Bitwarden server, I decided to self-host Vaultwarden instead. The reason behind this; is the official Bitwarden server is not that lightweight and I like trying different apps out.

Vaultwarden is also written in Rust.

Since it is a compatible implementation you can use the exiting Bitwarden apps, which are very well made. Vaultwarden also ships with the Bitwarden web interface so you don’t need to use an app (or browser extension).

Talking about the Bitwarden apps, I really like that it allows you to store things other than just passwords. This is a feature I find myself using a lot, especially the “secure notes” entry type. It enables me to quickly store varius private/public key pairs for use with my development machines. Although you should not be storing private keys on machines other than the actual machine it’s for, unless for testing/development.

There’s not too much to say really about Vaultwarden itself; it does it’s job storing and syncing my passwords in an encrypted format (decrypted on the device, not server). I found the Vaultwarden implementation much easier to setup than the Official Bitwarden server. The only possible problem I can see is if Bitwarden makes an incompatible change you will have to wait for Vaultwarden to catch up, although I haven’t encountered this issue yet. I have been hosting Vaultwarden for several years now (when it was known as bitwarden_rs), I found it runs perfectly well on my Raspberry Pi 4 with minimal memory usage.


Next I am taking a look at Fenrus which describes itself as:

A personal home page for quick access to all your personal apps/sites.

Looking at their showcase image makes me think that this is yet another dashboard with a strange layout. However after making my own dashboard, it seems to be fine as you can change the position of the widgets and put them into a more organised layout.

Fenrus dashboard with some links added

After logging in I was met with a very animated background, whilst it looked pretty, it made me very dizzy while trying to read the text. Luckily I found there is an option to turn it off. I personally would expect the default to have no motion as it is very distracting to look at the icons.

Before I added any links I changed the background color to a nice blue color (same as my site theme). After that was changed I started to add some links, this was quite easy through the web UI. A feature I found interesting is that you can embed a dashboard into another dashboard, this could allow for complex layouts.

I like the UI layout as everything is very easily found from the settings. This is a multi-user dashboard app; so it allows for different dashboards for each user. When adding some apps onto the dashboard; I found that it has a very long list of inbuilt presets complete with icons, very nice to see, although none of my apps are on it :( !. One thing I would of liked to see is the ability to have a app name shown at all times for the widgets. Another feature is it can show metric information from services like Pihole which can be useful to see stats at a glance.

As I install most of my services through Docker, I went for this option when installing. It requires minimal configs for the install, so it did not take any time at all. I also inspected the image size, which is ~100MB I would consider that fairly small since it uses NodeJS. As a comparison my Web Portal Lite app is only ~20MB, but it is a compiled Rust app using Docker scratch.

Although this app is not something I would deploy personally since I already have Web Portal (my own), I’m sure there are plenty of people that will like it.


Homepage is a new contender to the many different web dashboard apps that are available, it’s first release was on 27 Aug 2022. I enjoy seeing all these different implementations however, I would like to see more backend code written in other languages rather than JavaScript.

Homepage describes itself as:

A highly customizable homepage… with Docker and service API integrations.

Homepage dashboard with some links added

Looking at the feature list, it supports many different integrations and has customisation of colors and background images. For this review I only had time to try a few features out.

Homepage does not feature a UI editor, instead opting for several yaml files. This is fine for more technical people, however you may have to setup a dashboard for someone if they have no experience with configuration files.

I started with the default config which already included a server metrics widget and a internet search bar. I found them to not distract from the overall interface. I added a few service links making use of the group function. Despite having sight issues, I have found this UI very easy to see. The app links have a nice amount of padding to help visually separate them from each-other. When making dashboards I prefer to have the service name showing, without any images although it is possible to include app icons. As you can see from the image I have selected to use a plain gray background although it has many colors to choose from including selecting your own image.

A main feature I look for in most apps is a decent look on install, this reduces the amount of configuration that I have to do. I found Homepage’s defaults to have a minimal layout with a couple of pre-configured widgets, of course I can’t expect it to have all my app links placed already!

A lot of people using Docker enjoy having a minimal image size, whilst I wouldn’t say it was the smallest image at ~200MB, that is pretty good for the amount of features it has.

I won’t be deploying this app permanently as I personally don’t need all the features. If I did not already have a dashboard app; I would certainly use this one because of its clean UI and accessibility friendly layout.


I hope you found this issue of Now Self Hosted useful. Maybe you are now thinking about switching from one of the SaaS passwords managers to a self-hosted Bitwarden or you are deploying Homepage for a nice tidy dashboard. While waiting for the next issue, checkout some of my other posts. Thanks for reading.

This post was not endorsed or sponsored by any of the mentioned parties. My views are my own.

Join The Community

Looking for more self-hosted, tech or programming content. Well this site is a good place to find all of that!

Stay informed about new posts or announcements about my apps join the community:

Want to help out? A great way of doing that is supporting me at: Buy Me A Coffee.


See Also

Buy Me A Coffee