https://github.com/jhillyerd/homelab
nixos + nomad configs for my homelab
https://github.com/jhillyerd/homelab
consul nixos nomad
Last synced: about 1 year ago
JSON representation
nixos + nomad configs for my homelab
- Host: GitHub
- URL: https://github.com/jhillyerd/homelab
- Owner: jhillyerd
- License: mit
- Created: 2020-04-25T05:45:30.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2025-05-03T16:01:53.000Z (about 1 year ago)
- Last Synced: 2025-05-03T17:19:02.402Z (about 1 year ago)
- Topics: consul, nixos, nomad
- Language: Nix
- Homepage:
- Size: 1010 KB
- Stars: 27
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nomad - jhillyerd/homelab - A NixOS and Nomad-based configuration project for managing and monitoring a home lab environment with automated telemetry, logging, and workload orchestration. (Infrastructure setup / Automation and Infrastructure Management)
README
# homelab
- `ansible`: My ansible config to capture telemetry and syslogs from Raspberry
Pis.
- `baseimage`: Flakes for generating minimal NixOS images for VMs and SD cards.
- `esphome`: My esphome (ESP32 + Home Assistant) configs.
- `nixos`: My NixOS home lab system configs flake.
## Diagrams
### Machines
```mermaid
graph TD
wan((WAN)) --- gw{{Gateway}}
gw --- lan{LAN}
nc1("nc-um350-1
(nomad client)") --- lan
nc2("nc-um350-2
(nomad client)") --- lan
nas("skynas
(NAS)") --- lan
lan --- pve1
lan --- pve2
lan --- pve3
subgraph pve1 ["pve1 (hypervisor)"]
direction RL
nexus("nexus")
witness("witness")
end
subgraph pve2 ["pve2 (hypervisor)"]
direction RL
kube2("kube2")
scratch("scratch")
end
subgraph pve3 ["pve3 (hypervisor)"]
direction RL
ci-runner1("ci-runner1")
eph("eph")
fastd("fastd")
kube1("kube1")
metrics("metrics")
web("web")
end
```
### Monitoring
```mermaid
graph LR
ha([home assistant]) ---> influxdb
subgraph nixos ["all nixos nodes"]
nix-telegraf([telegraf])
nix-syslog([syslog])
end
subgraph nomad-nodes ["all nomad client nodes"]
nomad([nomad client]) --> nomad-telegraf([telegraf])
docker([docker logs]) --> nomad-vector([vector])
end
subgraph metrics ["node: metrics"]
metrics-telegraf(["telegraf
- ping checks
- url checks"])
metrics-telegraf --> influxdb([influxdb])
loki([loki])
nix-telegraf ---> influxdb
nix-syslog ---> loki
nomad-telegraf --> influxdb
nomad-vector --> loki
end
influxdb -.-> grafana([grafana])
loki -.-> grafana
```