/hashi-homelab

Hashicorp 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.

Primary LanguageShellApache License 2.0Apache-2.0

Hashi Homelab

Cluster

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.