Table of Contents
In this short post, I want to talk about my experience with YunoHost, Portainer, and Docker-Compose on my Raspberry Pi, as well as my previous limited experience of self hosting using a Synology DiskStation.
The idea of self hosting has always appealed to me as someone concerned about privacy and keeping costs down. I quickly discovered self hosting was one way to involve both, as hosting your own data kept it out of the hands of others, and many platforms would charge you to use their services (as you would be using their servers), but not if you self hosted it yourself.
Initially, I remember self hosting a Minecraft server on an old Synology DiskStation with upgraded RAM, using a package from a custom repository. There were quite a applications which could be installed onto the DiskStation, either via Synology themselves, or with other custom repositories, but these were quite limiting when you think of all the applications out there which could be self hosted.
As time went by, Synology later added support for Docker, a service which easily allows the installation and running of what are known as containers, isolated pieces of software. Suddenly, a world opened up of many thousands of applications which could now be installed and ran locally. Initially, I tried Wallabag, Shaarli, and Kanban, as well as some RSS feed readers. However, many of my attempts ended in failure, as the Docker container would automatically shut down after running, or would run but be buggy and unusable. For the applications which did run as intended, I became wary of the RAM usage, as the DiskStation was performing many different activities and I didn’t want it to become substandard.
Realising there were limitations to using a DiskStation for self hosting, but liking the idea, I went looking for a piece of hardware which would exclusively run Docker containers.
I actually didn’t even get that far. Although I looked into other server hardware and NUC-type computers, as well as repurposing an old Linux machine, it was by pure happenstance that I one day saw a conversation on Mastodon about a random piece of software being “easily” self hosted using YunoHost. I’d never heard of YunoHost before, but a quick web search made it look like everything I was looking for. Not only was it an operating system with many applications at a one-click easy install, but it could run on a Raspberry Pi. I had a model 4 I was using for Home Assistant, but it looked like I could install Home Assistant on YunoHost along with loads of other pieces of software!
As an aside here, I do realise there is a different between the Home Assistant Operating System and a Home Assistant Container, and I was using the Operating System before. However, I wondered if I could make it work in a Container. We’ll see in the future if this panned out well for me or not!
Installing YunoHost was simple, though it took me a few tries at getting the URLs and SSL set up correctly. But once all the configuration was finished, I’ve not had any issue with all that administration side since.
I then began to survey the applications on offer, and there is a wide selection. Not every application is in here, and I struggled to get some to work, but successfully installed FreshRSS, Home Assistant, Nextcloud and Wallabag.
As I said, some applications simply refused to work, and as I was exploring the world of self hosting, I realised there were plenty more options out there which YunoHost didn’t provide. I began to research how best to host with little limitations.
I’m not sure how I came across Portainer, but I decided to test it out on a new SD card with just Raspbian installed. I was surprised at how simple it was to setup and access headless and remotely. I was also pleasantly surprised at how easy it was to also install AdGaurd Home and Tailscale without needing containers.
I then began a long process of trial and error in finding, selecting and installing various docker containers. It took me a while before I decided using predefined Docker-Compose scripts would go a long way in helping ease some of the issues I was facing, and I liked how these could be saved and easily executed if a full restore would be needed by simply entering the same script again.
While YunoHost had its own system of backing up, running Portainer off the Raspberry Pi meant it was now my responsibility to make sure everything was backed up. However, I have struggled to find a simple way to backup everything I need to. I am looking into options such as Duplicati and rsync, but am currently using the internal backing up features of the installed applications, which I know isn’t good for the long-term, though something I am trying to work on.
As of this post, I have the following applications installed for self hosting:
- AdGuard Home
- To block adverts and limit trackers.
- Personal dashboard and home start page.
- For calendar and cookbook.
- To keep certain files and folders in sync between my computer, phone and laptop.
- Home Assistant
- To manage my internet of things and smart home.
- Recipe manager.
- RSS feed manager.
- To store interesting articles.
- Organiser and OPDS feed creator for eBooks and eMagazines.
- Alternative front-end for Reddit.
- Alternative front-end for Google.
- Airsonic (On Synology DiskStation)
- Music library and streamer.
- Plex (On Synology DiskStation)
- Video and live TV organiser and streamer.