Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aldoborrero/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.
https://github.com/aldoborrero/hashi-homelab

bitwarden hashicorp-homelab lazylibrarian nomad nomad-jobs sabnzbd sonarr

Last synced: about 2 months ago
JSON representation

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.

Awesome Lists containing this project

README

        

# Hashi Homelab

![Cluster](.assets/cluster.jpeg)

`Hashi Homelab` is a collection of [`nomad`](https://www.nomadproject.io/) recipes related to several Open Source projects that I use on my own `Nomad + Consul + Vault` + `Intel Nuc` cluster.

## ✅ Supported services

- [AlertManager](https://www.prometheus.io/docs/alerting/latest/alertmanager/): Alertmanager handles alerts sent by client applications such as the Prometheus server.
- [Aleth](https://github.com/Alethio/ethereum-lite-explorer): Alethio's Light Weight Open Source Ethereum Explorer
- [Bazarr](https://www.bazarr.media/): A companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements.
- [Besu](https://github.com/hyperledger/besu): An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client.
- [Bitwarden](https://github.com/dani-garcia/bitwarden_rs): Unofficial Bitwarden compatible server written in Rust.
- [Calibre-Web](https://github.com/janeczku/calibre-web): Web app for browsing, reading and downloading eBooks stored in a Calibre database.
- [Deluge](https://github.com/deluge-torrent/deluge): Deluge BitTorrent client.
- [Emby](https://hub.docker.com/u/emby): Emby media server.
- [Grafana](https://github.com/grafana/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](https://guacamole.apache.org/): Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
- [Heimdall](https://github.com/linuxserver/Heimdall): An Application dashboard and launcher.
- [IPFS](https://github.com/ipfs/ipfs): Peer-to-peer hypermedia protocol.
- [Jackett](https://github.com/Jackett/Jackett): API Support for your favorite torrent trackers.
- [Karma](https://github.com/prymitive/karma): Alert dashboard for Prometheus Alertmanager.
- [Loki](https://github.com/grafana/loki): Like Prometheus, but for logs.
- [Medusa](https://github.com/pymedusa/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](https://github.com/nshttpd/mikrotik-exporter): Prometheus mikrotik device(s) exporter.
- [LazyLibrarian](https://lazylibrarian.gitlab.io/): LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.
- [Miniflux](https://github.com/swanson/miniflux): A self-hosted, anti-social RSS reader.
- [Mylar](https://github.com/evilhero/mylar): An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.
- [n8n](https://n8n.io/): Extendable workflow automation.
- [Nzbget](https://nzbget.net/): The most efficient usenet downloader.
- [NzbHydra2](https://github.com/theotherp/nzbhydra2/): NZBHydra 2 is a meta search for newznab indexers and torznab trackers.
- [Pgweb](https://sosedoff.github.io/pgweb/): Cross-platform client for PostgreSQL databases.
- [PiHole](https://pi-hole.net/): Network-wide Ad Blocking.
- [Plex](https://www.plex.tv/): Plex media server.
- [Postgres](https://www.postgresql.org/): The best SQL database of the world.
- [Prometheus](https://github.com/prometheus/prometheus): The Prometheus monitoring system and time series database.
- [Radarr](https://github.com/Radarr/Radarr): A fork of Sonarr to work with movies à la Couchpotato.
- [Readarr](https://readarr.com/): Readarr is a ebook collection manager for Usenet and BitTorrent users.
- [RetroArch](https://www.retroarch.com/): RetroArch is a frontend for emulators, game engines and media players.
- [Sabnzbd](https://sabnzbd.org/): Free and easy binary newsreader.
- [Sonarr](https://github.com/Sonarr/Sonarr): Smart PVR for newsgroup and bittorrent users.
- [Traefik](https://traefik.io/): A simple to use front-end proxy.
- [Transmission](https://transmissionbt.com/): A fast, easy and free Bittorrent client.
- [Turbogeth](https://github.com/ledgerwatch/turbo-geth): 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`](https://www.packer.io/) 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](https://www.packer.io/docs/builders/proxmox/iso). If you wan't to build them, make sure you have configured correctly your `*.json` settings accordingly to your Proxmox machine.

For `nomad` image:

```bash
$ cd packer/nomad
$ packer build client.json
$ packer build server.json
```

For `wireguard` image:

```bash
$ 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:

```bash
$ 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](https://github.com/perrymanuk) in his [`hashi-homelab`](https://github.com/perrymanuk/hashi-homelab) repository.

## ✍️ License

This project is licensed under the Apache 2.0 license. See [LICENSE](LICENSE) for more details.