No description
  • Nix 73.2%
  • Python 9.2%
  • Shell 7.6%
  • TypeScript 2.8%
  • HCL 1.5%
  • Other 5.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Doridian 05ccde7567
All checks were successful
/ deploy (islandfox.foxden.network) (push) Successful in 22s
/ deploy (bengalfox.foxden.network) (push) Successful in 32s
/ lint (push) Successful in 53s
/ deploy (icefox.foxden.network) (push) Successful in 26s
aaaaaa
2026-08-08 10:30:25 -07:00
.forgejo/workflows Do not lint on lockfile changes 2026-08-08 09:44:41 -07:00
mikrotik Add in received header 2026-08-06 15:13:23 -07:00
nix aaaaaa 2026-08-08 10:30:25 -07:00
terraform Add store_type to silence warning 2026-08-08 09:47:20 -07:00
.gitignore just in case 2026-01-14 20:04:24 -08:00
.sops.yaml Move state local 2026-06-20 13:11:05 -07:00
git-sops Move state local 2026-06-20 13:11:05 -07:00
LICENSE move 2025-10-16 11:14:46 -07:00
README.md Update redfox specs 2026-03-26 18:35:50 -07:00
renovate-local.json Remove UniFi OS Server package 2026-07-26 12:09:04 -07:00
renovate.json chore(reposyncer): update repo baseline (#140) 2026-07-29 07:56:39 -07:00
update-all.sh Oh yeah 2026-06-13 17:26:22 -07: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; Miniforum UM980 Pro
  • OS: NixOS
  • CPU: AMD Ryzen 9 PRO 8945HS
  • RAM: 96GB, DDR5, 5600 MT/s
  • Storage:
    • nix: XFS: RAID1: 2 * 2TB NVMe SSS
  • Network: 25GbE (SFP28; Mellanox ConnectX-4 Lx USB4)

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: 2 GB
  • Storage: vdisk 50 GB NVMe SSD
  • Network: >= 1GbE (max 3 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