Self hosting services
I host a variety of server applications. Some of these are public, like my website, but many are intended just for myself. Self-hosting services allows me to remove the need to use a lot of proprietary websites, and it keeps my data private. Many of my needs started out as local offline applications, and I migrated to using online services that allowed me to use them from anywhere. Setting up servers requires a bit of technical knowledge, but this knowledge is best learned by attempting (and failing) in low stakes environments. The first services I ever ran were twitter bots that ran each day on my raspberry pi model B. These scripts were only a few files total, and if I ever messed up, I could simply reinstall the operating system.
VPS vs local server
I started out with running things off a local server, either a raspberry pi or an old laptop. This appealed to me most, since it was the cheapest. However, now I run most of my things off a VPS (virtual private server) that I rent from DigitalOcean. Running things locally can usually be cheaper, if you have old hardware lying around. Your home network does not usually have a static IP, and so accessing your services from another network can be difficult, not to mention to security risk involved opening ports. While a VPS costs me a monthly fee, I feel more comfort in knowing if my services are attacked, my home computers will be safe. Not having to run my own hardware is nice too, I do not worry about the drive failing on my VPS. In general, I actually run a mix of both. Anything I want to use from any network is on my VPS, and anything I just need at home is run locally.
What I host
VPS Services
- marks.kitchen - my personal website
- games.marks.kitchen - games I have made
- database - a frontend for a mysql database I used to keep track of some data.
- budget - a similar frontend I wrote that keeps track of expenses - It has been partially complete for a while, and so the code is not public yet. I intend to have more budgeting features, and to display cool graphs.
- wiki.js - my private wiki - I was using an offline hierarchical notetaker (cherrytree), but was worried about syncing between devices, and I wanted mobile support. I just switched over in the last week to this, and am in the process of copying over old notes. Since there is a tree structure to the notes, and links, I can really use a wiki for anything. Before cherrytree, I just had random txt files all over my hard drive. Some of these remain in hiding to this day.
- tt-rss - an RSS reader - Anytime I read an interesting article, I’ll add the website’s feed to my reader. I am trying to avoid all types of algorithmically curated content, and using RSS just gives me the items as they come in. There is no algorithm trying to optimize my time on the service. RSS feeds still exist on a lot of websites. Even youtube has RSS feeds for channels.
- kanboard - project management - I use this for keeping track of to do items. Mainly, I use it to keep track of my school assignments, and TA responsibilities. This is helpful when I have a lot on my plate, and I need to plan out deadlines many weeks ahead of time. I also use a text file kept in my home directory for keeping track of to dos, and find when I don’t have as much to manage, I prefer the simplicity.
- git - version control - A personal git server running gitea. I just set this up, so I haven’t used it much yet. As github is becoming more of a big commercial entity, I find myself wanting to move away from it. Additionally, even with private repos on github, I do not assume my code is actually private. Some things I want an extra layer of hidden-ness on, like personal scripts. Or, there are things that I want copies of (like early CS projects) that don’t belong on a public site.
- mailinabox email - email server - I think everything is a little weirded out by how much google knows about us. Email reveals so much personal information, and google is known to scrape it all. Aside from these reasons, it’s also just cool to run your own email server. mailinabox takes care of a lot of the hard stuff in setting it up. This does require a seperate VPS.
- nextcloud - files, photos, contacts, calendar. Nextcloud can do just about everything else I used google for. It comes set up with mailinabox. I have all of my photos backed up to it automatically from my phone.
Local Services
- jellyfin - media server - The best open source media player I have found. I run it on my desktop that has all of my media files on it, and I can connect to the server from my phone, my laptop, or my roku. It does both video and audio, though the audio player is not perfect.
- invidious - youtube alternate frontend - Instead of youtube snooping on all of your data and giving in to the algorithm, invidious provides a different look for the website. It is minimal and works fast. I set up my own instance on my desktop so that I could keep my video history private, but I find that things like subscriptions do not automatically update. I hope to fix this problem, but until I do, I am using a firefox extension that redirects youtube videos to invidious.
- pi-hole - content blocker - Blocks trackers and ads before they even get onto your network. It works across all devices. Pi-hole certainly isn’t as perfect as an ad blocking extension, but unlike an ad blocker, it can work in non browser applications, and on mobile (though firefox on mobile supports extensions).
- weather station - local weather station - As mentioned a few posts ago, I set up a raspberry pi zero to log some data at my apartment.