Commit Graph

344 Commits

Author SHA1 Message Date
zuckerberg f4a4edf478 fix networking online target + ntfy notifications
Check Flake / check-flake (push) Successful in 3m36s
2026-02-25 23:24:23 -08:00
zuckerberg 1ac3f05e3e define vpn container hosts within containers too 2026-02-25 23:23:49 -08:00
zuckerberg c1030c1dfe remove debugging messages
Check Flake / check-flake (push) Successful in 3m28s
2026-02-25 00:31:31 -08:00
zuckerberg 52469693e3 maybe fix
Check Flake / check-flake (push) Successful in 3m17s
2026-02-25 00:25:15 -08:00
zuckerberg ffce43b8d0 debug
Check Flake / check-flake (push) Has been cancelled
2026-02-25 00:22:07 -08:00
zuckerberg 96a6007693 debug 2026-02-25 00:14:19 -08:00
zuckerberg 32cb438db9 networking fixes
Check Flake / check-flake (push) Successful in 3m20s
2026-02-25 00:10:49 -08:00
zuckerberg 0368661e24 networking fixes
Check Flake / check-flake (push) Has been cancelled
2026-02-25 00:08:27 -08:00
zuckerberg 12209b69b8 networking fixes
Check Flake / check-flake (push) Successful in 3m21s
2026-02-24 23:55:02 -08:00
zuckerberg 3bc41dfdb3 networking fixes
Check Flake / check-flake (push) Failing after 1m7s
2026-02-24 23:53:50 -08:00
zuckerberg 1cbbe64707 networking fixes
Check Flake / check-flake (push) Successful in 3m18s
2026-02-24 23:46:51 -08:00
zuckerberg 6191e4060f networking fixes
Check Flake / check-flake (push) Successful in 3m18s
2026-02-24 23:37:15 -08:00
zuckerberg a0fcacdcf9 Rewrite PIA VPN as multi-container bridge architecture
Check Flake / check-flake (push) Successful in 4m44s
Replace the single VPN container (veth pair, host-side auth scripts) with a
multi-container setup on a shared bridge network:

- Dedicated VPN container handles all PIA auth, WireGuard config, NAT, and
  optional port forwarding DNAT
- Service containers default-route through VPN container (leak-proof by topology)
- Host runs tinyproxy on bridge for PIA API bootstrap before WG is up
- WG interface is still created in host netns and moved into VPN container
  namespace
- Monthly renewal to ensure that connection stays up (PIA allows connections to
  last up to 2 months)
- Drop OpenVPN support entirely
2026-02-24 23:11:46 -08:00
zuckerberg 684851d641 Prevent containers from running non-container services
Check Flake / check-flake (push) Successful in 2m21s
Auto Update Flake / auto-update (push) Successful in 3m29s
2026-02-22 18:18:05 -08:00
zuckerberg 4cf50b5fb1 Restart atticd whenever PostgreSQL restarts
Check Flake / check-flake (push) Successful in 3m7s
2026-02-22 17:53:46 -08:00
zuckerberg 288a2841aa Replace Uptime Kuma with Gatus for declarative uptime monitoring
Check Flake / check-flake (push) Successful in 2m4s
Gatus is configured entirely via YAML (mapped from Nix attrsets),
making nix-config the single source of truth for all monitoring
config instead of Uptime Kuma's web UI/SQLite database.
2026-02-22 17:30:03 -08:00
zuckerberg 0589ca5748 Add attic binary cache to sandboxed workspaces
Update the attic cache URL from s0.koi-bebop.ts.net to s0.neet.dev
and configure sandboxed workspaces to inherit the host's binary cache
settings (substituters, trusted keys, netrc auth via agenix).
2026-02-22 17:22:44 -08:00
zuckerberg a697ea10ad Add daily ZFS health check with ntfy alerts and introduce ntfy role
Add a zfs-alerts module that runs a daily health check on ZFS machines,
sending detailed ntfy notifications for degraded pools, data errors, or
drive errors. Introduce an "ntfy" system role to decouple ntfy alerting
from the server/personal roles, and assign it to all machines.
2026-02-22 17:17:40 -08:00
zuckerberg 200d5a5d22 Add ntfy failure alerts for all systemd services
Check Flake / check-flake (push) Successful in 3m18s
2026-02-22 16:19:43 -08:00
zuckerberg 339eac52c6 Add uptime kuma
Check Flake / check-flake (push) Successful in 9m15s
2026-02-22 15:49:26 -08:00
zuckerberg 156f0183bd Add ntfy push notification server on ponyo 2026-02-21 23:29:36 -08:00
zuckerberg 8b92e51ef7 Remove phil machine and aarch64 ISO/kexec 2026-02-21 21:43:12 -08:00
zuckerberg 7798872bbf Disable SMB3 directory leases to fix stale listings from local file changes 2026-02-21 21:43:12 -08:00
zuckerberg 5a0a525f64 Add Attic binary cache and containerize gitea runner
Replace nix-serve-only setup with Attic for managed binary caching with
upstream filtering and GC. Move gitea actions runner from host into an
isolated NixOS container with private networking. nix-serve kept alongside
Attic during migration.
2026-02-21 21:43:08 -08:00
zuckerberg 136f024cf0 Fix tailscale networking when incus is on 2026-02-17 21:28:28 -08:00
zuckerberg 3d08a3e9bc Improve nix settings for sandboxed workspaces
Check Flake / check-flake (push) Successful in 1m15s
2026-02-14 11:29:02 -08:00
zuckerberg 99ef62d31a Fix unused vars
Check Flake / check-flake (push) Successful in 1m21s
2026-02-11 23:12:00 -08:00
zuckerberg 298f473ceb Remove unused vscode-server module 2026-02-11 23:00:48 -08:00
zuckerberg 10f3e3a7bf Remove old stale/unused configuration 2026-02-11 22:47:38 -08:00
zuckerberg 869b6af7f7 Block sandbox access to local network
Add nftables forward rules to prevent sandboxed workspaces from
reaching RFC1918 private addresses while allowing public internet
and the host gateway (for DNS/NAT).
2026-02-09 20:16:02 -08:00
zuckerberg 8293a7dc2a Rework Claude Code config in sandboxed workspaces
Remove credential passing to sandboxes (didn't work well enough).
Move onboarding config init from host-side setup into base.nix so
each workspace initializes its own Claude config on first boot.
Wrap claude command in VM and Incus workspaces to always skip
permission prompts.
2026-02-09 19:56:11 -08:00
zuckerberg cbf2aedcad Add use flake for fresh claude code 2026-02-09 18:04:09 -08:00
zuckerberg 69fc3ad837 Add ZFS/btrfs snapshot support to backups
Creates filesystem snapshots before backup for point-in-time consistency.
Uses mount namespaces to bind mount snapshots over original paths, so
restic records correct paths while reading from frozen snapshot data.

- Auto-detects filesystem type via findmnt
- Deterministic snapshot names using path hash
- Graceful fallback for unsupported filesystems
2026-02-08 20:16:37 -08:00
zuckerberg cf71b74d6f Add Incus container support to sandboxed workspaces
- Add incus.nix module for fully declarative Incus/LXC containers
- Build NixOS LXC images using nixpkgs.lib.nixosSystem
- Ephemeral containers: recreated on each start, cleaned up on stop
- Use flock to serialize concurrent container operations
- Deterministic MAC addresses via lib.mkMac to prevent ARP cache issues
- Add veth* to NetworkManager unmanaged interfaces
- Update CLAUDE.md with coding conventions and shared lib docs
2026-02-08 15:16:40 -08:00
zuckerberg 5178ea6835 Configure Claude Code for sandboxed workspaces
- Add credentials bind mount in container.nix
- Create claude-credentials-dir service to copy credentials for VMs
- Generate .claude.json with onboarding skipped and workspace trusted
- Add allowUnfree to container config
2026-02-08 14:53:31 -08:00
zuckerberg 87db330e5b Add sandboxed-workspace module for isolated dev environments
Provides isolated development environments using either VMs (microvm.nix)
or containers (systemd-nspawn) with a unified configuration interface.

Features:
- Unified options with required type field ("vm" or "container")
- Shared base configuration for networking, SSH, users, packages
- Automatic SSH host key generation and persistence
- Shell aliases for workspace management (start/stop/status/ssh)
- Automatic /etc/hosts entries for workspace hostnames
- restartIfChanged support for both VMs and containers
- Passwordless doas in workspaces

Container backend:
- Uses hostBridge for proper bridge networking with /24 subnet
- systemd-networkd for IP configuration
- systemd-resolved for DNS

VM backend:
- TAP interface with deterministic MAC addresses
- virtiofs shares for workspace directories
- vsock CID generation
2026-02-07 22:43:08 -08:00
zuckerberg c22855175a Add logseq and godot-mono
Check Flake / check-flake (push) Successful in 3m51s
2026-02-06 21:12:18 -08:00
zuckerberg 0a06e3c1ae Move vscodium config to home manager and add vscodium profile 2026-02-06 21:11:59 -08:00
zuckerberg ae2a62515a Enable scanner support
Check Flake / check-flake (push) Successful in 5m46s
2026-01-25 13:11:01 -08:00
zuckerberg e42e30d3cc Fix nix-index autogenerated db comma integration 2026-01-24 15:01:16 -08:00
zuckerberg 83b5d3b8c2 Update nextcloud occ command syntax 2026-01-24 14:59:57 -08:00
zuckerberg bab2df5d7e Use programs.ssh.askPassword
Check Flake / check-flake (push) Successful in 4m56s
2026-01-11 15:24:53 -08:00
zuckerberg adc04d1bc7 Update nixos mailserver
Check Flake / check-flake (push) Successful in 18m38s
2026-01-11 14:25:17 -08:00
zuckerberg da9a8f8c03 Update nixpkgs 2026-01-11 14:25:03 -08:00
zuckerberg 61698aa7e2 Add kde connect 2026-01-10 22:52:17 -08:00
zuckerberg e0af023ac9 barrier was removed from nixpkgs 2026-01-10 22:51:09 -08:00
zuckerberg c0088553ff jellyfin-media-player was removed from nixpkgs 2026-01-10 22:49:04 -08:00
zuckerberg 3d6a759827 Update nixpkgs 2025-10-12 13:33:53 -07:00
zuckerberg be23526c2c Add KeepassXC keys, remove some very old user keys, and rekey
Check Flake / check-flake (push) Successful in 1m50s
2025-07-16 22:01:33 -07:00
zuckerberg 82b67ed566 Add Whiteboard app to Nextcloud
Check Flake / check-flake (push) Successful in 2m17s
2025-07-16 20:49:39 -07:00