Hashi Homelab
Hashi Homelab
is a collection of nomad
recipes related to several Open Source projects that I use on my own Nomad + Consul + Vault
+ Intel Nuc
cluster.
✅ Supported services
-
AlertManager: Alertmanager handles alerts sent by client applications such as the Prometheus server.
-
Aleth: Alethio's Light Weight Open Source Ethereum Explorer
-
Bazarr: A companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements.
-
Besu: An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client.
-
Bitwarden: Unofficial Bitwarden compatible server written in Rust.
-
Calibre-Web: Web app for browsing, reading and downloading eBooks stored in a Calibre database.
-
Deluge: Deluge BitTorrent client.
-
Emby: Emby media server.
-
Grafana: The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
-
Guacamole: Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
-
Heimdall: An Application dashboard and launcher.
-
IPFS: Peer-to-peer hypermedia protocol.
-
Jackett: API Support for your favorite torrent trackers.
-
Karma: Alert dashboard for Prometheus Alertmanager.
-
Loki: Like Prometheus, but for logs.
-
Medusa: Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.
-
Mikrotik-Exporter: Prometheus mikrotik device(s) exporter.
-
LazyLibrarian: LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.
-
Miniflux: A self-hosted, anti-social RSS reader.
-
Mylar: An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.
-
n8n: Extendable workflow automation.
-
Nzbget: The most efficient usenet downloader.
-
NzbHydra2: NZBHydra 2 is a meta search for newznab indexers and torznab trackers.
-
Pgweb: Cross-platform client for PostgreSQL databases.
-
PiHole: Network-wide Ad Blocking.
-
Plex: Plex media server.
-
Postgres: The best SQL database of the world.
-
Prometheus: The Prometheus monitoring system and time series database.
-
Radarr: A fork of Sonarr to work with movies à la Couchpotato.
-
Readarr: Readarr is a ebook collection manager for Usenet and BitTorrent users.
-
RetroArch: RetroArch is a frontend for emulators, game engines and media players.
-
Sabnzbd: Free and easy binary newsreader.
-
Sonarr: Smart PVR for newsgroup and bittorrent users.
-
Traefik: A simple to use front-end proxy.
-
Transmission: A fast, easy and free Bittorrent client.
-
Turbogeth: Turbo-Geth is a fork of Go-Ethereum with focus on performance.
Note: These services are configured towards my necessities so, make sure to review properly each service and adjust accordingly.
Packer
Included in this repository there are two packer
images:
-
nomad
: Allows to configure a cluster of VM server / clients of Nomad clusters.
-
wireguard
: Allows to configure easily a VM for Wireguard to have remote access.
Both images utilizes Packer's Proxmox builder. If you wan't to build them, make sure you have configured correctly your *.json
settings accordingly to your Proxmox machine.
For nomad
image:
$ cd packer/nomad
$ packer build client.json
$ packer build server.json
For wireguard
image:
$ cd packer/wireguard
$ packer build wireguard.json
Note: Review properly the contents of each image as I include certain configurations related to my cluster and you may don't want / need those.
Deploy a recipe
If you have your nomad
cluster ready, to deploy a recipe:
$ make deploy-postgres // or any other supported service
Make sure your .envrc
settings are pointing correctly to your nomad
server. Other commands are available, check out the Makefile
!
💻 Contribute
Feel free to send a PR to add a new service or to correct any potential mistake you may find.
🙌 Acknowledgements
The initial idea was inspired by the work of perrymanuk in his hashi-homelab
repository.
✍️ License
This project is licensed under the Apache 2.0 license. See LICENSE for more details.