Commit graph

98 commits

Author SHA1 Message Date
DannyDannyDanny
be6dde6f0a feat(sunken-ship): add cloudflare tunnel for external access 🌐
Exposes navidrome via music.dannydannydanny.me.
Bypasses CGNAT — no port forwarding needed.
Token stored outside repo at ~/.secrets/cloudflare-tunnel-token.
2026-04-06 21:19:38 +02:00
DannyDannyDanny
76f63f0ae3 fix(sunken-ship): move navidrome music folder to /srv/music — ProtectHome bypass 🎵 2026-04-06 15:36:07 +02:00
DannyDannyDanny
c31ca7d473 feat(sunken-ship): add navidrome user to users group for music dir access 🎵 2026-04-06 14:46:24 +02:00
DannyDannyDanny
f0d52aed04 feat(darwin): add uhk-agent to homebrew casks 🎹 2026-04-06 13:40:37 +02:00
DannyDannyDanny
4bccb6e6a8 fix(sunken-ship): add audioconvert to uxplay pipeline — fixes ALAC format error 🎵
feat(home): add uhk-agent for UHK keyboard configuration 🎹
2026-04-06 11:55:06 +02:00
DannyDannyDanny
74eb3a9c40 feat: rusty-anchor WoL, auto dark/light VT theme, wakeonlan on phantom-ship 🦀
- Enable Wake-on-LAN (magic packet) on rusty-anchor enp2s0 via systemd service
- Add vt-theme script to rusty-anchor: switches between Catppuccin Latte/Mocha
- Theme state persisted in /etc/vt-theme, applied on login via profile.d
- alacritty-sync-system-theme.sh now SSHes to rusty-anchor and pushes the
  macOS light/dark change (best-effort, non-blocking, skips if unchanged)
- Add wakeonlan to phantom-ship packages (wakeonlan 00:16:cb:87:20:ba)
2026-04-04 21:18:44 +02:00
OpenClaw Bot
0985503002 phantom-ship: add openai-whisper to openclaw service path 2026-04-04 14:14:12 +02:00
DannyDannyDanny
3813206a3e feat: add nodejs and python3 to phantom-ship for openclaw plugins 📦 2026-04-04 13:38:04 +02:00
DannyDannyDanny
52649f500a feat: add git/nodejs to openclaw, configure GitHub PAT credential helper 🔑
Adds git and nodejs to openclaw-gateway service PATH. Configures a
git credential helper that reads a fine-grained PAT from
/etc/openclaw/github-token. Creates /var/lib/openclaw/repos for
repo clones.
2026-04-04 12:06:08 +02:00
DannyDannyDanny
369e96cbd7 security: harden openclaw-gateway systemd service 🛡️
ProtectSystem=strict, ProtectHome=read-only, PrivateTmp,
NoNewPrivileges. Only /var/lib/openclaw and /etc/openclaw
are writable.
2026-04-04 11:27:05 +02:00
DannyDannyDanny
4544635ad6 security: remove initialPassword from phantom-ship config 🔒
Password is locked in shadow and SSH is key-only, so the
initialPassword served no purpose and was a minor security concern.
2026-04-04 11:26:54 +02:00
DannyDannyDanny
4d6b64dee9 fix: add nixos-rebuild to dotfiles-rebuild PATH on sunken-ship 🔧 2026-04-04 11:26:09 +02:00
DannyDannyDanny
8ce36f8726 feat: add Flipper Zero tools (dfu-util + qFlipper) 🐬 2026-04-04 11:25:54 +02:00
DannyDannyDanny
f3854af82a fix: grant openclaw write access to config dir 🔧 2026-04-03 14:38:03 +02:00
DannyDannyDanny
0de86837df fix: set gateway.mode=local for openclaw on phantom-ship 🔧 2026-04-03 14:36:57 +02:00
DannyDannyDanny
49165590a6 feat: add fitness bot systemd service to sunken-ship
Code deployed separately via rsync (private repo, not referenced here).
Expects code at /home/danny/tg_fitness_bot/ and token at
~/.secrets/bigbiggerbiggestbot.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:15:51 +02:00
DannyDannyDanny
cfa2834516 fix: permit insecure openclaw package on phantom-ship 🔓 2026-04-03 12:05:42 +02:00
DannyDannyDanny
b04b53f9c4 feat: add OpenClaw gateway to phantom-ship 🤖
Telegram bot via nix-openclaw NixOS module. Secrets (API key,
bot token) loaded from /etc/openclaw/ at runtime. Telegram user
ID read from gitignored openclaw-allow-from.nix.
2026-04-03 12:02:02 +02:00
DannyDannyDanny
d1ab7d9a69 feat: blank phantom-ship display after 60s idle 🖥️
Same consoleblank + backlight-off pattern as sunken-ship.
2026-04-02 09:16:08 +02:00
DannyDannyDanny
5fcb54cc63 feat: NAT + DHCP on phantom-ship ethernet for rusty-anchor install 🌐
Shares WiFi internet to rusty-anchor over ethernet via dnsmasq DHCP
and iptables NAT. Rusty-anchor gets DHCP on 10.0.0.x with phantom-ship
as gateway and DNS.
2026-04-01 13:04:19 +02:00
DannyDannyDanny
c43cd0ee17 fix: enable redistributable firmware on phantom-ship 📡
iwlwifi (Intel 8260 WiFi), GPU, and Bluetooth firmware were missing.
2026-03-31 15:41:33 +02:00
DannyDannyDanny
1bfd96c0d0 feat: enable WiFi on phantom-ship 📶
Uses /etc/wpa_supplicant.conf for credentials (outside repo),
same pattern as sunken-ship.
2026-03-31 15:36:34 +02:00
DannyDannyDanny
9f73571f55 fix: restore bootloader config in phantom-ship hardware nix 🥾
Accidentally stripped systemd-boot config when cleaning up duplicate
fileSystems entries.
2026-03-31 15:33:23 +02:00
DannyDannyDanny
420f3881b5 feat: add phantom-ship real hardware config 🖥️
Generated by nixos-generate-config during install; cleaned up
duplicate bind-mount entries from chroot detection.
2026-03-31 14:52:57 +02:00
DannyDannyDanny
92593c7d0a fix: add initialPassword fallback for phantom-ship console login 🔑
No password was set, locking out console access. initialPassword gives
a known fallback until SSH key is installed and password is changed.
2026-03-31 14:46:19 +02:00
DannyDannyDanny
d4dbd73a8c feat(nixos): add phantom-ship host and streamline server installer
- New host config: phantom-ship.nix (SSH, auto-rebuild, nix-ld, Ethernet)
- Hardware stub: phantom-ship-hardware.nix (replaced by install script)
- Add phantom-ship to flake.nix with home-manager
- Install script now auto-provisions post-install:
  - Clones dotfiles to /etc/dotfiles
  - Installs SSH public key (SSH_PUBKEY_FILE env var)
  - Generates hardware config
  - Supports INSTALLER_HOSTNAME and INSTALLER_DISK env vars
- Fix bootstrap-install.sh default branch to main
- Update CLAUDE.md and server-installer-usb.md
2026-03-31 11:37:15 +02:00
DannyDannyDanny
33e2e327b5 fix(nixos): increase UxPlay ALSA buffer to reduce audio chop 🐛
WiFi jitter causes underruns with default buffer. Set buffer-time
to 200ms for smoother playback.
2026-03-31 10:01:22 +02:00
DannyDannyDanny
384b84fec2 fix(nixos): enable nix-ld on sunken-ship for Claude Code 🐛
The Claude Code remote CLI is a dynamically linked binary that
fails on NixOS without a standard ld-linux stub. nix-ld provides it.
2026-03-30 23:52:03 +02:00
DannyDannyDanny
533e5810a9 refactor(wsl): move user packages to home-manager 🎨
Enable home-manager on WSL, importing the shared home.nix config.
Remove duplicate packages and env vars from wsl.nix that are now
provided by home-manager (git, ripgrep, fzf, direnv, etc.).
2026-03-30 18:03:11 +02:00
DannyDannyDanny
e44ef1fdcc chore: remove legacy macbookair host config 🔥
Superseded by daniel-macbook-air.nix (nix-darwin) and wsl.nix.
Also removes its orphaned hardware-configuration.nix.
2026-03-30 18:02:03 +02:00
DannyDannyDanny
657e250f75 fix(nixos): quote UxPlay alsasink GStreamer pipeline arg 🔧 2026-03-30 16:17:14 +02:00
DannyDannyDanny
cea6913cf3 fix(nixos): route UxPlay audio directly to ALSA on sunken-ship 🔊
Drop PipeWire (WirePlumber fails to detect ALSA cards without a
graphical session). Use GStreamer alsasink with plughw:USB,0 to
output directly to the Scarlett Solo.
2026-03-30 16:16:18 +02:00
DannyDannyDanny
84715596f5 feat(nixos): add PipeWire and fix UxPlay audio on sunken-ship 🔊
Enable PipeWire with ALSA/PulseAudio compat so GStreamer can output
audio. Move UxPlay to a user service with linger so it can reach
PipeWire. Add danny to audio group, add alsa-utils for debugging.
2026-03-30 15:49:35 +02:00
DannyDannyDanny
ee2fa1e5f1 feat(nixos): add UxPlay systemd service on sunken-ship 🔊
Audio-only AirPlay receiver that starts at boot, advertises as
"sunken-ship", and auto-restarts on failure.
2026-03-30 15:44:00 +02:00
DannyDannyDanny
e2b820aac0 feat(nixos): add UxPlay AirPlay receiver to sunken-ship 📡
Enable Avahi for mDNS discovery and open firewall ports for
AirPlay mirroring (TCP 7000-7100, UDP 5353/6000-6001/7011).
2026-03-30 15:38:27 +02:00
DannyDannyDanny
d8e5cbe26a fix(nixos): add safe.directory for dotfiles-rebuild service 🔧
Git refuses to operate on /etc/dotfiles owned by danny when the
service runs as root. Pass safe.directory via environment variables.
2026-03-30 14:20:31 +02:00
DannyDannyDanny
bded1b359d fix(macos): install disk-inventory-x via Homebrew cask
Use the Homebrew cask on Apple Silicon because the nixpkgs package is x86_64-darwin only, and document the reason inline to prevent future regressions.

Made-with: Cursor
2026-03-25 10:54:41 +01:00
DannyDannyDanny
309d97c708 feat(nixos): add scheduled garbage collection and optimization for Nix 🎨
Implement launchd daemons for automatic Nix garbage collection and store optimization on a weekly schedule. The configuration includes intervals for both tasks to ensure efficient management of Nix store resources.
2026-03-25 10:49:37 +01:00
DannyDannyDanny
be4233a53b feat(macos): install Google Chrome via Homebrew cask
Enable declarative Homebrew cask management on the macOS host so Google Chrome is installed during darwin activation and stale Homebrew items are cleaned up with zap.

Made-with: Cursor
2026-03-24 15:17:19 +01:00
DannyDannyDanny
463249961e fix(nixos): replace removed light option and harden char-count script
Restore flake checks by removing deprecated `programs.light` from sunken-ship and switching to brightnessctl guidance. Also clean up flake formatting and make the Raycast char-count script safer for empty input.

Made-with: Cursor
2026-03-24 12:58:40 +01:00
DannyDannyDanny
82ce5a7fe8 Rename macOS nix-darwin host to daniel-macbook-air.nix
Match hostname Daniel-Macbook-Air; update flake and docs.

Made-with: Cursor
2026-03-23 19:36:39 +01:00
DannyDannyDanny
b311e21d5b feat(macos): Alacritty follows system light/dark appearance
New setup — due for review after you run darwin-rebuild switch and
live with it for a few days. See CLAUDE.md (Alacritty) and
assets/alacritty/README.md.

- HM: import active-colors.toml + Catppuccin latte/mocha fragments
- nix-darwin: launchd.user.agents.alacritty-system-theme + PATH helper
- fish: background sync on Darwin; theme.sh no longer rebuilds for Alacritty
- Remove switch-alacritty-theme.sh (sed + darwin-rebuild per toggle)

Made-with: Cursor
2026-03-23 19:16:05 +01:00
DannyDannyDanny
bb90cce31c Add claude-code to macbook system packages
Made-with: Cursor
2026-03-20 08:41:14 +01:00
DannyDannyDanny
5e1de21d6c Replace neofetch with fastfetch
Made-with: Cursor
2026-03-20 08:41:13 +01:00
DannyDannyDanny
0fb4fe7d6c Set efiSysMountPoint = /boot so systemd-boot install succeeds with disko
Made-with: Cursor
2026-03-08 18:38:26 +01:00
DannyDannyDanny
52d60b9ce0 Install fixes: bootstrap-install.sh (curl one-liner), nix flags in script, mkDefault hostname, doc typos/verify
Made-with: Cursor
2026-03-08 18:06:54 +01:00
DannyDannyDanny
3e07a55f5b Add NixOS server installer USB (disko LUKS + WiFi, hostname prompt)
- disko-server.nix: LUKS + ESP + ext4 root layout for disko-install
- server-install: minimal NixOS config for new servers (hostname/WiFi via --system-config)
- installer-iso: custom minimal ISO with iwlwifi; build with nix build .#installer-iso
- scripts/nixos-server-install.sh: prompt hostname/disk, run disko-install
- docs/server-installer-usb.md: build, write USB, optional live/installed WiFi
- .gitignore: nixos/installer-wifi.nix; AGENTS.md + README.md notes

Made-with: Cursor
2026-03-08 16:16:25 +01:00
DannyDannyDanny
a114d2fc0c feat(sunken-ship): enable wireless networking support 2026-03-08 12:47:32 +01:00
DannyDannyDanny
424ba82399 feat(sunken-ship): pwless ssh access 🔒 2026-03-08 12:05:25 +01:00
DannyDannyDanny
1338fb1b68 Rename nixos-server to sunken-ship
- Rename hosts/nixos-server.nix -> sunken-ship.nix, nixos-server-hardware.nix -> sunken-ship-hardware.nix
- Flake: nixos-server -> sunken-ship, update module path
- Set networking.hostName = sunken-ship in server configs
- Update AGENTS.md, nixos/readme.md, docs/ssh-and-secrets.md, TODO.md

Made-with: Cursor
2026-03-01 12:44:28 +01:00