dotfiles/nixos
Danny a7dd6284d8 phantom-ship: add Caddy + shelfish FastAPI service
Caddy fronts 80/443 with auto-Let's-Encrypt; reverse-proxies
shelfish.dannydannydanny.me to the local shelfish service on
127.0.0.1:8081. ACME issues the cert once the subdomain A-records
to this host's static IP.

Shelfish service mirrors shipyard's pattern: nix-built python env,
SHIPYARD_BOT_TOKEN_FILE pointed at the existing secret, DB stored
outside the rsynced code dir at ~/.local/share/shelfish/ so deploys
don't clobber state.

Code itself is rsync'd from ~/python-projects/27_shelfish/ to
/home/danny/shelfish/ (same convention as shipyard).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 06:25:54 +02:00
..
home/danny chore(flake): bump clan-community fork (dm-send-deploy narHash skip) 🔖 2026-04-20 20:06:08 +02:00
hosts phantom-ship: add Caddy + shelfish FastAPI service 2026-05-03 06:25:54 +02:00
pkgs/hara-gmail-mcp feat(phantom-ship): hara-gmail-mcp server (path 1, IMAP+SMTP) 📬 2026-05-02 14:15:10 +02:00
disko-cloud.nix fix(vps-relay): switch to GRUB/BIOS — Hetzner Cloud is not UEFI 🧷 2026-04-24 16:05:27 +02:00
disko-server.nix Add NixOS server installer USB (disko LUKS + WiFi, hostname prompt) 2026-03-08 16:16:25 +01:00
fish.nix refactor(nix): move flake to repo root 🚚 2026-04-19 15:19:59 +02:00
installer-iso.nix Add NixOS server installer USB (disko LUKS + WiFi, hostname prompt) 2026-03-08 16:16:25 +01:00
neovim.nix fix(neovim): set withRuby and withPython3 explicitly to false 🔇 2026-04-19 13:48:25 +02:00
ollama.nix feat: add ollama 💩 2025-10-26 19:48:17 +01:00
readme.md docs: update stale dotfiles/nixos flake paths 📝 2026-04-20 20:28:05 +02:00
server-configuration-with-flakes.nix Rename nixos-server to sunken-ship 2026-03-01 12:44:28 +01:00
server-install-configuration.nix Rename nixos-server to sunken-ship 2026-03-01 12:44:28 +01:00
wsl.conf chore: remove wsl.conf 2025-09-09 15:24:51 +02:00

NixOS modules

Host-specific NixOS and home-manager modules live under this dir:

  • hosts/<machine>.nix + hosts/<machine>-hardware.nix
  • home/danny/home.nix (home-manager)
  • fish.nix, neovim.nix, ollama.nix, installer-iso.nix, disko-server.nix

The flake itself (flake.nix, flake.lock, flake-modules/, lib/, modules/, sops/, vars/) lives at the repo root, not here. See CLAUDE.md at the repo root for rebuild commands, clan.lol operations, and the dotfiles-rebuild timer.

Quick rebuild reference

# macOS
cd ~/dotfiles && darwin-rebuild switch --flake .

# WSL
sudo nixos-rebuild switch --flake ~/dotfiles#wsl

# Servers (via clan from mac)
nix run git+https://git.clan.lol/clan/clan-core#clan-cli -- \
  machines update sunken-ship --flake ~/dotfiles

Server bootstrap (one-time)

nix run --extra-experimental-features "nix-command flakes" nixpkgs#git -- \
  clone https://github.com/DannyDannyDanny/dotfiles.git /tmp/dotfiles
sudo mv /tmp/dotfiles /etc/dotfiles
sudo nixos-rebuild switch --flake /etc/dotfiles#sunken-ship \
  --option accept-flake-config true

If the daemon doesn't have flakes: copy server-configuration-with-flakes.nix to /etc/nixos/configuration.nix, sudo nixos-rebuild switch, then build the flake.

SSH keys (not in repo): scp ~/.ssh/*.pub danny@server:/tmp/, then on server mkdir -p ~/.ssh; cat /tmp/*.pub >> ~/.ssh/authorized_keys. See docs/ssh-and-secrets.md.

No git in PATH: sudo nix run nixpkgs#git -- -C /etc/dotfiles pull origin main.