Hosted Services

Here's a brief list of the services that the boj4ck cluster currently hosts with links to their respective repositories and a short description of what they do.

All tools listed on this page are free and open-source unless explicitly stated otherwise.

Most services require a Wireguard VPN client connection in order to access them.

Any services that with web frontends are served via a pair of nginx ingress controllers and automatically secured with self-renewing certificates 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
  • Synapse (Matrix)
    • Matrix homeserver with multiple users at @boj4ck.com
    • Allows for decentralized communication with end-to-end encryption amongst various social circles
    • FOSS alternative to Discord that some local scene and user groups use for communication
  • Concourse
    • CI/CD platform for various automation pipelines with great integrations and community support
    • Handles things like automatic redeployment of applications via Gitea webhooks, periodic key rotation, and more
    • Uses the awesome fly binary for interacting with the server meaning that all pipelines, resources, and setup can be done via CLI and code
  • 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
  • Syncthing
    • Barebones P2P solution for keeping files and folders in sync across devices
    • Good amount of native clients for mobile and desktop
    • Service runs on my NAS, acting as an always reachable client for an additional and resilient copy of the data

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 web shows/movies
  • Lidarr
    • Helps track albums and releases from all of my favorite bands and artists
    • All of my purchased digital downloads along with my ripped physical releases are properly tracked
    • Music is streamed to any room or device in my house via Lyrion (squeezelite) clients, check out the project listing
  • 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