Add homelab inventory
This commit is contained in:
parent
6ee2e2cb46
commit
d5ff049cae
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue