+++
title = "What I'm currently selfhosting."
author = ["Zachary Billman"]
date = 2022-07-02
categories = ["selfhosting"]
draft = false
+++

_N.B.: I hope to add screenshots for each of these eventually. For now, I hope links to each services' website will suffice._

1.  [Seafile](https://www.seafile.com/en/home/)

    This is a great tool for managing files. I moved to this from Nextcloud because I am of the philosophy that I would prefer services that do one thing excellently instead of many things well. Nextcloud is an incredible Office365 replacement, but I found myself using a fraction of what it was capable of providing. Enter Seafile. It is cloud file syncing with a robust encryption implementation, just what the doctor ordered.

2.  [Photoprism](https://photoprism.app/)

    Nextcloud's implementation of photo management was a bit clumsy for my tastes, so I began on a hunt for a more feature complete option. I was very lucky to stumble upon Photoprism early on in my self hosting journey. I am a proud supporter of this project. It brings a ton to the table, and doesn't leave me missing Google Photos one bit. It is also actively developed. For instance, as of 2022-07-02, there was a recent update that improved scrolling a ton, which was one of my remaining quibbles with it's functionality. Some people complain that it doesn't scale up for libraries of 10,000+ photos, but my 2000 photo library works swimmingly. On my phone, I use the Folder Sync app to automatically send any pictures I take on my phone to the Photoprism imports folder. Within 15 minutes of snapping a photo, it is there on my Photoprism instance. I highly recommend giving it a go.

3.  [Mealie](https://mealie.io/)

    I have to admit that the name leaves something to be desired. Fortunately, the service itself doesn't fall short. Mealie is a recipe management application. It is able to parse your favorite recipe websites to create immortalized versions of the recipe. This helps fight detestable [link rot](https://en.wikipedia.org/wiki/Link_rot) that plagues the internet. It allows you to edit ingredient amounts, make comments about what you would change next time, and plan out your weekly meals. It helps that it is beautiful and intuitive to use. If only I could get my partner to use it...
{{% sidenote %}}
I want to go on the record here and say that I think it is sensible that she doesn't trust my self hosted services that much. In the early days of my self hosting journey, let's just say that the up-time of my services were extremely finicky. I like to think they are more permanent now, especially because I am hosting everything on a VPS, but I certainly cannot compete with the stability of Google and Amazon. (Or pretty much any other paid service for that matter.)
{{% /sidenote %}} :wink:

1.  [Gitea](https://gitea.io/en-us/)

    Gitea is a community managed, lightweight code hosting solution written in Go. I use it to manage my data analysis (using privite repos) and even host [the source code for this very website!](https://gitea.zacharybillman.com/zpb/zacharybillman-hugo) Using Gitea has given me the surface level introduction to the behemoth that is git. Fortunately, that is all I need. Once I have removed any senitive data (like passwords, etc.) I will make my docker-compose file public.
{{% sidenote %}}
The docker-compose file is where I determine which services I pick to host, and how to configure them to my liking.
{{% /sidenote %}} Hopefully someone will find this useful.

1.  [Syncthing](https://syncthing.net/)

    If I could only tell someone to self host a single service, I would have to pick Syncthing. It is a continuous file synchronization program, which means it keeps a specific file or folder the same between any device running Syncthing. I use it to keep my [password database](https://keepassxc.org/) and my [org-mode](https://orgmode.org/) notes
{{% sidenote %}}
Now org-mode might be the biggest rabbithole of them all, and definitely the topic for another blog post. I use it to manage my TODO list, my lab notebook, my shopping lists, write this blog, and maintain my [Zettelkasten note database](https://zettelkasten.de/introduction/). It is an immensely powerful tool.
{{% /sidenote %}} up to date between all of my devices. With Syncthing, all of my data is stored on my own devices and encrypted in transit.

1.  [FreshRSS](https://freshrss.org/)

    I keep up to date on the science in my field by subscribing to relevant RSS feeds.
{{% sidenote %}}
Yet another topic to write a post about. This really changed the game for my ability to keep on top of the latest research. _2022-07-14 Update: post complete! [Check it out here](https://www.zacharybillman.com/posts/rss-feeds-to-find-science-papers/)._
{{% /sidenote %}} FreshRSS replaced Feedly for me, as I ran up against the number of feeds I could subscribe to on a free account. Also, when self hosting, I can save as many articles as my heart desires (even if I will never look at them again :dizzy_face: ).

1.  [Wallabag](https://wallabag.org/en)

    Remember Pocket for Firefox? (Yes, I know it still exists, okay?) Give Wallabag a spin, it is great for storing articles you want to read later. I set up FreshRSS to save articles to my Wallabag instance to keep for later.

2.  [ChangeDetection](https://github.com/dgtlmoon/changedetection.io)

    Now this is a fun one! ChangeDetection.io is a service that loads a webpage and checks to see if something has changed since the last time. This might not sound useful at first, but I recently used this to check for when a hot item for my new coffee roasting hobby was back in stock. I got an email the other day to let me know it was in stock. Pretty cool!

3.  [Hugo](https://gohugo.io/)

    Hugo is the static site generator I use to make this here blog! I was amazed at how much more response my site was using Hugo compare to when I paid a company to host a WordPress site. I'm sure WordPress could be fast, but I just wanted a barebones, pure html experience, and Hugo made it easy.

4.  [Commento++](https://github.com/souramoo/commentoplusplus)

    You may have noticed that I have some pretty snazzy comments sections on my site. I initially used Disqus, which you may recognize from a ton of sites around the internet, but didn't like how it would serve ads through my comments section, and provided sign-ins using Google/Facebook/Twitter. I wanted to serve the simplest comments section I could, that still gave me the ability to migrate the comments to wherever I decide to keep my server. Go ahead and use the anonymous comment button, fill in your name, and you are off to the races.

5.  [Authelia](https://www.authelia.com/)

    There are a few services I host that I really want to lock down. For these services, Authelia is great. It puts up a "Enter the 6 digit code on your phone" style 2 factor authentication in front of the services I choose. Or, [if you follow the guide here](https://www.smarthomebeginner.com/docker-authelia-tutorial/), you can have it send you a DUO push, just like you are one of the big hitters out there. I feel much more secure with Authelia in front of Adminer, Traefik, and Portainer.

6.  Boring stuff that allows everything else to work!
    -   PostgreSQL database
    -   MariaDB database
    -   Traefik reverse proxy
    -   Umami privacy respecting site analytics
    -   Portainer for docker container management
    -   Redis in-memory data store
    -   Adminer database management
    -   traefik-socket-proxy to prevent pesky backdoors to my server!
