37c86313be76060ea6b0ee5be0e6b77129f0195e
Root's login shell is now /bin/zsh (5.9, staged in /boot/extra so rc.local reinstalls it at boot). bash stays the fallback; both shells source one shared env and alias file. Shell config consolidated on the flash drive at /boot/config/shell/, installed by install.sh from both boot paths, which were previously fighting over /root/.bashrc. Four things that were silently broken are fixed: - /boot/config/passwd cannot set root's shell at all — rc.S.cont reads it but hardcodes /bin/bash. The change is made from the go file instead, guarded so a missing zsh falls back to bash rather than locking root out. - git refused to work in every project share (dubious ownership: owned by jazzymc, not root), which silently emptied every branch lookup. safe.directory entries added. - /root/.gitconfig was in RAM, so the credential helper and store died at every reboot. - Login shells lost the custom PATH, because /etc/zprofile hardcodes it after ~/.zshenv. Also fixed the literal backslash in the go file's shebang. Documents the Shell Environment section and corrects the Boot Sequence, which the go file change made out of date. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
XTRM Home Lab Infrastructure
Domain: xtrm-lab.org Repository: https://git.xtrm-lab.org/jazzymc/infrastructure
Quick Reference
| Resource | Address |
|---|---|
| Dashboard | https://xtrm-lab.org |
| NetBox | https://netbox.xtrm-lab.org |
| Git | https://git.xtrm-lab.org |
| CI/CD | https://ci.xtrm-lab.org |
| DNS Primary | dns.xtrm-lab.org |
| DNS Secondary | dns2.xtrm-lab.org |
| Failover VIP | 192.168.10.250 |
Documentation Structure
docs/
├── 01-NETWORK-MAP.md # Network topology, IPs, Docker networks
├── 02-SERVICES-CRITICAL.md # DNS, Auth, Routing - must stay up
├── 03-SERVICES-OTHER.md # All other services
├── 04-HARDWARE-INVENTORY.md # Physical devices, specs, serials
├── 05-PORT-UTILIZATION.md # Device port assignments
├── 06-VLAN-DEVICE-ASSIGNMENT.md # VLAN device mapping
├── 07-WIFI-CAPSMAN-CONFIG.md # WiFi and CAPsMAN settings
├── 08-DNS-ARCHITECTURE.md # DNS failover architecture
├── 09-TAILSCALE-VPN.md # Tailscale VPN setup
├── 10-FAILOVER-NOBARA.md # VRRP failover to Nobara workstation
├── CHANGELOG.md # Change history
├── archive/ # Completed/legacy docs
│ └── vlan-migration/ # VLAN migration project artifacts
├── incidents/ # Incident reports
└── wip/ # Work in progress
Key Devices
| Device | IP | Role |
|---|---|---|
| HAP1 | 192.168.10.1 | Router, DNS, WiFi Controller |
| XTRM-U | 192.168.10.20 | Production Server (Unraid) |
| XTRM-Nobara | 192.168.10.103 | Failover Node (Nobara Linux) |
| CSS1 | 192.168.10.3 | Distribution Switch |
| ZX1 | 192.168.10.4 | Core Switch (2.5G) |
| CAP | 192.168.10.6 | Wireless Access Point |
SSH Access
# Unraid
ssh -i ~/.ssh/id_ed25519_unraid root@192.168.10.20 -p 422
# MikroTik Router
ssh -i ~/.ssh/mikrotik_key -p 2222 xtrm@192.168.10.1
# Nobara (failover node)
ssh nobara
Emergency Recovery
- DNS down? → Automatic failover to 192.168.10.10 (secondary), see
08-DNS-ARCHITECTURE.md - Internet down? → Check HAP1 at 192.168.10.1
- Services down? → Check Unraid at 192.168.10.20
- Unraid maintenance? → VRRP failover to Nobara (192.168.10.250 VIP), see
10-FAILOVER-NOBARA.md - Full outage? → See
02-SERVICES-CRITICAL.mdstartup order
Change Management
- Major changes: Document in
CHANGELOG.md - Minor changes: Git commit messages only
- Planned work: Create doc in
wip/folder
CI/CD
Woodpecker CI at https://ci.xtrm-lab.org
Pipelines trigger on push to this repository.
Languages
RouterOS Script
81.6%
Shell
18.4%