370 Commits

Author SHA1 Message Date
Kyle Isom
86c7afa080 straylight: KillMode=process for mcp-agent so unikernel VMs survive restarts
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:59:50 -07:00
Kyle Isom
ef3f46d035 flake: bump mcp to unikernel-capable build (d2431f2)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 10:01:13 -07:00
Kyle Isom
92b39fc031 straylight: add isolated mcp-br0 bridge for unikernel VMs
Host-only 10.99.0.0/24 bridge with no uplink/NAT; firewall drops VM
traffic leaving the bridge so unikernel VMs can reach only the gateway
(mc-proxy). Implements Phase 2 mandatory-mediation networking.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 01:04:57 -07:00
Kyle Isom
5ffe206f72 straylight: grant mcp-agent KVM + tun access for unikernels
Override the shared mcp.nix sandbox (PrivateDevices) on straylight so the
MCP agent can boot Nanos unikernel VMs under QEMU/KVM and manage TAP
devices for isolated networking.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 00:47:17 -07:00
Kyle Isom
f2a76df239 straylight: enable MCP agent (becoming core host)
Add configs/mcp.nix (mcp user UID 850 + mcp-agent service) and open
firewall ports for DNS/mc-proxy/agent/master as straylight takes over
the master + MCIAS + MCNS core role from rift.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 17:12:47 -07:00
b3a52dc12b move ffmpeg to light 2026-05-28 06:40:07 -07:00
6670b1cf50 add platformio 2026-05-05 13:21:17 -07:00
18bcf5d1e7 update lector 2026-04-14 15:06:55 -07:00
a99542aa50 add sox
claude code uses this for voice input
2026-04-14 14:59:58 -07:00
dfc21b359c use firefox as default 2026-04-07 11:58:40 -07:00
4c29c7dabf flake updates 2026-04-07 10:00:54 -07:00
2cb9704dac discord 2026-04-07 09:27:29 -07:00
2b5a691ecf add chromium to packages
need for webusb things
2026-04-06 08:36:42 -07:00
77e69e0b86 Set mutableUsers to false so hashedPassword is enforced on every rebuild
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 17:19:55 -07:00
d4963c571a ollama 2026-04-04 16:19:16 -07:00
3b59f3cae4 wireless tools for i3blocks 2026-04-04 16:19:16 -07:00
768e9a61dc Add svc host: NixOS config for TornadoVPS edge node
BIOS boot with GRUB on /dev/xvda, MCP agent via systemd,
mc-proxy and MCNS as containers via MCP agent.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 15:21:01 -07:00
e1600e19e7 Use hashed password instead of initial plaintext password for kyle user
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 11:57:37 -07:00
6fd8ab61ed Fix orion build: remove nonexistent "crypted" LUKS device reference
The LUKS device is named "luks-5c5e94fc-..." in hardware-configuration.nix
which already has the FIDO2 options. The "crypted" reference caused a build
error. Also fix duplicate attribute definitions and unnecessary config wrapper.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 11:30:04 -07:00
6733e92d1f Update CA cert after Metacrypt re-initialization
New root CA cert issued during Metacrypt vault rebuild. Same key
usage (Certificate Sign, CRL Sign), new validity period (2026-2046).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 10:07:54 -07:00
adca98065f Update CA cert with CRL Sign key usage
Same key, added CRL Sign to key usage extensions. Distributed to
all nodes and NixOS system trust store.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:54:05 -07:00
3be5613120 Fix deprecated NixOS options for 25.11
- Use nixpkgs.hostPlatform module instead of deprecated system arg to lib.nixosSystem
- Rename services.logind.powerKey to services.logind.settings.Login.HandlePowerKey

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:53:25 -07:00
b6aa8346f5 update mcp 2026-04-03 09:37:36 -07:00
47b4e533ff Document UID 850 as permanent — never change
Rootless podman deeply caches the UID in storage, subuid mappings,
and systemd sessions. Changing it destroys all container state.
Reference: log/2026-04-03-uid-incident.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:30:37 -07:00
5d82e27ba4 Add fallback DNS resolvers to all nodes
All nodes now list 1.1.1.1 and 8.8.8.8 as fallback nameservers after
MCNS. When MCNS is down, internal names (.svc.mcp.metacircular.net)
fail but external DNS (google.com, github.com, etc.) keeps working.

Lesson from 2026-04-03 incident: without fallbacks, MCNS failure
caused total DNS blackout including external services, forcing
Tailscale to be disabled to restore any DNS resolution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:30:09 -07:00
5a381d314e Pin mcp user UID/GID to 850
UID 995 conflicted with sshd on orion. Pin to 850 (the 800-899 range
is unused on all nodes and well below NixOS auto-assign range).
Pin GID to 850 as well for consistency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 01:38:45 -07:00
53addc0ed1 Remove pinned UID for mcp user
UID 995 conflicted with sshd on orion. Let NixOS auto-assign the UID
for the mcp system user. Use systemd's %U specifier for XDG_RUNTIME_DIR
instead of the hardcoded UID.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 01:33:37 -07:00
755450e72e fix orion: remove bogus "crypted" LUKS device reference
The FIDO2 crypttab options are already on the correct UUID-named device
in hardware-configuration.nix; the "crypted" name only applies to
disko-provisioned hosts (rift).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 01:00:19 -07:00
5fd00af73c fix orion: remove duplicate top-level networking/services attrs
The module used explicit `config = { ... }` but also had duplicate
networking.nameservers and services.resolved.domains at the top level,
causing a NixOS module evaluation error. Merged the Tailscale nameserver
into the config block and removed the duplicates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 00:03:58 -07:00
6a65e73200 Remove mcp-master systemd unit (now containerized)
The master runs as an MCP-managed container, deployed via
mcp deploy mcp-master --direct. The systemd unit was a temporary
bootstrap mechanism.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 22:56:08 -07:00
b26478d47b Add mcp-master systemd service
Runs the MCP v2 master as a systemd service on rift. Uses
ConditionPathExists so the unit is a no-op on worker nodes
(like orion) that import mcp.nix but don't have the binary.

Starts after mcp-agent.service. Security hardened like the agent
but with ProtectHome=true (master doesn't need /run/user).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 20:43:38 -07:00
dba2fb00eb update mc packages 2026-04-02 20:43:38 -07:00
246674369d updated packages 2026-04-02 20:33:24 -07:00
63bb945506 add opencode to full desktop packages 2026-04-02 17:10:04 -07:00
9be8f2d8d1 syncthing should run as a user 2026-04-02 16:07:59 -07:00
9972422fe6 package cleanup 2026-04-02 12:53:17 -07:00
9310dc0041 add new framework config 2026-04-02 12:43:06 -07:00
de5178747d add straylight emergency recovery script
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:23:04 -07:00
453947ac7b fix straylight /home LUKS: use initrd instead of crypttab
Replace fragile environment.etc.crypttab.text with
boot.initrd.luks.devices for the second SSD, matching
the pattern used for the root drive.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:12:14 -07:00
a8e43936cf pass #2
following random blogs doesn't always work
2026-04-01 23:53:00 -07:00
0e9f6d890e straylight hardware 2026-04-01 20:32:08 -07:00
33f364f12f update mcr 2026-04-01 19:41:41 -07:00
8ac759b1cf update mcr (for mcrctl) 2026-04-01 18:58:52 -07:00
0f1f0dcc78 Adding straylight. 2026-04-01 12:39:44 -07:00
fdd7104504 update kte and lector 2026-03-31 14:22:05 -07:00
101151cdb8 exfatprogs 2026-03-30 22:12:54 -07:00
16f1d0829c add easytag 2026-03-30 20:36:18 -07:00
5a0c22f0f7 update mcp 2026-03-30 17:46:40 -07:00
2abcc39539 really undunst 2026-03-30 17:33:26 -07:00
316b00cda3 update mcp 2026-03-30 17:32:00 -07:00