No description
  • Nix 72.5%
  • Python 9.9%
  • Shell 7.2%
  • TypeScript 3.1%
  • RouterOS Script 1.7%
  • Other 5.6%
Find a file
Doridian 658dc03f06
All checks were successful
/ deploy (islandfox.foxden.network) (push) Successful in 24s
/ lint (push) Successful in 45s
/ deploy (bengalfox.foxden.network) (push) Successful in 47s
/ deploy (icefox.foxden.network) (push) Successful in 52s
Allow manually enrolling a disk
2026-02-10 12:58:45 -08:00
.forgejo/workflows Try adding push 2026-01-25 19:40:18 -08:00
mikrotik Lock file maintenance (#59) 2026-02-08 20:35:44 -08:00
nix Allow manually enrolling a disk 2026-02-10 12:58:45 -08:00
terraform Lock file maintenance (#59) 2026-02-08 20:35:44 -08:00
.gitignore just in case 2026-01-14 20:04:24 -08:00
IDEAS.md move aropund 2025-12-31 17:31:43 -08:00
LICENSE move 2025-10-16 11:14:46 -07:00
README.md Revert "Remove redfox" 2026-02-04 11:22:55 -08:00
renovate-local.json schema 2025-12-07 17:31:52 -08:00
renovate.json chore(reposyncer): update repo baseline (#31) 2025-12-07 17:36:02 -08:00

FoxDen core

This is the monorepo to control the FoxDen homelab pretty much in its entirety.

A from-zero setup of router, router-backup or redfox is currently impossible. Hence we keep regular backups of those devices around.

I am not sure whether I plan to instrument RouterOS enough to make this possible or not, especially since dynamic portions of RouterOS config, such as DynDNS keys, DNS entries and even firewall rules are already under management.

Machines

BengalFox

  • Locator: Rack; 2U, Supermicro chassis
  • OS: NixOS
  • CPU: Dual Xeon E5-2690v4
  • RAM: 256GB, DDR4-ECC, 2400 MT/s
  • Storage:
    • nix: XFS: RAID1: 2 * 2TB NVMe SSD
    • zhdd: ZFS:
      • RAIDZ2: 8 * 18 TB SATA3 HDD
      • metadata special RAID1: 2 * 1TB SAS3 SSD (partition)
    • zssd: XFS: RAID1: 2 * 3TB SAS3 SSD (partition)
  • Network: 25GbE (SFP28; Mellanox ConnectX-6 Dx)

IslandFox

  • Locator: Rack; Lenovo tiny mini-PC
  • OS: NixOS
  • CPU: AMD Ryzen 7 PRO 470GE
  • RAM: 64GB, DDR4, 3200 MT/s
  • Storage:
    • nix: XFS: RAID1: 2TB NVMe SSD + 2TB SATA3 SSD
  • Network: 1GbE (RJ45)

IceFox

  • Locator: OVH
  • OS: NixOS
  • CPU: Xeon D-2141I
  • RAM: 32GB, DDR4, 2133 MT/s
  • Storage:
    • nix: xfs: RAID1: 2 * 480GB SATA3 SSD
    • ztank: ZFS:
      • MIRROR: 2 * 8 TB SATA3 HDD
  • Network: 1GbE (no traffic limit)

RedFox

  • Locator: Vultr
  • OS: MikroTik RouterOS
  • CPU: 1 vCPU "Intel high performance"
  • RAM: 1 GB
  • Storage: vdisk 25 GB NVMe SSD
  • Network: >= 1GbE (max 2 TB traffic)

Router

  • Locator: Rack; 1U, white MikroTik CCR2004
  • OS: MikroTik RouterOS
  • CPU: 4 core ARM64 "AL32400"
  • RAM: 4 GB
  • Storage: 128 MB NAND
  • Network:
    • LAN: 25 GbE (SFP28)
    • WAN: 10 GbE (SFP+)

Router Backup

  • Locator: Rack; 1U, black MikroTik RB5009
  • OS: MikroTik RouterOS
  • CPU: 4 core ARM64 "88F7040"
  • RAM: 1 GB
  • Storage: 1 GB NAND
  • Network:
    • LAN: 10 GbE (SFP+)
    • WAN: 2.5 GbE (RJ45)

TODO: Not-yet automated update cycles

  • Every GitHub release artifact download where upstream does not have a digest (likely big files, currently carvera-controller and njs/acme.js)
  • ZFS Linux kernel lag-behind
  • Kanidm version in nix
  • Anything RouterOS

Notes

  • zfs must be mountpoint=legacy
  • DO NOT use /var/run, always use /run, or the entire OS explodes