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