No description
Find a file
Adriano Caloiaro 38b3244037
refactor(skills): rename create/update-personal-skill to create/update-my-skills
Rename the two skill-management plugins in the my-skills marketplace to
create-my-skills / update-my-skills (dirs, plugin.json, SKILL.md frontmatter and
headings, marketplace.json entries, and the enabledPlugins entries on zw).
2026-06-16 11:18:18 +02:00
.claude-plugin refactor(skills): rename create/update-personal-skill to create/update-my-skills 2026-06-16 11:18:18 +02:00
common refactor(skills): rename create/update-personal-skill to create/update-my-skills 2026-06-16 11:18:18 +02:00
images Preparing zw system 2024-01-18 12:34:04 -07:00
systems refactor(skills): rename create/update-personal-skill to create/update-my-skills 2026-06-16 11:18:18 +02:00
.gitignore feat: add agenix rekey 2026-01-19 10:37:13 -08:00
AGENTS.md common: add agents configuration for Claude/Gemini 2026-01-13 11:54:24 -08:00
flake.lock chore(flake): bump inputs 2026-06-04 09:17:59 +02:00
flake.nix feat: X -> Wayland 2026-06-16 02:22:43 -06:00
nomad_token.age chore(zw): migrate plain-agenix secrets to agenix-rekey master identity 2026-06-12 07:10:44 -06:00
README.md agenix: rekey 2026-03-09 20:30:17 -07:00
spotify_password.age chore(zw): migrate plain-agenix secrets to agenix-rekey master identity 2026-06-12 07:10:44 -06:00
tailscale_key.age chore(zw): migrate plain-agenix secrets to agenix-rekey master identity 2026-06-12 07:10:44 -06:00
wireless_networks.age chore(zw): migrate plain-agenix secrets to agenix-rekey master identity 2026-06-12 07:10:44 -06:00

NixOS Systems

This repository manages the configuration for my personal and work infrastructure using Nix Flakes. It unifies system administration (NixOS, nix-darwin) and user environments (Home Manager) into a single, declarative codebase.

Overview

  • systems/: Contains host-specific configurations.
  • common/: Shared modules, overlays, and configuration patterns.
  • images/: Flake for generating installation media (e.g., SD card images).

Active Systems

Hostname Type Hardware Description
zw NixOS IBM ThinkPad Primary work laptop. Uses manual ZFS partitioning.
homebee NixOS Beelink Mini S12 Home media server running Jellyfin.
jellybee NixOS Beelink U59 Pro Mobile media server (RV) running Jellyfin. Uses disko for partitioning.

Note: older systems like z1, pi, and homepi are deprecated or inactive.

Secret Management

Secrets are managed using agenix and agenix-rekey. The master private key is stored in gopass under the entry systems/age.master.

  1. Encrypt a new secret using the master public key:

    echo "my-super-secret-password" | age -r age13sgljsr9srgxjxncl49qsn9dkkstcqct3ck9s7n2yu4lzelgp4uqcajgtj -o ./path/to/my-secret.age
    
  2. Add to Nix configuration:

    age.secrets.my-secret = {
      rekeyFile = ./secrets/my-secret.age;
      # mode = "600"; # Optional, default is 400
      # owner = "root"; # Optional
    };
    
  3. Rekey for specific hosts: This decrypts the secret using the master key (via gopass) and re-encrypts it for the target hosts.

    nix run .#rekey
    

Installation

Standard Install (e.g., zw)

  1. Boot into a NixOS installer (official or custom image).
  2. Run sudo -i.
  3. Establish networking (see below).
  4. Prepare storage:
    • For zw, use the script in systems/zw/nixos-zfs-setup.sh.
    • Warning: This will wipe the defined DISK.
  5. Mount and generate config:
    nixos-generate-config --root /mnt
    
  6. Install:
    nixos-install --flake .#zw
    

Networking (Installer)

If using a minimal installer, you may need to manually configure Wi-Fi:

  1. Start the supplicant: systemctl start wpa_supplicant
  2. Run wpa_cli:
    > add_network
    0
    > set_network 0 ssid "MY_SSID"
    OK
    > set_network 0 psk "MY_PASSWORD"
    OK
    > enable_network 0
    OK