Hosted Services
This page will be a brief list of the services that I currently host on the BOJ4CK K8s cluster.
All tools listed on this page are open-source unless explicitly stated otherwise.
Very few of the services are exposed to the internet, with most services relying on a Wireguard VPN server running on OpenWRT on my home router.
Those services that do require exposure to the internet are hosted over https using an NGINX ingress controller with automatic certificate retrieval via Let's Encrypt and certbot.
Tools and Utilities
-
Vaultwarden
- Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
- An awesome password manager with clients available on many platforms
- By self-hosting the service, you automatically get all the premium features for free
-
Joplin Server
- Great markdown note-taking app with a native client on Linux and Android as well as a great TUI app
- The server portion allows all of the clients to keep their notes in-sync with end-to-end encryption
-
Gitea
- A painless self-hosted Git instance
- Relatively full-featured web ui with many of the features Github users are accustomed to
-
Wireguard
- Great layer 3 VPN service that's fast and very simple to configure clients for
- The server process runs on my DD-WRT router so that I can always get to my LAN despite the K8s cluster status
- Allows for most of the applications to live unexposed to the internet while still being easily accessible
- KDE allows for configuration within NetworkManager, there is an Android app, and a dedicated CLI app as well
-
Transmission Web
- A simple Web GUI for my BitTorrent client of choice
- Allows for an OpenVPN config file to be provided to the container and for the connection to automatically exit if the tunnel is dropped
-
Synapse (Matrix)
- Matrix homeserver with multiple users at @boj4ck.com
- Allows for decentralized communication with end-to-end encryption amongst various social circles
- Great alternative to Discord and I'm always excited to try out new federated communication services
Media Management and Streaming
-
Immich
- Complete photo and video management/backup tool with facial recognition, smart search, multi-user libraries, and automatic backup.
- Essentially a self-hosted Google Photos with feature-parity, a mobile app, and a great API.
- Uses a Postgres table backend and allows for a dedicated "remote" machine-learning server for the computationally intensive tasks.
- Using tools like immich-go or their dedicated CLI migrating from Google Photos or Photoprism is painless.
-
Lyrion Media Server
- Local music streaming solution, allowing for multi-room synchronized playback of my digital music library as well as music from various streaming services like Spotify.
- LMS server is running within the Boj4ck cluster, while players are comprised of clients running squeezelite (Linux/Windows PCs), SB Player (Android TVs), and piCorePlayer (Raspberry Pis).
-
PS3netsrv
- Software for streaming video games from a remote server to any PS3 consoles running custom firmware.
- Rom directories on my NAS are mounted as a PVC on the application's k8s statefulset and allow ps3, ps2, psx, and countless retro systems to be streamed to TVs throughout my house.
-
Prowlarr
- Simple API to manage various usenet and p2p trackers
- Exposes endpoints for querying individual trackers or querying all of them using a Torznab indexer
- Configured as my indexer for most of the *arr services
- The specific container image I selected also has the ability to pass an OpenVPN config file so that the container spawns with a L2 VPN tunnel connection only
-
Sonarr ands Radarr
- Helps track various shows (Sonarr) and movies (Radarr), their release schedules, and act as an internet PVR
- Configured to automatically query the indexer on new releases of various legal web shows/movies
- Found items that meet set quality and other criteria are sent off to the download client and tagged
- After download the files are automatically imported into the media library
-
Plex
- I've used Plex for a number of years to stream my movies, shows, and other media to my various devices with quite a few users
- While it's very feature-rich, I've recently been disappointed by the direction the app has been moving in
- It also doesn't support a proper database backend and instead relies on Sqlite which doesn't play well with a HA multi-node cluster like BOJ4CK
- It's also closed-source so I'm not sure what types of user data they're collecting
- For these reasons and a few more, I'm currently in the process of migrating fully to JellyFin
-
Calibre Web
- Calibre is a great solution for keeping your eBooks centrally stored and accessible on all of your devices
- I've got a deployment set up with two containers, one for the database for Calibre and one for Calibre Web
- This specific container image hosts a web app for browsing, reading and downloading eBooks stored in a Calibre database
-
Photoprism
- Web based photo gallery with some pretty cool local AI powered features
- Supports backup via the WebDAV protocol, so I've set my phone to automatically upload new photos when charging
- Uses a Postgres database table to keep track of everything, so indexing is relatively fast
- I used PhotoPrism for a few years, but ultimately replaced it with Immich. Photoprism still runs as a secondary/backup solution for my photos.
Monitoring and Reporting
-
Elasticsearch, Logstash, and Kibana
- This stack allows for aggregation and analysis of all of my application logs
- Elasticsearch is a distributed search and analytics engine.
- Logstash is the data ingestion tool that allows for collection and delivery of the data
- Kibana is the actual data visualization and exploration tool to allow for analysis and alerting on log based events
-
Prometheus
- Very robust monitoring system that allows for querying and alerting its time-series database of scraped exporter data
- I have various exporters configured for cluster, device, and app level data scraping
- I also have a number of alert rules configured to notify me during certain events
-
Grafana
- Data visualization tool for all of my time-series data collected from the Prometheus exporters
- Created a bunch of dashboards with Terraform to view resource usage during periods of high load with concurrent users