Add homelab inventory

This commit is contained in:
juvdiaz 2026-06-27 16:31:04 -06:00
parent 6ee2e2cb46
commit d5ff049cae
3 changed files with 116 additions and 0 deletions

View File

@ -30,6 +30,13 @@ The lab is intentionally small but production-shaped:
Tailscale, with nginx caching, gzip, HTTP/2, TLS session reuse, and upstream Tailscale, with nginx caching, gzip, HTTP/2, TLS session reuse, and upstream
keepalive keepalive
## Inventory
The canonical non-secret inventory is [homelab.yml](homelab.yml). Keep LAN IPs,
Tailscale IPs, public hostnames, ports, storage paths, and service ownership
there before copying values into scripts, OpenTofu variables, runbooks, or
service docs. Secrets and tokens do not belong in that file.
Run `./jeannie up` and `./jeannie nuke` only from the Debian homelab server. The Run `./jeannie up` and `./jeannie nuke` only from the Debian homelab server. The
script intentionally refuses to run from non-Debian machines so a laptop cannot script intentionally refuses to run from non-Debian machines so a laptop cannot
accidentally modify the cluster. accidentally modify the cluster.

View File

@ -30,6 +30,13 @@ The lab is intentionally small but production-shaped:
Tailscale, with nginx caching, gzip, HTTP/2, TLS session reuse, and upstream Tailscale, with nginx caching, gzip, HTTP/2, TLS session reuse, and upstream
keepalive keepalive
## Inventory
The canonical non-secret inventory is [homelab.yml](homelab.yml). Keep LAN IPs,
Tailscale IPs, public hostnames, ports, storage paths, and service ownership
there before copying values into scripts, OpenTofu variables, runbooks, or
service docs. Secrets and tokens do not belong in that file.
Run `./{{ main_script }} up` and `./{{ main_script }} nuke` only from the Debian homelab server. The Run `./{{ main_script }} up` and `./{{ main_script }} nuke` only from the Debian homelab server. The
script intentionally refuses to run from non-Debian machines so a laptop cannot script intentionally refuses to run from non-Debian machines so a laptop cannot
accidentally modify the cluster. accidentally modify the cluster.

102
homelab.yml Normal file
View File

@ -0,0 +1,102 @@
# Canonical non-secret homelab inventory.
# Keep hostnames, IPs, ports, and public names here before copying them into
# scripts, Terraform variables, runbooks, or service docs.
metadata:
main_script: jeannie
owner_user: jv
domain:
base: lab2025.duckdns.org
public_url: https://lab2025.duckdns.org
gitea_url: https://lab2025.duckdns.org/git/
subdomains:
- demos.lab2025.duckdns.org
- heimdall.lab2025.duckdns.org
- grafana.lab2025.duckdns.org
- prometheus.lab2025.duckdns.org
- alertmanager.lab2025.duckdns.org
- argocd.lab2025.duckdns.org
- n8n.lab2025.duckdns.org
- prowlarr.lab2025.duckdns.org
- sonarr.lab2025.duckdns.org
- radarr.lab2025.duckdns.org
- qbittorrent.lab2025.duckdns.org
- kapowarr.lab2025.duckdns.org
- suwayomi.lab2025.duckdns.org
- maintainerr.lab2025.duckdns.org
network:
lan_cidr: 192.168.100.0/24
lan_ip_prefix: 192.168.100.
metallb:
traefik_ip: 192.168.100.240
address_pool: 192.168.100.240-192.168.100.250
tailscale_cgnat_cidr: 100.64.0.0/10
hosts:
debian:
role: control-plane
user: jv
lan_ip: 192.168.100.73
tailscale_ip: 100.85.138.30
docker_root: /data/docker
data_root: /data
kubeconfig: /home/jv/.kube/config
rpi4:
role: dns-edge-worker
user: jv
lan_ip: 192.168.100.89
tailscale_ip: 100.77.80.72
docker_nvme_root: /nvme-storage/docker
docker_fallback_root: /var/lib/docker
opi5_pimox:
role: pimox
user: jv
lan_ip: 192.168.100.80
bridge: vmbr0
worker_storage: opi5_ssd
template_storage: local
oci_edge:
role: public-edge
user: ubuntu
public_ip: 132.145.170.74
install_dir: /opt/homelab-edge
services:
gitea:
host: debian
install_dir: /data/homelab-gitea
http_port: 3000
ssh_port: 32222
root_url: https://lab2025.duckdns.org/git/
ssh_remote: ssh://git@192.168.100.73:32222/jv/my-homelab-configs.git
gitops_mirror:
host: debian
path: /home/jv/git-server/my-homelab-configs.git
ssh_url: ssh://jv@192.168.100.73/home/jv/git-server/my-homelab-configs.git
local_registry:
host: debian
endpoint: 192.168.100.73:30500
provisioning:
host: debian
http_port: 8088
preseed_url: http://192.168.100.73:8088/preseed/debian13-arm64-worker.cfg
ollama:
host: debian
url: http://192.168.100.73:11434
rpi_dns:
host: rpi4
pihole_dns_port: 53
pihole_web_port: 8081
uptime_kuma_port: 3001
unbound_container_port: 53
traefik:
host: kubernetes
load_balancer_ip: 192.168.100.240
http_port: 80
pimox:
template_vmid: 9000
worker_base_vmid: 9010
default_worker_count: 1
worker_name_prefix: pimox-worker