The Mainframe

The Mainframe

This blog is selfhosted from my own server. Currently, I utilize UnRaid for my Operating System. It's an easy-to-use DIY NAS operating system with virtualization support, allowing for the installation of Docker Containers and Virtual Machines. Unraid specifically utilizes a 'Parity Drive' system to allow for disk failure protection. Instead of dedicating a large amount of hard drives to a RAID array, you can use One drive to maintain a stream of data that will emulate any missing or dead drive until it is replaced.

Last updated 2024-01-31


Hardware

CPU: Intel® Core™ i9-10850K CPU @ 3.60GHz

Motherboard: MSI Z590-A PRO

RAM: 128GB

Storage Space: 120TB usable space with Dual 14TB Parity Drives

Case: Fractal Define 7 XL


Applications

Grafana Stack

The "Grafana Stack" I use runs the amazing Ultimate Unraid Dashboard put together on the unraid forums by falconexe. I put together a guide to setting it up with DockerCompose on Unraid: https://github.com/HStep20/Ultimate-Unraid-Dashboard-Guide

  • Chronograf - A database explorer for InfluxDB. This isn't in the UUD normally, but I added it to my compose as I needed to look at the DB occasionally.
  • InfluxDB - A time series database built for a large volume of stats with a low footprint
  • telegraf-UUD - A service to store system statistics and write them to Influx
  • Unraid-API - A tool to pull information from the unraid system and push it to Influx. Things like current docker containers up/down, vms up/down, mover state, and more
  • Varken - A data aggregation tool that pulls data from plex and tautulli and pipes it into Influx for more stats
  • Grafana - The big daddy of dashboard. Currently configured to run the Ultimate Unraid Dashboard

Networking Utilities

  • NGinxProxyManager -Reverse proxy for dummies. Super easy setup with the click of a few buttons
  • Uptime Kuma - A self hosted 'UptimeRobot' to monitor running services
  • Authelia - A Single-Sign-On application to centralize logins for different services
  • Homer - A dashboard with flexible configuration. This dashboard hosts all my public services behind Authelia for friends with accounts to access
  • AdGuard Home - A selfhosted DNS server which can block reqests based on rules and blocklists. Great for blocking ads at a network level.
  • GoAccess - Reads Reverse-Proxy logs and visualizes the data to see information about any request that comes through the domain
  • Cloudflare-DDNS - A DDNS IP Updater for cloudflare domains to update your domain IP if you are assigned a new one by your ISP
  • Speedtest-Tracker - Graphs upload/download speeds and logs it with some nice graphs. Same name as the abandoned 'speedtest-tracker', different maintainer/project
  • Crowdsec - A 'modern' Fail2Ban-esque utility which crowdsources malicious IPs to ban. Feels a bit limited due to cloudflare-free's 1 list limit (10,000 IPs blocked total), but can hook into local firewalls as well.

Utilities

  • Kopia - A 'snapshot based' backup system, which backups up all of my data to BackblazeB2
  • Cronicle - A GUI based Cron job manager
  • Adminer - A GUI interface to look inside of and edit databases. Great for troubleshooting
  • Dozzle - One centralized app that displays logs from every docker container on your system.
  • DiskSpeed - A tool to benchmark and graph the speed of your current HDDs
  • Czkawka - A File Deduplication tool
  • ApacheGuacamole - Dark Magic born from eldritch gods and sacrificed goats. (Or just a tool that lets you access vm's/machines over the internet from any web browser. Seriously, I love this thing)
  • Krusader - A gui friendly file manager
  • LuckyBackup - A nice GUI frontend for RSYNC
  • Organizr - The best 'dashboard' I've ever used. It gives one centralized web page to access all of your apps using i-frames.
  • Scrutiny -Automatic SMART testing and tracking for all your hard drives
  • QDirStat - A fun visual of what is taking up the most storage space. Also great for when an app goes rogue, starts to fill up a directory, and needs to be located (true story)
  • Watchtower - Automatically updates containers
  • Netdata - A 'Live Status' tracker for system information like Ram, CPU, Network, Disk usage and more.

-ARRS

  • Sonaar - A tool for managing and automating TV Shows
  • Radarr - A tool for managing and automating Movies
  • Lidarr - A tool for managing and automating Music
  • Readarr - A tool for managing and automating Books/Audiobooks
  • Bazarr - A tool for managing and automating Subtitles
  • Prowlarr - A tool for centralizing indexers for the other -arr applications
  • qBittorrent - A torrent download client for the -arr applications
  • SABNZDB - A newsgroup download client for the -arr applications
  • ytdl-sub - A config-file driven Youtube-dlp wrapper for downloading channels, playlists, and videos. Ive set up a config to pipe videos directly into Jellyfin with the Jellyfin Youtube Metadata Plugin and it works great!

Media

  • Audiobookshelf - The Best Audiobook/Podcast server in the selfhosted space. My current favorite application.
  • Plex - A Media Server to serve media out to users.
  • Jellyfin - A backup for when Plex is acting up
  • Calibre-Web - I have two instances up: One for Fiction, One for Non-Fiction (PS. Someone smarter than me make a book requesting app, Thanks you)
  • Komga - A comic/PDF reader server. While it doesnt support ebooks at the moment, it has great client support for visual reading media. Paperback on IOS is amazing with Komga
  • Calibre-Web - Calibre can be pretty divisive, but personally I love it and am fine with the file system. Calibre Web acts as a frontend, AND a Kobo Sync server. If you own a kobo, you can treat your owned books as purchased books from the kobo store using this.
  • Ganymede - A Twitch.tv auto downloader and stream+chat playback application. Works incredibly, with a lot of nice features for archiving streams exactly as you want.

Media Adjacent

  • Plex-Meta-Manager - A hosted python script that lets you manage plex metadata/collections through YAML configurations. Need to nuke plex? Now you don't lose all your metadata along with it.
  • Tautulli - Stats and Information from plex
  • Overseerr - A plex request system. Originally used Petio, but the lack of updates moved me from it.
  • ErsatzTV - Lets you Emulate custom TV Channels of your own content, and connect it to plex/emby/jellyfin. The dev is amazing, and built out a lot of the Intel QuickSync functionality when I needed help with it.
  • JellyPlex-Watched - Simple app to sync the watch states of a Jellyfin and Plex instance.
  • Unmanic - A set it and forget it hardware transcoder. I use it just to remux mp4 into mkv on the host system that doesn't have a graphics card. I even wrote the plugin which makes it ignore 'Hardlinked' files
  • PlexAniSync - Syncs Plex Anime watched info with AniList.
  • PlexTraktSync - Syncs All Plex libraries with Trakt.tv - No premium account required
  • Plex-Auto-Languages - Automatically picks up when subtitles/audio tracks are changed, and sets them appropriately for the rest of the series in the background.

Photography

  • Piwigo - My Favorite photo gallery. It is very granular and can be customized to be just what you want. I have it set up to read lightroom tags, and build smart albums around tags, such as "5 star" & "Winter" & "Snow" to see all of my photos that fit that winter vibe.
  • Immich - One of the greatest Selfhosted projects. Full replacement for Google Photos with Face Detection, Object Search, external library support, and way more

Documents and Notes

  • Actual - A Selfhosted 'Envelope Budgeting' application, much like YNAB
  • Tandoor - A Recipe application, much like Mealie. Currently testing out for replacement.
  • Ghost - A personal blogging platform like Wordpress, but much 'Leaner'
  • OwnCloud - A Google Drive replacement
  • Snippet-Box - A 'sticky note' app for code snippets - I keep a lot of one-liners for minecraft and server admin
  • Gokapi - A lightweight, privacy focused file sharing service. Good to share media files with friends straight from the source
  • NocoDB - A hosted Airtable database alternative. I use this to host my 'hidden gem' recommendations each steam sale via an automated report. Accurate sale data is only updated for big sales, but you can see what that looks like here: https://ncdb.prosperitea.net/dashboard/#/nc/view/e7c1fbae-6048-456a-9a2e-8652ba9ffe03

Games

  • AMP - A centralized game server management panel for a ton of games. Closed Source and a One Time Fee of like $8, but totally worth it. Pterodactyl Panel is an open source alternative, for those against Closed Source Self Hosting. Cant express how much I love this application for game hosting
  • FountryVTT - Closed Source Virtual TableTop for RPG gaming. This is where I'd host my games online, if I had friends for it.
  • GameVault - A server + Client setup to selfhost your own game distribution platform. Great to host your GOG/DRM Free purchased games on and download to any PC
  • Red-Discordbot - A modular selfhosted discord bot with RhythmBot capabilities and a massive community of 'cogs' you can add on to it as you desire.

Testing Out

  • Vikunja - A selfhosted to-do app to keep productive and keep tasks in order for projects.
  • Paperless-NGX - A community supported version of Paperless for scanning, indexing, and archiving all of your physical documents
  • Gitea - A selfhosted 'github'. Trying to use with Godot for LFS game dev storage, but not quite sold on it yet.
  • LubeLog - A Car-Maintenence log of what you've serviced, when, and for how much

Custom Containers

  • dcss-webtiles - A selfhosted version of Dungeon Crawl Stone Soup so I can play on my server from wherever I am

Moving On

  • TubeArchivist - A selfhosted youtube frontend and downloader all in one. I ended up not liking the lack of features in regards to playback (like shuffling videos), so I switched back to Tubesync and Jellyfin + Youtube Metadata Plugin for playback, then switched to ytdl-sub
  • TubeSync - A tool for managing automated youtube downloading. The development is way too slow, and crucial features (like sponsorblock integration) are missing after multiple years.
  • Homechart - A centralized 'life tool' that includes Budget Management, A Calendar, A recipe book, Inventory, Project planning, and more. It felt too 'in it's infancy', pushed its purchased subscription option, and was essentially a collection of less mature tools I already use. On top of that, they now charge a monthly fee for you to run it on your own hardware.
  • Tdarr - A distributed Transcoding system for media. I found my videos came out too lossy, and I preferred the Original Source quality more in my 'home theater' setup.
  • Portfolio-Performance - It was a desktop app running in a container, so I was always on the lookout for a new solution. The recent emergence of 'Ghostfolio' finally provided an out to do that through
  • Mealie - I ended up moving to Tandoor since it had a more robust feature set, but I still keep Mealie around. I had some comments of when I made dishes that don't import into Mealie (yet), but a 'fuller' import load is being worked on for Tandoor
  • Cloudberry Backup - A GUI Backup tool for those too intimidated by commandline for cloud storage backups. Has a yearly cost associated, on top of a HIDDEN 5TB limit. Once you back up 5tb of data across any number of sources (I had 3 backup sources, for 2tb of data), then it will just fail your jobs every time. Absolute bullshit for a paid product
  • Firefly III - Firefly is more of a 'Descriptive' budgeting app, whereas Actual (the one I use now), is more 'Prescriptive'. I found that the Prescriptive style of budgeting worked better for me
  • DuckDNS - Updates dynamic dns when it changes at the ISP level. I use cloudflare proxies anyways, so I moved to the Cloudflare DDNS container
  • Speedtest-Tracker - Tests Up/Down speed, and logs it with some nice graphs. Unfortunately abandoned, but a new project with the same name has showed up that I use now
  • Kavita - A web reader for any type of 'book' file like pdf, cbz, or epub. I like it quite a bit, but Komga worked better for visual media like I needed, and had better client support.
  • PASTA - Plex Audio & Subtitle Track Changer: Lets you set priority subtitles or audio tracks for all your plex media in a nice WebUI. I replaced it with PlexAutoLanguages, as it does all the work of PASTA automatically in the background.
  • PhotoPrism - Immich Happened
  • Photoview - Immich Happened

VMs

  • Home Assistant - A versatile home automation tool. I started off using a container for it, but moved to a vm once I started running into some of the limitations of running it in Docker.
  • Ubuntu - A replacement for Code-Server. I couldn't access the code server properly behind a reverse proxy, so instead I just started using a VM for development.
  • Kali Linux - A penetration testing focused distro which contains a vast array of tools and utilities for cyber security focused tasks.