From 0e1a3e20ee39c39c50768565b56ea7715f24fa6f Mon Sep 17 00:00:00 2001 From: dish Date: Sat, 4 Oct 2025 12:57:10 -0400 Subject: [PATCH] [flake] flake-parts works maybe???? --- MIGRATE.md | 6 + checks/deploy/default.nix | 2 - devShells/default.nix | 12 ++ {shells => devShells}/default/default.nix | 0 flake.lock | 177 ++++-------------- flake.nix | 142 +++++--------- homeModules/all-modules.nix | 15 ++ homeModules/default.nix | 13 ++ .../profiles/base/default.nix | 4 +- .../profiles/cli/default.nix | 9 +- .../profiles/cli/rbw-config.json | 0 homeModules/profiles/default.nix | 10 + .../profiles/desktop/default.nix | 12 +- .../profiles/development/default.nix | 2 +- .../profiles/gui/default.nix | 7 +- .../profiles/server/default.nix | 12 +- .../programs/chromium/default.nix | 0 homeModules/programs/default.nix | 21 +++ .../programs/firefox/default.nix | 0 .../programs/fish/default.nix | 0 .../programs/ghostty/default.nix | 0 .../programs/ghostty/settings.nix | 0 .../programs/git/default.nix | 6 +- .../programs/gpg/default.nix | 0 .../programs/helix/default.nix | 0 .../programs/helix/settings.nix | 0 .../programs/kitty/default.nix | 0 .../programs/kitty/settings.nix | 0 .../programs/misc-programs/default.nix | 0 .../programs/misc-programs/direnv-stdlib.sh | 0 .../programs/neovim/default.nix | 28 ++- .../programs/nushell/config.nu | 0 .../programs/nushell/default.nix | 0 .../programs/nushell/env.nu | 0 .../programs/onagre/default.nix | 0 .../programs/ssh/backup.pub | 0 .../programs/ssh/default.nix | 0 .../programs/ssh/ssh-auth-signers.nix | 0 .../programs/ssh/yubikey-back.pub | 0 .../programs/ssh/yubikey-main.pub | 0 .../programs/ssh/yubikey-new.pub | 0 .../programs/starship/default.nix | 0 .../programs/starship/settings.nix | 0 .../programs/vscodium/default.nix | 2 +- .../programs/wlogout/default.nix | 0 .../programs/wlogout/style.nix | 0 .../programs/zed-editor/default.nix | 0 .../programs/zed-editor/settings.nix | 0 .../home => homeModules}/scripts/default.nix | 0 homeModules/services/default.nix | 10 + .../services/gpg-agent/default.nix | 0 .../services/kanshi/default.nix | 0 .../services/kdeconnect/default.nix | 0 .../services/mako/default.nix | 0 .../services/swayidle/default.nix | 0 .../services/syncthing/default.nix | 0 .../home => homeModules}/theming/default.nix | 11 +- .../home => homeModules}/wayland/default.nix | 0 .../wayland/keybindings.nix | 2 +- .../home => homeModules}/wayland/sway.nix | 5 +- .../home => homeModules}/wayland/swaylock.nix | 2 +- .../wayland/waybar-mocha.css | 0 .../wayland/waybar-style.css | 0 .../home => homeModules}/wayland/waybar.nix | 2 +- {modules/home => homeModules}/xdg/default.nix | 0 homes/x86_64-linux/pyrox@marvin/default.nix | 8 - homes/x86_64-linux/pyrox@prefect/default.nix | 8 - homes/x86_64-linux/pyrox@thought/default.nix | 8 - homes/x86_64-linux/pyrox@zaphod/default.nix | 55 ------ .../thehedgehog@marvin/default.nix | 8 - .../thehedgehog@prefect/default.nix | 8 - .../thehedgehog@thought/default.nix | 8 - .../thehedgehog@zaphod/default.nix | 63 ------- hosts/default.nix | 69 +++++++ .../marvin/bootloader.nix | 0 .../x86_64-linux => hosts}/marvin/default.nix | 6 +- .../marvin/firewall.nix | 0 .../marvin/hardware.nix | 0 .../marvin/networking.nix | 0 .../marvin/services/anubis.nix | 0 .../marvin/services/authentik.nix | 5 +- .../marvin/services/avahi.nix | 0 .../marvin/services/bookstack.nix | 0 .../marvin/services/bots.nix | 0 .../marvin/services/buildbot.nix | 6 +- .../marvin/services/deemix.nix | 4 +- .../marvin/services/gdq-cals.nix | 0 .../marvin/services/git.nix | 6 +- .../marvin/services/golink.nix | 0 .../marvin/services/grafana.nix | 10 +- .../marvin/services/iceshrimp.nix | 3 +- .../marvin/services/jellyfin.nix | 4 +- .../marvin/services/matrix.nix | 4 +- .../marvin/services/miniflux.nix | 8 +- .../marvin/services/minio.nix | 0 .../marvin/services/nextcloud/default.nix | 8 +- .../marvin/services/nextcloud/imaginary.nix | 4 +- .../services/nextcloud/nextcloud-admin-pw.age | 0 .../marvin/services/nextcloud/office.nix | 6 +- .../marvin/services/nginx.nix | 4 +- .../marvin/services/pinchflat.nix | 9 +- .../marvin/services/pingvin-share.nix | 9 +- .../marvin/services/planka.nix | 8 +- .../marvin/services/pocket-id.nix | 8 +- .../marvin/services/podman.nix | 0 .../marvin/services/postgres.nix | 0 .../marvin/services/prometheus.nix | 0 .../marvin/services/prosody.nix | 0 .../marvin/services/redlib.nix | 4 +- .../marvin/services/scrutiny.nix | 4 +- .../marvin/services/secrets/anubis-key.age | 0 .../marvin/services/secrets/authentik-env.age | 0 .../services/secrets/buildbot/gitea-token.age | 0 .../secrets/buildbot/oauth-secret.age | Bin .../secrets/buildbot/worker-password.age | 0 .../services/secrets/buildbot/workers.age | 0 .../secrets/forgejo/aux-docs-runner-token.age | Bin .../marvin/services/secrets/forgejo/db-pw.age | 0 .../secrets/forgejo/default-runner-token.age | 0 .../secrets/forgejo/gitgay-runner-token.age | 0 .../secrets/forgejo/internal-token.age | Bin .../secrets/forgejo/lfs-jwt-secret.age | Bin .../services/secrets/forgejo/mail-pw.age | 0 .../secrets/forgejo/oauth2-jwt-secret.age | 0 .../services/secrets/forgejo/secret-key.age | 0 .../services/secrets/golink-authkey.age | Bin .../secrets/grafana-admin-password.age | 0 .../secrets/grafana-smtp-password.age | Bin .../secrets/iceshrimp-db-password.age | 0 .../secrets/iceshrimp-secret-config.age | Bin .../secrets/jellyfin-exporter-config.age | 0 .../services/secrets/miniflux-admin.age | Bin .../marvin/services/secrets/minio-root.age | 0 .../services/secrets/nix-serve-priv.age | Bin .../services/secrets/pinchflat-secrets.age | Bin .../services/secrets/pingvin-secrets.age | 0 .../marvin/services/secrets/planka-env.age | Bin .../services/secrets/pocket-id-secrets.age | Bin .../marvin/services/secrets/secrets.nix | 0 .../services/secrets/thehedgehog-key.age | Bin .../services/secrets/thehedgehog-pem.age | Bin .../services/secrets/vaultwarden-pgpass.age | 0 .../services/secrets/vaultwarden-vars.age | Bin .../services/secrets/webmentiond-env.age | Bin .../marvin/services/syncthing.nix | 0 .../marvin/services/tailscale.nix | 0 .../marvin/services/tangled.nix | 5 +- .../marvin/services/vaultwarden.nix | 7 +- .../marvin/services/webmentiond.nix | 4 +- .../marvin/services/zfs.nix | 0 .../prefect/bootloader.nix | 0 .../prefect/default.nix | 5 +- .../prefect/dn42/bgp.nix | 0 .../prefect/dn42/bird.conf | 0 .../prefect/dn42/default.nix | 0 .../prefect/dn42/services.nix | 0 .../prefect/dn42/tunnels.nix | 0 .../prefect/dn42/wireguard.nix | 0 .../prefect/firewall.nix | 0 .../prefect/hardware.nix | 0 .../prefect/networking.nix | 0 .../prefect/packages.nix | 0 .../prefect/secrets/acme-creds.age | 0 .../prefect/secrets/dn42-peerfinder-uuid.age | 0 .../prefect/secrets/dn42-privkey.age | 0 .../prefect/secrets/headscale-oidc-secret.age | 0 .../prefect/secrets/secrets.nix | 0 .../prefect/secrets/stalwart-desec-token.age | 0 .../secrets/stalwart-fallback-admin-pw.age | 0 .../secrets/stalwart-secret-ed25519.age | Bin .../prefect/secrets/stalwart-secret-rsa.age | Bin .../prefect/secrets/wireguard-priv-key.age | 0 .../prefect/services/acme.nix | 0 .../prefect/services/blog-update.nix | 0 .../prefect/services/blog-update.sh | 0 .../prefect/services/caddy.nix | 14 +- .../prefect/services/dn42-peerfinder.nix | 0 .../prefect/services/fail2ban.nix | 0 .../prefect/services/headscale.nix | 0 .../prefect/services/mailserver/default.nix | 0 .../prefect/services/mailserver/logins.nix | 0 .../services/mailserver/monitoring.nix | 0 .../prefect/services/mailserver/overrides.nix | 0 .../services/mailserver/stalwart/acme.nix | 0 .../services/mailserver/stalwart/auth.nix | 0 .../services/mailserver/stalwart/auto-ban.nix | 0 .../services/mailserver/stalwart/calendar.nix | 0 .../services/mailserver/stalwart/default.nix | 3 +- .../services/mailserver/stalwart/imap.nix | 0 .../services/mailserver/stalwart/queue.nix | 0 .../services/mailserver/stalwart/report.nix | 0 .../services/mailserver/stalwart/server.nix | 0 .../services/mailserver/stalwart/session.nix | 0 .../mailserver/stalwart/signature.nix | 0 .../prefect/services/named.conf | 0 .../prefect/services/netdata.nix | 0 .../prefect/services/nginx/default.nix | 0 .../prefect/services/nginx/pyrox.dev.nix | 0 .../prefect/services/prometheus.nix | 0 .../prefect/services/secrets.nix | 0 .../prefect/services/tailscale.nix | 0 .../prefect/services/zerotier.nix | 0 .../thought/bootloader.nix | 0 .../thought/default.nix | 1 + .../x86_64-linux => hosts}/thought/disks.nix | 0 .../thought/firewall.nix | 0 .../thought/hardware.nix | 0 .../thought/networking.nix | 0 .../thought/packages.nix | 0 .../thought/secrets/secrets.nix | 0 .../thought/services/prometheus.nix | 0 .../thought/services/tailscale.nix | 0 .../zaphod/bootloader.nix | 0 .../x86_64-linux => hosts}/zaphod/console.nix | 0 .../x86_64-linux => hosts}/zaphod/default.nix | 4 +- .../x86_64-linux => hosts}/zaphod/fonts.nix | 0 .../zaphod/hardware.nix | 0 .../x86_64-linux => hosts}/zaphod/kde.nix | 0 .../x86_64-linux => hosts}/zaphod/misc.nix | 0 .../zaphod/networking.nix | 0 .../zaphod/packages.nix | 1 - .../x86_64-linux => hosts}/zaphod/power.nix | 0 .../zaphod/programs/gnupg.nix | 0 .../zaphod/programs/ssh.nix | 0 .../zaphod/programs/sway.nix | 0 .../zaphod/programs/zsh.nix | 0 .../zaphod/secret-files.nix | 0 .../zaphod/secrets/secrets.nix | 0 .../zaphod/secrets/wg-privkey.age | Bin .../zaphod/security/modules.nix | 0 .../zaphod/security/pam.nix | 0 .../zaphod/services/avahi.nix | 0 .../zaphod/services/docker.nix | 0 .../zaphod/services/flatpak.nix | 0 .../zaphod/services/fprintd.nix | 0 .../zaphod/services/fwupd.nix | 0 .../zaphod/services/greeter.nix | 0 .../zaphod/services/kmscon.nix | 0 .../zaphod/services/misc.nix | 0 .../zaphod/services/modules.nix | 0 .../zaphod/services/packagekit.nix | 0 .../zaphod/services/pcscd.nix | 0 .../zaphod/services/pipewire.nix | 0 .../zaphod/services/ssh.nix | 0 .../zaphod}/services/tailscale.nix | 0 lib/data/default.nix | 8 +- lib/default.nix | 8 + .../nixos/default-config/nixpkgsConfig.nix | 7 - .../default-config/bootloader.nix | 0 .../default-config/default.nix | 0 .../default-config/networking.nix | 0 .../default-config/nixConfig.nix | 17 +- nixosModules/default-config/nixpkgsConfig.nix | 15 ++ .../default-config/packages.nix | 0 .../default-config/programs/default.nix | 0 .../default-config/programs/nh.nix | 0 .../default-config/programs/ssh.nix | 0 .../default-config/root.nix | 0 .../secrets/powerdns-secrets.age | Bin .../default-config/secrets/secrets.nix | 0 .../default-config/security.nix | 0 .../default-config/services/default.nix | 0 .../default-config/services/ntp.nix | 0 .../default-config}/services/tailscale.nix | 0 .../default-config/ssh.nix | 0 .../default-config/users.nix | 0 .../default-users/backup.pub | 0 .../default-users/default.nix | 0 .../default-users/yubikey-back.pub | 0 .../default-users/yubikey-main.pub | 0 .../default-users/yubikey-new.pub | 0 nixosModules/default.nix | 27 +++ nixosModules/homes/.default.nix.bak | 123 ++++++++++++ nixosModules/homes/pyrox-zaphod/default.nix | 52 +++++ .../pyrox-zaphod}/files/distrobox-config.nix | 0 .../homes/pyrox-zaphod}/files/pamKeys.nix | 0 nixosModules/homes/pyrox/default.nix | 18 ++ .../homes/thehedgehog-zaphod/default.nix | 65 +++++++ nixosModules/homes/thehedgehog/default.nix | 18 ++ .../profiles/default.nix | 4 +- .../programs/chromium/default.nix | 0 .../programs/chromium/extraOpts.nix | 0 .../programs/firefox/default.nix | 0 .../programs/firefox/extensions.nix | 0 .../programs/firefox/extraPrefs.nix | 0 .../programs/firefox/policies.nix | 0 .../programs/misc/default.nix | 0 .../programs/neovim/default.nix | 1 - .../services/buildbot/default.nix | 0 .../services/forgejo-runner/default.nix | 0 .../services/scrutiny/default.nix | 6 +- overlays/default.nix | 6 + overlays/openssh-fixperms/default.nix | 2 +- packages/default.nix | 31 +++ packages/jellyfin-exporter/default.nix | 6 +- templates/default.nix | 15 ++ 296 files changed, 776 insertions(+), 564 deletions(-) create mode 100644 MIGRATE.md delete mode 100644 checks/deploy/default.nix create mode 100644 devShells/default.nix rename {shells => devShells}/default/default.nix (100%) create mode 100644 homeModules/all-modules.nix create mode 100644 homeModules/default.nix rename {modules/home => homeModules}/profiles/base/default.nix (83%) rename {modules/home => homeModules}/profiles/cli/default.nix (90%) rename {modules/home => homeModules}/profiles/cli/rbw-config.json (100%) create mode 100644 homeModules/profiles/default.nix rename {modules/home => homeModules}/profiles/desktop/default.nix (84%) rename {modules/home => homeModules}/profiles/development/default.nix (100%) rename {modules/home => homeModules}/profiles/gui/default.nix (92%) rename {modules/home => homeModules}/profiles/server/default.nix (55%) rename {modules/home => homeModules}/programs/chromium/default.nix (100%) create mode 100644 homeModules/programs/default.nix rename {modules/home => homeModules}/programs/firefox/default.nix (100%) rename {modules/home => homeModules}/programs/fish/default.nix (100%) rename {modules/home => homeModules}/programs/ghostty/default.nix (100%) rename {modules/home => homeModules}/programs/ghostty/settings.nix (100%) rename {modules/home => homeModules}/programs/git/default.nix (95%) rename {modules/home => homeModules}/programs/gpg/default.nix (100%) rename {modules/home => homeModules}/programs/helix/default.nix (100%) rename {modules/home => homeModules}/programs/helix/settings.nix (100%) rename {modules/home => homeModules}/programs/kitty/default.nix (100%) rename {modules/home => homeModules}/programs/kitty/settings.nix (100%) rename {modules/home => homeModules}/programs/misc-programs/default.nix (100%) rename {modules/home => homeModules}/programs/misc-programs/direnv-stdlib.sh (100%) rename {modules/home => homeModules}/programs/neovim/default.nix (54%) rename {modules/home => homeModules}/programs/nushell/config.nu (100%) rename {modules/home => homeModules}/programs/nushell/default.nix (100%) rename {modules/home => homeModules}/programs/nushell/env.nu (100%) rename {modules/home => homeModules}/programs/onagre/default.nix (100%) rename {modules/home => homeModules}/programs/ssh/backup.pub (100%) rename {modules/home => homeModules}/programs/ssh/default.nix (100%) rename {modules/home => homeModules}/programs/ssh/ssh-auth-signers.nix (100%) rename {modules/home => homeModules}/programs/ssh/yubikey-back.pub (100%) rename {modules/home => homeModules}/programs/ssh/yubikey-main.pub (100%) rename {modules/home => homeModules}/programs/ssh/yubikey-new.pub (100%) rename {modules/home => homeModules}/programs/starship/default.nix (100%) rename {modules/home => homeModules}/programs/starship/settings.nix (100%) rename {modules/home => homeModules}/programs/vscodium/default.nix (99%) rename {modules/home => homeModules}/programs/wlogout/default.nix (100%) rename {modules/home => homeModules}/programs/wlogout/style.nix (100%) rename {modules/home => homeModules}/programs/zed-editor/default.nix (100%) rename {modules/home => homeModules}/programs/zed-editor/settings.nix (100%) rename {modules/home => homeModules}/scripts/default.nix (100%) create mode 100644 homeModules/services/default.nix rename {modules/home => homeModules}/services/gpg-agent/default.nix (100%) rename {modules/home => homeModules}/services/kanshi/default.nix (100%) rename {modules/home => homeModules}/services/kdeconnect/default.nix (100%) rename {modules/home => homeModules}/services/mako/default.nix (100%) rename {modules/home => homeModules}/services/swayidle/default.nix (100%) rename {modules/home => homeModules}/services/syncthing/default.nix (100%) rename {modules/home => homeModules}/theming/default.nix (77%) rename {modules/home => homeModules}/wayland/default.nix (100%) rename {modules/home => homeModules}/wayland/keybindings.nix (98%) rename {modules/home => homeModules}/wayland/sway.nix (97%) rename {modules/home => homeModules}/wayland/swaylock.nix (98%) rename {modules/home => homeModules}/wayland/waybar-mocha.css (100%) rename {modules/home => homeModules}/wayland/waybar-style.css (100%) rename {modules/home => homeModules}/wayland/waybar.nix (99%) rename {modules/home => homeModules}/xdg/default.nix (100%) delete mode 100644 homes/x86_64-linux/pyrox@marvin/default.nix delete mode 100644 homes/x86_64-linux/pyrox@prefect/default.nix delete mode 100644 homes/x86_64-linux/pyrox@thought/default.nix delete mode 100644 homes/x86_64-linux/pyrox@zaphod/default.nix delete mode 100644 homes/x86_64-linux/thehedgehog@marvin/default.nix delete mode 100644 homes/x86_64-linux/thehedgehog@prefect/default.nix delete mode 100644 homes/x86_64-linux/thehedgehog@thought/default.nix delete mode 100644 homes/x86_64-linux/thehedgehog@zaphod/default.nix create mode 100644 hosts/default.nix rename {systems/x86_64-linux => hosts}/marvin/bootloader.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/default.nix (95%) rename {systems/x86_64-linux => hosts}/marvin/firewall.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/hardware.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/networking.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/anubis.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/authentik.nix (98%) rename {systems/x86_64-linux => hosts}/marvin/services/avahi.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/bookstack.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/bots.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/buildbot.nix (92%) rename {systems/x86_64-linux => hosts}/marvin/services/deemix.nix (88%) rename {systems/x86_64-linux => hosts}/marvin/services/gdq-cals.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/git.nix (97%) rename {systems/x86_64-linux => hosts}/marvin/services/golink.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/grafana.nix (91%) rename {systems/x86_64-linux => hosts}/marvin/services/iceshrimp.nix (98%) rename {systems/x86_64-linux => hosts}/marvin/services/jellyfin.nix (92%) rename {systems/x86_64-linux => hosts}/marvin/services/matrix.nix (95%) rename {systems/x86_64-linux => hosts}/marvin/services/miniflux.nix (85%) rename {systems/x86_64-linux => hosts}/marvin/services/minio.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/nextcloud/default.nix (94%) rename {systems/x86_64-linux => hosts}/marvin/services/nextcloud/imaginary.nix (73%) rename {systems/x86_64-linux => hosts}/marvin/services/nextcloud/nextcloud-admin-pw.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/nextcloud/office.nix (75%) rename {systems/x86_64-linux => hosts}/marvin/services/nginx.nix (79%) rename {systems/x86_64-linux => hosts}/marvin/services/pinchflat.nix (93%) rename {systems/x86_64-linux => hosts}/marvin/services/pingvin-share.nix (93%) rename {systems/x86_64-linux => hosts}/marvin/services/planka.nix (91%) rename {systems/x86_64-linux => hosts}/marvin/services/pocket-id.nix (88%) rename {systems/x86_64-linux => hosts}/marvin/services/podman.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/postgres.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/prometheus.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/prosody.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/redlib.nix (69%) rename {systems/x86_64-linux => hosts}/marvin/services/scrutiny.nix (90%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/anubis-key.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/authentik-env.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/buildbot/gitea-token.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/buildbot/oauth-secret.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/buildbot/worker-password.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/buildbot/workers.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/aux-docs-runner-token.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/db-pw.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/default-runner-token.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/gitgay-runner-token.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/internal-token.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/lfs-jwt-secret.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/mail-pw.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/oauth2-jwt-secret.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/forgejo/secret-key.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/golink-authkey.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/grafana-admin-password.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/grafana-smtp-password.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/iceshrimp-db-password.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/iceshrimp-secret-config.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/jellyfin-exporter-config.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/miniflux-admin.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/minio-root.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/nix-serve-priv.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/pinchflat-secrets.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/pingvin-secrets.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/planka-env.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/pocket-id-secrets.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/secrets.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/thehedgehog-key.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/thehedgehog-pem.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/vaultwarden-pgpass.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/vaultwarden-vars.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/secrets/webmentiond-env.age (100%) rename {systems/x86_64-linux => hosts}/marvin/services/syncthing.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/tailscale.nix (100%) rename {systems/x86_64-linux => hosts}/marvin/services/tangled.nix (90%) rename {systems/x86_64-linux => hosts}/marvin/services/vaultwarden.nix (95%) rename {systems/x86_64-linux => hosts}/marvin/services/webmentiond.nix (89%) rename {systems/x86_64-linux => hosts}/marvin/services/zfs.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/bootloader.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/default.nix (93%) rename {systems/x86_64-linux => hosts}/prefect/dn42/bgp.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/dn42/bird.conf (100%) rename {systems/x86_64-linux => hosts}/prefect/dn42/default.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/dn42/services.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/dn42/tunnels.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/dn42/wireguard.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/firewall.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/hardware.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/networking.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/packages.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/acme-creds.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/dn42-peerfinder-uuid.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/dn42-privkey.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/headscale-oidc-secret.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/secrets.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/stalwart-desec-token.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/stalwart-fallback-admin-pw.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/stalwart-secret-ed25519.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/stalwart-secret-rsa.age (100%) rename {systems/x86_64-linux => hosts}/prefect/secrets/wireguard-priv-key.age (100%) rename {systems/x86_64-linux => hosts}/prefect/services/acme.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/blog-update.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/blog-update.sh (100%) rename {systems/x86_64-linux => hosts}/prefect/services/caddy.nix (97%) rename {systems/x86_64-linux => hosts}/prefect/services/dn42-peerfinder.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/fail2ban.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/headscale.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/default.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/logins.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/monitoring.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/overrides.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/acme.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/auth.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/auto-ban.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/calendar.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/default.nix (99%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/imap.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/queue.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/report.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/server.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/session.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/mailserver/stalwart/signature.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/named.conf (100%) rename {systems/x86_64-linux => hosts}/prefect/services/netdata.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/nginx/default.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/nginx/pyrox.dev.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/prometheus.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/secrets.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/tailscale.nix (100%) rename {systems/x86_64-linux => hosts}/prefect/services/zerotier.nix (100%) rename {systems/x86_64-linux => hosts}/thought/bootloader.nix (100%) rename {systems/x86_64-linux => hosts}/thought/default.nix (94%) rename {systems/x86_64-linux => hosts}/thought/disks.nix (100%) rename {systems/x86_64-linux => hosts}/thought/firewall.nix (100%) rename {systems/x86_64-linux => hosts}/thought/hardware.nix (100%) rename {systems/x86_64-linux => hosts}/thought/networking.nix (100%) rename {systems/x86_64-linux => hosts}/thought/packages.nix (100%) rename {systems/x86_64-linux => hosts}/thought/secrets/secrets.nix (100%) rename {systems/x86_64-linux => hosts}/thought/services/prometheus.nix (100%) rename {systems/x86_64-linux => hosts}/thought/services/tailscale.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/bootloader.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/console.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/default.nix (95%) rename {systems/x86_64-linux => hosts}/zaphod/fonts.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/hardware.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/kde.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/misc.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/networking.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/packages.nix (95%) rename {systems/x86_64-linux => hosts}/zaphod/power.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/programs/gnupg.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/programs/ssh.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/programs/sway.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/programs/zsh.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/secret-files.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/secrets/secrets.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/secrets/wg-privkey.age (100%) rename {systems/x86_64-linux => hosts}/zaphod/security/modules.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/security/pam.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/avahi.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/docker.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/flatpak.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/fprintd.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/fwupd.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/greeter.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/kmscon.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/misc.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/modules.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/packagekit.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/pcscd.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/pipewire.nix (100%) rename {systems/x86_64-linux => hosts}/zaphod/services/ssh.nix (100%) rename {modules/nixos/default-config => hosts/zaphod}/services/tailscale.nix (100%) create mode 100644 lib/default.nix delete mode 100644 modules/nixos/default-config/nixpkgsConfig.nix rename {modules/nixos => nixosModules}/default-config/bootloader.nix (100%) rename {modules/nixos => nixosModules}/default-config/default.nix (100%) rename {modules/nixos => nixosModules}/default-config/networking.nix (100%) rename {modules/nixos => nixosModules}/default-config/nixConfig.nix (82%) create mode 100644 nixosModules/default-config/nixpkgsConfig.nix rename {modules/nixos => nixosModules}/default-config/packages.nix (100%) rename {modules/nixos => nixosModules}/default-config/programs/default.nix (100%) rename {modules/nixos => nixosModules}/default-config/programs/nh.nix (100%) rename {modules/nixos => nixosModules}/default-config/programs/ssh.nix (100%) rename {modules/nixos => nixosModules}/default-config/root.nix (100%) rename {modules/nixos => nixosModules}/default-config/secrets/powerdns-secrets.age (100%) rename {modules/nixos => nixosModules}/default-config/secrets/secrets.nix (100%) rename {modules/nixos => nixosModules}/default-config/security.nix (100%) rename {modules/nixos => nixosModules}/default-config/services/default.nix (100%) rename {modules/nixos => nixosModules}/default-config/services/ntp.nix (100%) rename {systems/x86_64-linux/zaphod => nixosModules/default-config}/services/tailscale.nix (100%) rename {modules/nixos => nixosModules}/default-config/ssh.nix (100%) rename {modules/nixos => nixosModules}/default-config/users.nix (100%) rename {modules/nixos => nixosModules}/default-users/backup.pub (100%) rename {modules/nixos => nixosModules}/default-users/default.nix (100%) rename {modules/nixos => nixosModules}/default-users/yubikey-back.pub (100%) rename {modules/nixos => nixosModules}/default-users/yubikey-main.pub (100%) rename {modules/nixos => nixosModules}/default-users/yubikey-new.pub (100%) create mode 100644 nixosModules/default.nix create mode 100644 nixosModules/homes/.default.nix.bak create mode 100644 nixosModules/homes/pyrox-zaphod/default.nix rename {homes/x86_64-linux/pyrox@zaphod => nixosModules/homes/pyrox-zaphod}/files/distrobox-config.nix (100%) rename {homes/x86_64-linux/pyrox@zaphod => nixosModules/homes/pyrox-zaphod}/files/pamKeys.nix (100%) create mode 100644 nixosModules/homes/pyrox/default.nix create mode 100644 nixosModules/homes/thehedgehog-zaphod/default.nix create mode 100644 nixosModules/homes/thehedgehog/default.nix rename {modules/nixos => nixosModules}/profiles/default.nix (77%) rename {modules/nixos => nixosModules}/programs/chromium/default.nix (100%) rename {modules/nixos => nixosModules}/programs/chromium/extraOpts.nix (100%) rename {modules/nixos => nixosModules}/programs/firefox/default.nix (100%) rename {modules/nixos => nixosModules}/programs/firefox/extensions.nix (100%) rename {modules/nixos => nixosModules}/programs/firefox/extraPrefs.nix (100%) rename {modules/nixos => nixosModules}/programs/firefox/policies.nix (100%) rename {modules/nixos => nixosModules}/programs/misc/default.nix (100%) rename {modules/nixos => nixosModules}/programs/neovim/default.nix (93%) rename {modules/nixos => nixosModules}/services/buildbot/default.nix (100%) rename {modules/nixos => nixosModules}/services/forgejo-runner/default.nix (100%) rename {modules/nixos => nixosModules}/services/scrutiny/default.nix (80%) create mode 100644 overlays/default.nix create mode 100644 packages/default.nix create mode 100644 templates/default.nix diff --git a/MIGRATE.md b/MIGRATE.md new file mode 100644 index 00000000..790b3307 --- /dev/null +++ b/MIGRATE.md @@ -0,0 +1,6 @@ +- [ ] easy-hosts +- [ ] HM Configs +- [x] modules +- [x] packages +- [x] devShells +- [x] overlays diff --git a/checks/deploy/default.nix b/checks/deploy/default.nix deleted file mode 100644 index 84b64a8b..00000000 --- a/checks/deploy/default.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ inputs, ... }: -builtins.mapAttrs (_: deployLib: deployLib.deployChecks inputs.self.deploy) inputs.deploy-rs.lib diff --git a/devShells/default.nix b/devShells/default.nix new file mode 100644 index 00000000..8f9d68fb --- /dev/null +++ b/devShells/default.nix @@ -0,0 +1,12 @@ +{ + ... +}: +{ + perSystem = + { pkgs, ... }: + { + devShells = { + default = pkgs.callPackage ./default { }; + }; + }; +} diff --git a/shells/default/default.nix b/devShells/default/default.nix similarity index 100% rename from shells/default/default.nix rename to devShells/default/default.nix diff --git a/flake.lock b/flake.lock index 5b98215d..848b3747 100644 --- a/flake.lock +++ b/flake.lock @@ -52,18 +52,18 @@ "nixpkgs": [ "nixpkgs" ], - "treefmt-nix": "treefmt-nix" + "treefmt-nix": [] }, "locked": { - "lastModified": 1758204241, - "narHash": "sha256-xKl3mXyML/NCWUYrZ9ww/fXfTWvGvNnXgDBrpDy/c2Y=", - "owner": "Mic92", + "lastModified": 1758897213, + "narHash": "sha256-pLZgNsmCMhTWd8aRuGkK23ik5nclpIn1flnURKH6QjI=", + "owner": "nix-community", "repo": "buildbot-nix", - "rev": "82745470e3fa50e1bdcc8f59745121aa29f1ac7a", + "rev": "985d069a2a45cf4a571a4346107671adc2bd2a16", "type": "github" }, "original": { - "owner": "Mic92", + "owner": "nix-community", "repo": "buildbot-nix", "type": "github" } @@ -108,32 +108,6 @@ "type": "github" } }, - "deploy-rs": { - "inputs": { - "flake-compat": [ - "flake-compat" - ], - "nixpkgs": [ - "nixpkgs" - ], - "utils": [ - "flake-utils" - ] - }, - "locked": { - "lastModified": 1756719547, - "narHash": "sha256-N9gBKUmjwRKPxAafXEk1EGadfk2qDZPBQp4vXWPHINQ=", - "owner": "serokell", - "repo": "deploy-rs", - "rev": "125ae9e3ecf62fb2c0fd4f2d894eb971f1ecaed2", - "type": "github" - }, - "original": { - "owner": "serokell", - "repo": "deploy-rs", - "type": "github" - } - }, "determinate": { "inputs": { "determinate-nixd-aarch64-darwin": "determinate-nixd-aarch64-darwin", @@ -246,6 +220,21 @@ "type": "github" } }, + "easy-hosts": { + "locked": { + "lastModified": 1755470564, + "narHash": "sha256-KB1ZryVDoQcbIsItOf4WtxkHhh3ppj+XwMpSnt/2QHc=", + "owner": "tgirlcloud", + "repo": "easy-hosts", + "rev": "d0422bc7b3db26268982aa15d07e60370e76ee1d", + "type": "github" + }, + "original": { + "owner": "tgirlcloud", + "repo": "easy-hosts", + "type": "github" + } + }, "flake-compat": { "locked": { "lastModified": 1747046372, @@ -315,46 +304,9 @@ "type": "github" } }, - "flake-utils-plus": { - "inputs": { - "flake-utils": "flake-utils_2" - }, - "locked": { - "lastModified": 1715533576, - "narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=", - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", - "type": "github" - }, - "original": { - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", - "type": "github" - } - }, "flake-utils_2": { "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" + "systems": "systems_2" }, "locked": { "lastModified": 1694529238, @@ -443,9 +395,9 @@ }, "gomod2nix": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": [ - "tangled-sh", + "tangled", "nixpkgs" ] }, @@ -835,10 +787,10 @@ "agenix": "agenix", "buildbot-nix": "buildbot-nix", "ctp": "ctp", - "deploy-rs": "deploy-rs", "determinate": "determinate", "dix": "dix", "dns": "dns", + "easy-hosts": "easy-hosts", "flake-compat": "flake-compat", "flake-parts": "flake-parts", "flake-utils": "flake-utils", @@ -854,34 +806,9 @@ "nixpkgs": "nixpkgs_2", "nixpkgs-lib": "nixpkgs-lib", "nixpkgs-stalwart-fix": "nixpkgs-stalwart-fix", - "snowfall-lib": "snowfall-lib", "stable": "stable", - "systems": "systems_2", - "tangled-sh": "tangled-sh" - } - }, - "snowfall-lib": { - "inputs": { - "flake-compat": [ - "flake-compat" - ], - "flake-utils-plus": "flake-utils-plus", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736130495, - "narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=", - "owner": "snowfallorg", - "repo": "lib", - "rev": "02d941739f98a09e81f3d2d9b3ab08918958beac", - "type": "github" - }, - "original": { - "owner": "snowfallorg", - "repo": "lib", - "type": "github" + "systems": "systems", + "tangled": "tangled" } }, "sqlite-lib-src": { @@ -943,22 +870,7 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "tangled-sh": { + "tangled": { "inputs": { "flake-compat": "flake-compat_2", "gomod2nix": "gomod2nix", @@ -972,38 +884,17 @@ "sqlite-lib-src": "sqlite-lib-src" }, "locked": { - "lastModified": 1758343819, - "narHash": "sha256-lXoRA/zM7V8f5SvSZMdPSMpZiFkFnx3RV0RfovQbqzg=", + "lastModified": 1758990466, + "narHash": "sha256-PPxdekQr5z5N37CznPm98XBm7WeMZ5+5pctJ0n/5O0I=", "ref": "refs/heads/master", - "rev": "796f739caf7df25436e0ac3a8880dca54d6238db", - "revCount": 1366, + "rev": "4132d1b923e4b9f65cb74339a3d72f38b0379195", + "revCount": 1452, "type": "git", - "url": "https://tangled.sh/@tangled.sh/core" + "url": "https://tangled.org/@tangled.org/core" }, "original": { "type": "git", - "url": "https://tangled.sh/@tangled.sh/core" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "buildbot-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1756662192, - "narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" + "url": "https://tangled.org/@tangled.org/core" } } }, diff --git a/flake.nix b/flake.nix index 013f7bbd..cceebceb 100644 --- a/flake.nix +++ b/flake.nix @@ -19,10 +19,9 @@ description = "PyroNet machines and services"; inputs = { - snowfall-lib = { - url = "github:snowfallorg/lib"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.flake-compat.follows = "flake-compat"; + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs-lib"; }; nixpkgs.url = "https://nixpkgs.dev/channel/nixpkgs-unstable"; nixpkgs-stalwart-fix.url = "github:pyrox0/nixpkgs/fix/stalwart-module"; @@ -30,10 +29,6 @@ # Overrides flake-compat.url = "github:edolstra/flake-compat"; systems.url = "github:nix-systems/default"; - flake-parts = { - url = "github:hercules-ci/flake-parts"; - inputs.nixpkgs-lib.follows = "nixpkgs-lib"; - }; flake-utils = { url = "github:numtide/flake-utils"; inputs.systems.follows = "systems"; @@ -50,21 +45,14 @@ }; }; buildbot-nix = { - url = "github:Mic92/buildbot-nix"; + url = "github:nix-community/buildbot-nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-parts.follows = "flake-parts"; + inputs.treefmt-nix.follows = ""; }; ctp = { url = "github:catppuccin/nix"; }; - deploy-rs = { - url = "github:serokell/deploy-rs"; - inputs = { - nixpkgs.follows = "nixpkgs"; - utils.follows = "flake-utils"; - flake-compat.follows = "flake-compat"; - }; - }; dix = { url = "https://flakehub.com/f/DeterminateSystems/nix-src/*"; inputs = { @@ -88,7 +76,7 @@ inputs.flake-utils.follows = "flake-utils"; inputs.nixpkgs.follows = "nixpkgs"; }; - + easy-hosts.url = "github:tgirlcloud/easy-hosts"; golink = { url = "github:tailscale/golink"; inputs.systems.follows = "systems"; @@ -131,88 +119,58 @@ url = "git+https://git.pyrox.dev/pyrox/pkgs"; inputs.nixpkgs.follows = "nixpkgs"; }; - tangled-sh = { - url = "git+https://tangled.sh/@tangled.sh/core"; + tangled = { + url = "git+https://tangled.org/@tangled.org/core"; }; }; outputs = - inputs@{ self, ... }: - let - lib = inputs.snowfall-lib.mkLib { - inherit inputs; - src = ./.; - snowfall = { - meta = { - name = "pyronet"; - title = "PyroNet Config"; - }; - namespace = "py"; - }; - }; - overlays = [ - self.overlays.pyronet-packages - self.overlays.nix-index - self.overlays.openssh-fixperms - inputs.golink.overlays.default + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + # Systems we want to build for + systems = [ + "x86_64-linux" ]; - in - lib.mkFlake { - # Nixpkgs configuration - channels-config = { - allowUnfree = true; - }; - - # Overlays for Nixpkgs. - inherit overlays; - - # Home-manager configurations - homes = { - # Default modules for all homes - modules = with inputs; [ - nix-index-database.homeModules.nix-index - ctp.homeModules.catppuccin - ]; - }; - - # NixOS Configurations - systems = { - # Modules for all systems - modules.nixos = with inputs; [ - agenix.nixosModules.default - buildbot-nix.nixosModules.buildbot-worker - ctp.nixosModules.catppuccin - determinate.nixosModules.default - ]; - hosts = { - # Zaphod, my personal Framework 16 laptop - zaphod.modules = with inputs; [ hardware.nixosModules.framework-16-7040-amd ]; - # Prefect, my main VPS - prefect.modules = with inputs; [ mailserver.nixosModule ]; + # Flake modules + imports = [ + inputs.easy-hosts.flakeModule + inputs.home-manager.flakeModules.home-manager + ./packages + ./lib + ./overlays + ./devShells + ./nixosModules + ./homeModules + ./templates + ./hosts + ]; - # Marvin, my main homelab machine - marvin.modules = with inputs; [ - buildbot-nix.nixosModules.buildbot-master - golink.nixosModules.default - iceshrimp.nixosModules.default - tangled-sh.nixosModules.knot - tangled-sh.nixosModules.spindle - ]; - }; - }; - templates = { - uv.description = "Python template flake that uses uv"; - }; + # # Flake attributes + # flake = { + # + # }; - outputs-builder = channels: { - # Define default packages to use everywhere - packages = { - nvim = channels.nixpkgs.neovim-unwrapped; + # Per-system stuff + perSystem = + { + pkgs, + system, + ... + }: + { + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ + # inputs.self.overlays.pyronet-packages + inputs.self.overlays.openssh-fixperms + inputs.golink.overlays.default + ]; + config = { + allowUnfree = true; + }; + }; + formatter = pkgs.nixfmt; }; - formatter = channels.nixpkgs.nixfmt-rfc-style; - - }; - deploy = lib.mkDeploy { inherit (inputs) self; }; }; } diff --git a/homeModules/all-modules.nix b/homeModules/all-modules.nix new file mode 100644 index 00000000..d804ed8c --- /dev/null +++ b/homeModules/all-modules.nix @@ -0,0 +1,15 @@ +{ inputs, ... }: +{ + imports = [ + inputs.self.homeModules.profiles + inputs.self.homeModules.programs + inputs.self.homeModules.scripts + inputs.self.homeModules.services + inputs.self.homeModules.theming + inputs.self.homeModules.wayland + inputs.self.homeModules.xdg + + inputs.nix-index-database.homeModules.nix-index + inputs.ctp.homeModules.catppuccin + ]; +} diff --git a/homeModules/default.nix b/homeModules/default.nix new file mode 100644 index 00000000..54c79311 --- /dev/null +++ b/homeModules/default.nix @@ -0,0 +1,13 @@ +{ inputs, flake-parts-lib, ... }: +{ + flake.homeModules = { + wayland = import ./wayland; + xdg = import ./xdg; + programs = import ./programs; + services = import ./services; + scripts = import ./scripts; + theming = import ./theming; + profiles = import ./profiles; + allModules = flake-parts-lib.importApply ./all-modules.nix { inherit inputs; }; + }; +} diff --git a/modules/home/profiles/base/default.nix b/homeModules/profiles/base/default.nix similarity index 83% rename from modules/home/profiles/base/default.nix rename to homeModules/profiles/base/default.nix index a67974c4..87a4b1d4 100644 --- a/modules/home/profiles/base/default.nix +++ b/homeModules/profiles/base/default.nix @@ -3,14 +3,14 @@ lib, ... }: + let cfg = config.py.profiles.base; in { options.py.profiles.base.enable = lib.mkEnableOption "Base Home Profile"; config = lib.mkIf cfg.enable { - programs.home-manager.enable = true; - home.stateVersion = "25.05"; + home.stateVersion = "25.11"; home.language = { base = "en_US.utf8"; }; diff --git a/modules/home/profiles/cli/default.nix b/homeModules/profiles/cli/default.nix similarity index 90% rename from modules/home/profiles/cli/default.nix rename to homeModules/profiles/cli/default.nix index 5c616e8f..d779ce0b 100644 --- a/modules/home/profiles/cli/default.nix +++ b/homeModules/profiles/cli/default.nix @@ -2,17 +2,16 @@ pkgs, lib, config, - inputs, - system, ... }: let + inherit (lib) mkDefault mkEnableOption; cfg = config.py.profiles.cli; - inherit (lib) mkEnableOption mkDefault mkIf; in { options.py.profiles.cli.enable = mkEnableOption "CLI Profile"; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { + py.profiles.base.enable = true; py.programs = { bat.enable = mkDefault true; direnv.enable = mkDefault true; @@ -58,12 +57,12 @@ in fzf glow gnupg + nix-search pinentry rbw rsync xdg-utils yt-dlp - inputs.nix-search.packages.${system}.default ]; }; } diff --git a/modules/home/profiles/cli/rbw-config.json b/homeModules/profiles/cli/rbw-config.json similarity index 100% rename from modules/home/profiles/cli/rbw-config.json rename to homeModules/profiles/cli/rbw-config.json diff --git a/homeModules/profiles/default.nix b/homeModules/profiles/default.nix new file mode 100644 index 00000000..9ecefc3a --- /dev/null +++ b/homeModules/profiles/default.nix @@ -0,0 +1,10 @@ +{ + imports = [ + ./base/default.nix + ./cli/default.nix + ./desktop/default.nix + ./development/default.nix + ./gui/default.nix + ./server/default.nix + ]; +} diff --git a/modules/home/profiles/desktop/default.nix b/homeModules/profiles/desktop/default.nix similarity index 84% rename from modules/home/profiles/desktop/default.nix rename to homeModules/profiles/desktop/default.nix index 5e910726..446a53bd 100644 --- a/modules/home/profiles/desktop/default.nix +++ b/homeModules/profiles/desktop/default.nix @@ -1,7 +1,7 @@ { pkgs, - config, lib, + config, ... }: let @@ -11,12 +11,10 @@ in { options.py.profiles.desktop.enable = mkEnableOption "Desktop Config"; config = mkIf cfg.enable { - py.profiles = { - base.enable = mkDefault true; - cli.enable = mkDefault true; - gui.enable = mkDefault true; - development.enable = mkDefault true; - }; + py.profiles.base.enable = true; + py.profiles.cli.enable = true; + py.profiles.gui.enable = true; + py.profiles.development.enable = true; programs.mpv = { enable = mkDefault true; scripts = with pkgs.mpvScripts; [ diff --git a/modules/home/profiles/development/default.nix b/homeModules/profiles/development/default.nix similarity index 100% rename from modules/home/profiles/development/default.nix rename to homeModules/profiles/development/default.nix index 42ab2355..74100a68 100644 --- a/modules/home/profiles/development/default.nix +++ b/homeModules/profiles/development/default.nix @@ -1,7 +1,7 @@ { pkgs, - lib, config, + lib, ... }: let diff --git a/modules/home/profiles/gui/default.nix b/homeModules/profiles/gui/default.nix similarity index 92% rename from modules/home/profiles/gui/default.nix rename to homeModules/profiles/gui/default.nix index a3b6cdea..d8b5e643 100644 --- a/modules/home/profiles/gui/default.nix +++ b/homeModules/profiles/gui/default.nix @@ -1,22 +1,21 @@ { pkgs, lib, - config, osConfig, + config, ... }: let + inherit (lib) mkDefault mkEnableOption; cfg = config.py.profiles.gui; - inherit (lib) mkEnableOption mkIf mkDefault; in { options.py.profiles.gui.enable = mkEnableOption "GUI Profile"; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home.sessionVariables = { XDG_CURRENT_DESKTOP = "sway"; }; py = { - gui.enable = true; programs = { chromium.enable = mkDefault true; firefox.enable = mkDefault true; diff --git a/modules/home/profiles/server/default.nix b/homeModules/profiles/server/default.nix similarity index 55% rename from modules/home/profiles/server/default.nix rename to homeModules/profiles/server/default.nix index 8848258c..9811d1f7 100644 --- a/modules/home/profiles/server/default.nix +++ b/homeModules/profiles/server/default.nix @@ -1,13 +1,15 @@ -{ lib, config, ... }: +{ + lib, + config, + ... +}: let cfg = config.py.profiles.server; in { options.py.profiles.server.enable = lib.mkEnableOption "Server Profile"; config = lib.mkIf cfg.enable { - py.profiles = { - base.enable = lib.mkDefault true; - cli.enable = lib.mkDefault true; - }; + py.profiles.base.enable = true; + py.profiles.cli.enable = true; }; } diff --git a/modules/home/programs/chromium/default.nix b/homeModules/programs/chromium/default.nix similarity index 100% rename from modules/home/programs/chromium/default.nix rename to homeModules/programs/chromium/default.nix diff --git a/homeModules/programs/default.nix b/homeModules/programs/default.nix new file mode 100644 index 00000000..7e8a8800 --- /dev/null +++ b/homeModules/programs/default.nix @@ -0,0 +1,21 @@ +{ + imports = [ + ./chromium + ./firefox + ./fish + ./ghostty + ./git + ./gpg + ./helix + ./kitty + ./misc-programs + ./neovim + ./nushell + ./onagre + ./ssh + ./starship + ./vscodium + ./wlogout + ./zed-editor + ]; +} diff --git a/modules/home/programs/firefox/default.nix b/homeModules/programs/firefox/default.nix similarity index 100% rename from modules/home/programs/firefox/default.nix rename to homeModules/programs/firefox/default.nix diff --git a/modules/home/programs/fish/default.nix b/homeModules/programs/fish/default.nix similarity index 100% rename from modules/home/programs/fish/default.nix rename to homeModules/programs/fish/default.nix diff --git a/modules/home/programs/ghostty/default.nix b/homeModules/programs/ghostty/default.nix similarity index 100% rename from modules/home/programs/ghostty/default.nix rename to homeModules/programs/ghostty/default.nix diff --git a/modules/home/programs/ghostty/settings.nix b/homeModules/programs/ghostty/settings.nix similarity index 100% rename from modules/home/programs/ghostty/settings.nix rename to homeModules/programs/ghostty/settings.nix diff --git a/modules/home/programs/git/default.nix b/homeModules/programs/git/default.nix similarity index 95% rename from modules/home/programs/git/default.nix rename to homeModules/programs/git/default.nix index 159639e6..fef7c70f 100644 --- a/modules/home/programs/git/default.nix +++ b/homeModules/programs/git/default.nix @@ -58,7 +58,7 @@ in extraConfig = { branch.sort = "-committerdate"; column.ui = "auto"; - core.editor = lib.getExe pkgs.py.nvim; + core.editor = lib.getExe pkgs.neovim; "credential \"https://git.pyrox.dev\"".username = "pyrox"; credential.helper = "rbw"; diff = { @@ -117,9 +117,9 @@ in enable = true; gitCredentialHelper.enable = true; settings = { - editor = lib.getExe pkgs.py.nvim; + editor = lib.getExe pkgs.neovim; git_protocol = "https"; - browser = lib.mkIf config.py.gui.enable pkgs.firefox; + browser = lib.mkIf config.py.profiles.gui.enable pkgs.firefox; prompt = "enabled"; }; }; diff --git a/modules/home/programs/gpg/default.nix b/homeModules/programs/gpg/default.nix similarity index 100% rename from modules/home/programs/gpg/default.nix rename to homeModules/programs/gpg/default.nix diff --git a/modules/home/programs/helix/default.nix b/homeModules/programs/helix/default.nix similarity index 100% rename from modules/home/programs/helix/default.nix rename to homeModules/programs/helix/default.nix diff --git a/modules/home/programs/helix/settings.nix b/homeModules/programs/helix/settings.nix similarity index 100% rename from modules/home/programs/helix/settings.nix rename to homeModules/programs/helix/settings.nix diff --git a/modules/home/programs/kitty/default.nix b/homeModules/programs/kitty/default.nix similarity index 100% rename from modules/home/programs/kitty/default.nix rename to homeModules/programs/kitty/default.nix diff --git a/modules/home/programs/kitty/settings.nix b/homeModules/programs/kitty/settings.nix similarity index 100% rename from modules/home/programs/kitty/settings.nix rename to homeModules/programs/kitty/settings.nix diff --git a/modules/home/programs/misc-programs/default.nix b/homeModules/programs/misc-programs/default.nix similarity index 100% rename from modules/home/programs/misc-programs/default.nix rename to homeModules/programs/misc-programs/default.nix diff --git a/modules/home/programs/misc-programs/direnv-stdlib.sh b/homeModules/programs/misc-programs/direnv-stdlib.sh similarity index 100% rename from modules/home/programs/misc-programs/direnv-stdlib.sh rename to homeModules/programs/misc-programs/direnv-stdlib.sh diff --git a/modules/home/programs/neovim/default.nix b/homeModules/programs/neovim/default.nix similarity index 54% rename from modules/home/programs/neovim/default.nix rename to homeModules/programs/neovim/default.nix index b8598565..8bfc0a93 100644 --- a/modules/home/programs/neovim/default.nix +++ b/homeModules/programs/neovim/default.nix @@ -12,26 +12,24 @@ in config.programs.neovim = lib.mkIf cfg.enable { enable = true; - package = pkgs.py.nvim; viAlias = true; vimAlias = true; vimdiffAlias = true; withRuby = false; withNodeJs = false; withPython3 = false; - extraPackages = - [ - pkgs.bottom - pkgs.fd - pkgs.gcc - pkgs.go - pkgs.nodejs - ] - ++ lib.optionals config.py.profiles.gui.enable [ - pkgs.ffmpegthumbnailer - pkgs.fontpreview - pkgs.poppler - pkgs.ueberzug - ]; + extraPackages = [ + pkgs.bottom + pkgs.fd + pkgs.gcc + pkgs.go + pkgs.nodejs + ] + ++ lib.optionals config.py.profiles.gui.enable [ + pkgs.ffmpegthumbnailer + pkgs.fontpreview + pkgs.poppler + pkgs.ueberzug + ]; }; } diff --git a/modules/home/programs/nushell/config.nu b/homeModules/programs/nushell/config.nu similarity index 100% rename from modules/home/programs/nushell/config.nu rename to homeModules/programs/nushell/config.nu diff --git a/modules/home/programs/nushell/default.nix b/homeModules/programs/nushell/default.nix similarity index 100% rename from modules/home/programs/nushell/default.nix rename to homeModules/programs/nushell/default.nix diff --git a/modules/home/programs/nushell/env.nu b/homeModules/programs/nushell/env.nu similarity index 100% rename from modules/home/programs/nushell/env.nu rename to homeModules/programs/nushell/env.nu diff --git a/modules/home/programs/onagre/default.nix b/homeModules/programs/onagre/default.nix similarity index 100% rename from modules/home/programs/onagre/default.nix rename to homeModules/programs/onagre/default.nix diff --git a/modules/home/programs/ssh/backup.pub b/homeModules/programs/ssh/backup.pub similarity index 100% rename from modules/home/programs/ssh/backup.pub rename to homeModules/programs/ssh/backup.pub diff --git a/modules/home/programs/ssh/default.nix b/homeModules/programs/ssh/default.nix similarity index 100% rename from modules/home/programs/ssh/default.nix rename to homeModules/programs/ssh/default.nix diff --git a/modules/home/programs/ssh/ssh-auth-signers.nix b/homeModules/programs/ssh/ssh-auth-signers.nix similarity index 100% rename from modules/home/programs/ssh/ssh-auth-signers.nix rename to homeModules/programs/ssh/ssh-auth-signers.nix diff --git a/modules/home/programs/ssh/yubikey-back.pub b/homeModules/programs/ssh/yubikey-back.pub similarity index 100% rename from modules/home/programs/ssh/yubikey-back.pub rename to homeModules/programs/ssh/yubikey-back.pub diff --git a/modules/home/programs/ssh/yubikey-main.pub b/homeModules/programs/ssh/yubikey-main.pub similarity index 100% rename from modules/home/programs/ssh/yubikey-main.pub rename to homeModules/programs/ssh/yubikey-main.pub diff --git a/modules/home/programs/ssh/yubikey-new.pub b/homeModules/programs/ssh/yubikey-new.pub similarity index 100% rename from modules/home/programs/ssh/yubikey-new.pub rename to homeModules/programs/ssh/yubikey-new.pub diff --git a/modules/home/programs/starship/default.nix b/homeModules/programs/starship/default.nix similarity index 100% rename from modules/home/programs/starship/default.nix rename to homeModules/programs/starship/default.nix diff --git a/modules/home/programs/starship/settings.nix b/homeModules/programs/starship/settings.nix similarity index 100% rename from modules/home/programs/starship/settings.nix rename to homeModules/programs/starship/settings.nix diff --git a/modules/home/programs/vscodium/default.nix b/homeModules/programs/vscodium/default.nix similarity index 99% rename from modules/home/programs/vscodium/default.nix rename to homeModules/programs/vscodium/default.nix index e9dd4790..847cb0a6 100644 --- a/modules/home/programs/vscodium/default.nix +++ b/homeModules/programs/vscodium/default.nix @@ -47,7 +47,7 @@ in "update.showReleaseNotes" = false; "workbench.colorTheme" = "Catppuccin Mocha"; "workbench.iconTheme" = "catppuccin-mocha"; - "vscode-neovim.neovimExecutablePaths.linux" = lib.getExe pkgs.py.nvim; + "vscode-neovim.neovimExecutablePaths.linux" = lib.getExe pkgs.neovim; "python.formatting.provider" = "black"; }; }; diff --git a/modules/home/programs/wlogout/default.nix b/homeModules/programs/wlogout/default.nix similarity index 100% rename from modules/home/programs/wlogout/default.nix rename to homeModules/programs/wlogout/default.nix diff --git a/modules/home/programs/wlogout/style.nix b/homeModules/programs/wlogout/style.nix similarity index 100% rename from modules/home/programs/wlogout/style.nix rename to homeModules/programs/wlogout/style.nix diff --git a/modules/home/programs/zed-editor/default.nix b/homeModules/programs/zed-editor/default.nix similarity index 100% rename from modules/home/programs/zed-editor/default.nix rename to homeModules/programs/zed-editor/default.nix diff --git a/modules/home/programs/zed-editor/settings.nix b/homeModules/programs/zed-editor/settings.nix similarity index 100% rename from modules/home/programs/zed-editor/settings.nix rename to homeModules/programs/zed-editor/settings.nix diff --git a/modules/home/scripts/default.nix b/homeModules/scripts/default.nix similarity index 100% rename from modules/home/scripts/default.nix rename to homeModules/scripts/default.nix diff --git a/homeModules/services/default.nix b/homeModules/services/default.nix new file mode 100644 index 00000000..f899236c --- /dev/null +++ b/homeModules/services/default.nix @@ -0,0 +1,10 @@ +{ + imports = [ + ./gpg-agent + ./kanshi + ./kdeconnect + ./mako + ./swayidle + ./syncthing + ]; +} diff --git a/modules/home/services/gpg-agent/default.nix b/homeModules/services/gpg-agent/default.nix similarity index 100% rename from modules/home/services/gpg-agent/default.nix rename to homeModules/services/gpg-agent/default.nix diff --git a/modules/home/services/kanshi/default.nix b/homeModules/services/kanshi/default.nix similarity index 100% rename from modules/home/services/kanshi/default.nix rename to homeModules/services/kanshi/default.nix diff --git a/modules/home/services/kdeconnect/default.nix b/homeModules/services/kdeconnect/default.nix similarity index 100% rename from modules/home/services/kdeconnect/default.nix rename to homeModules/services/kdeconnect/default.nix diff --git a/modules/home/services/mako/default.nix b/homeModules/services/mako/default.nix similarity index 100% rename from modules/home/services/mako/default.nix rename to homeModules/services/mako/default.nix diff --git a/modules/home/services/swayidle/default.nix b/homeModules/services/swayidle/default.nix similarity index 100% rename from modules/home/services/swayidle/default.nix rename to homeModules/services/swayidle/default.nix diff --git a/modules/home/services/syncthing/default.nix b/homeModules/services/syncthing/default.nix similarity index 100% rename from modules/home/services/syncthing/default.nix rename to homeModules/services/syncthing/default.nix diff --git a/modules/home/theming/default.nix b/homeModules/theming/default.nix similarity index 77% rename from modules/home/theming/default.nix rename to homeModules/theming/default.nix index dfb4329d..6a06e041 100644 --- a/modules/home/theming/default.nix +++ b/homeModules/theming/default.nix @@ -6,20 +6,21 @@ }: let pro = config.py.profiles; + inherit (lib) mkDefault mkIf; in { catppuccin = { flavor = "mocha"; accent = "blue"; }; - home.pointerCursor = lib.mkIf pro.gui.enable { + home.pointerCursor = mkIf pro.gui.enable { package = pkgs.catppuccin-cursors.mochaBlue; name = "Catppuccin-Mocha-Blue"; gtk.enable = true; }; - gtk = lib.mkIf pro.gui.enable { + gtk = mkIf pro.gui.enable { enable = true; - theme = { + theme = mkDefault { name = "Colloid-Dark-Compact-Catppuccin"; package = pkgs.colloid-gtk-theme.override { tweaks = [ @@ -36,8 +37,8 @@ in size = 14; }; gtk3.bookmarks = [ "file:///${config.home.homeDirectory}/Downloads" ]; - iconTheme = { - package = pkgs.colloid-icon-theme; + iconTheme = mkIf pro.gui.enable { + package = mkDefault pkgs.colloid-icon-theme; name = "Colloid-Dark"; }; }; diff --git a/modules/home/wayland/default.nix b/homeModules/wayland/default.nix similarity index 100% rename from modules/home/wayland/default.nix rename to homeModules/wayland/default.nix diff --git a/modules/home/wayland/keybindings.nix b/homeModules/wayland/keybindings.nix similarity index 98% rename from modules/home/wayland/keybindings.nix rename to homeModules/wayland/keybindings.nix index 4e285ebc..e0fb4e68 100644 --- a/modules/home/wayland/keybindings.nix +++ b/homeModules/wayland/keybindings.nix @@ -7,7 +7,7 @@ let slurp-screen = "\"$(slurp -c -b '#1e1e2e80' -o -r)\" -"; slurp-box = "\"$(slurp -c '#f38ba8ff' -b '#1e1e2e80' -w 1 -d -F 'IBM Plex Mono')\" -"; satty = "satty -f -"; - cfg = config.py.gui; + cfg = config.py.profiles.gui; in { config.wayland.windowManager.sway.config.keybindings = lib.mkIf cfg.enable ( diff --git a/modules/home/wayland/sway.nix b/homeModules/wayland/sway.nix similarity index 97% rename from modules/home/wayland/sway.nix rename to homeModules/wayland/sway.nix index d87e8e5a..eb087771 100644 --- a/modules/home/wayland/sway.nix +++ b/homeModules/wayland/sway.nix @@ -7,12 +7,9 @@ let term = config.wayland.windowManager.sway.config.terminal; homeDir = config.home.homeDirectory; - cfg = config.py.gui; + cfg = config.py.profiles.gui; in { - options.py.gui = { - enable = lib.mkEnableOption "GUI Configuration"; - }; config = lib.mkIf cfg.enable { catppuccin = { sway.enable = true; diff --git a/modules/home/wayland/swaylock.nix b/homeModules/wayland/swaylock.nix similarity index 98% rename from modules/home/wayland/swaylock.nix rename to homeModules/wayland/swaylock.nix index c85e5f33..a702dc43 100644 --- a/modules/home/wayland/swaylock.nix +++ b/homeModules/wayland/swaylock.nix @@ -5,7 +5,7 @@ ... }: let - cfg = config.py.gui; + cfg = config.py.profiles.gui; in { catppuccin = { diff --git a/modules/home/wayland/waybar-mocha.css b/homeModules/wayland/waybar-mocha.css similarity index 100% rename from modules/home/wayland/waybar-mocha.css rename to homeModules/wayland/waybar-mocha.css diff --git a/modules/home/wayland/waybar-style.css b/homeModules/wayland/waybar-style.css similarity index 100% rename from modules/home/wayland/waybar-style.css rename to homeModules/wayland/waybar-style.css diff --git a/modules/home/wayland/waybar.nix b/homeModules/wayland/waybar.nix similarity index 99% rename from modules/home/wayland/waybar.nix rename to homeModules/wayland/waybar.nix index 99379bf7..b8c54b0f 100644 --- a/modules/home/wayland/waybar.nix +++ b/homeModules/wayland/waybar.nix @@ -5,7 +5,7 @@ ... }: let - cfg = config.py.gui; + cfg = config.py.profiles.gui; in { config = { diff --git a/modules/home/xdg/default.nix b/homeModules/xdg/default.nix similarity index 100% rename from modules/home/xdg/default.nix rename to homeModules/xdg/default.nix diff --git a/homes/x86_64-linux/pyrox@marvin/default.nix b/homes/x86_64-linux/pyrox@marvin/default.nix deleted file mode 100644 index 79301343..00000000 --- a/homes/x86_64-linux/pyrox@marvin/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - snowfallorg.user = { - enable = true; - }; - py = { - profiles.server.enable = true; - }; -} diff --git a/homes/x86_64-linux/pyrox@prefect/default.nix b/homes/x86_64-linux/pyrox@prefect/default.nix deleted file mode 100644 index 79301343..00000000 --- a/homes/x86_64-linux/pyrox@prefect/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - snowfallorg.user = { - enable = true; - }; - py = { - profiles.server.enable = true; - }; -} diff --git a/homes/x86_64-linux/pyrox@thought/default.nix b/homes/x86_64-linux/pyrox@thought/default.nix deleted file mode 100644 index 79301343..00000000 --- a/homes/x86_64-linux/pyrox@thought/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - snowfallorg.user = { - enable = true; - }; - py = { - profiles.server.enable = true; - }; -} diff --git a/homes/x86_64-linux/pyrox@zaphod/default.nix b/homes/x86_64-linux/pyrox@zaphod/default.nix deleted file mode 100644 index 66cbd7f1..00000000 --- a/homes/x86_64-linux/pyrox@zaphod/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - pkgs, - ... -}: -{ - imports = [ - ./files/pamKeys.nix - ./files/distrobox-config.nix - ]; - snowfallorg.user = { - enable = true; - }; - home.packages = [ - pkgs.mindustry - ]; - py = { - profiles.desktop.enable = true; - }; - py.services.kanshi.settings = [ - { - profile = { - name = "laptop-only"; - outputs = [ - { - criteria = "eDP-1"; - status = "enable"; - scale = 1.2; - position = "0,0"; - adaptiveSync = true; - } - ]; - }; - } - { - profile = { - name = "office"; - outputs = [ - { - criteria = "eDP-1"; - status = "enable"; - scale = 1.2; - position = "0,0"; - adaptiveSync = true; - } - { - criteria = "Acer Technologies SA241Y 0x1497CF17"; - status = "enable"; - scale = 1.0; - position = "2160,0"; - } - ]; - }; - } - ]; -} diff --git a/homes/x86_64-linux/thehedgehog@marvin/default.nix b/homes/x86_64-linux/thehedgehog@marvin/default.nix deleted file mode 100644 index 79301343..00000000 --- a/homes/x86_64-linux/thehedgehog@marvin/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - snowfallorg.user = { - enable = true; - }; - py = { - profiles.server.enable = true; - }; -} diff --git a/homes/x86_64-linux/thehedgehog@prefect/default.nix b/homes/x86_64-linux/thehedgehog@prefect/default.nix deleted file mode 100644 index 79301343..00000000 --- a/homes/x86_64-linux/thehedgehog@prefect/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - snowfallorg.user = { - enable = true; - }; - py = { - profiles.server.enable = true; - }; -} diff --git a/homes/x86_64-linux/thehedgehog@thought/default.nix b/homes/x86_64-linux/thehedgehog@thought/default.nix deleted file mode 100644 index 79301343..00000000 --- a/homes/x86_64-linux/thehedgehog@thought/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - snowfallorg.user = { - enable = true; - }; - py = { - profiles.server.enable = true; - }; -} diff --git a/homes/x86_64-linux/thehedgehog@zaphod/default.nix b/homes/x86_64-linux/thehedgehog@zaphod/default.nix deleted file mode 100644 index cf5dc9db..00000000 --- a/homes/x86_64-linux/thehedgehog@zaphod/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ - pkgs, - config, - ... -}: -{ - snowfallorg.user = { - enable = true; - }; - home.packages = [ - pkgs.mindustry - pkgs.signal-desktop - ]; - py.profiles.desktop.enable = true; - services.wpaperd = { - enable = true; - settings = { - default = { - path = "${config.home.homeDirectory}/bgs"; - duration = "3h"; - sorting = "random"; - queue-size = 50; - recursive = false; - }; - }; - }; - py.services.kanshi.settings = [ - { - profile = { - name = "laptop-only"; - outputs = [ - { - criteria = "eDP-1"; - status = "enable"; - scale = 1.2; - position = "0,0"; - adaptiveSync = true; - } - ]; - }; - } - { - profile = { - name = "office"; - outputs = [ - { - criteria = "eDP-1"; - status = "enable"; - scale = 1.2; - position = "0,0"; - adaptiveSync = true; - } - { - criteria = "Acer Technologies SA241Y 0x1497CF17"; - status = "enable"; - scale = 1.0; - position = "2160,0"; - } - ]; - }; - } - ]; -} diff --git a/hosts/default.nix b/hosts/default.nix new file mode 100644 index 00000000..29df6d8a --- /dev/null +++ b/hosts/default.nix @@ -0,0 +1,69 @@ +{ inputs, ... }: +{ + easy-hosts = { + shared = { + modules = [ + inputs.agenix.nixosModules.default + inputs.ctp.nixosModules.catppuccin + inputs.determinate.nixosModules.default + inputs.home-manager.nixosModules.home-manager + inputs.self.nixosModules.chromium + inputs.self.nixosModules.defaultConfig + inputs.self.nixosModules.defaultUsers + inputs.self.nixosModules.firefox + inputs.self.nixosModules.forgejo-runner + inputs.self.nixosModules.hm-pyrox + inputs.self.nixosModules.hm-thehedgehog + inputs.self.nixosModules.miscPrograms + inputs.self.nixosModules.neovim + inputs.self.nixosModules.profiles + inputs.self.nixosModules.scrutiny + ]; + }; + path = ./.; + hosts = { + marvin = { + deployable = true; + tags = [ + "server" + "home" + ]; + modules = [ + inputs.golink.nixosModules.default + inputs.tangled.nixosModules.knot + inputs.tangled.nixosModules.spindle + ]; + }; + prefect = { + deployable = true; + tags = [ + "server" + "vps" + ]; + modules = [ + inputs.mailserver.nixosModule + ]; + }; + thought = { + deployable = true; + tags = [ + "server" + "vps" + ]; + }; + zaphod = { + deployable = true; + tags = [ "laptop" ]; + modules = [ + inputs.hardware.nixosModules.framework-16-7040-amd + inputs.self.nixosModules.hm-pyrox-zaphod + inputs.self.nixosModules.hm-thehedgehog-zaphod + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + } + ]; + }; + }; + }; +} diff --git a/systems/x86_64-linux/marvin/bootloader.nix b/hosts/marvin/bootloader.nix similarity index 100% rename from systems/x86_64-linux/marvin/bootloader.nix rename to hosts/marvin/bootloader.nix diff --git a/systems/x86_64-linux/marvin/default.nix b/hosts/marvin/default.nix similarity index 95% rename from systems/x86_64-linux/marvin/default.nix rename to hosts/marvin/default.nix index f848298f..579ad3d0 100644 --- a/systems/x86_64-linux/marvin/default.nix +++ b/hosts/marvin/default.nix @@ -1,4 +1,4 @@ -{ system, ... }: +{ ... }: { imports = [ # Machine-specific configurations. @@ -17,7 +17,7 @@ ./services/git.nix ./services/golink.nix ./services/grafana.nix - ./services/iceshrimp.nix + # ./services/iceshrimp.nix ./services/jellyfin.nix ./services/matrix.nix ./services/miniflux.nix @@ -39,7 +39,6 @@ ./services/zfs.nix ]; nix.settings.max-jobs = 12; - nixpkgs.hostPlatform.system = system; networking = { networkmanager = { enable = true; @@ -73,6 +72,7 @@ users.groups.misc.gid = 1000; time.timeZone = "America/New_York"; py = { + profiles.server.enable = true; users.default.enable = true; programs = { fish.enable = true; diff --git a/systems/x86_64-linux/marvin/firewall.nix b/hosts/marvin/firewall.nix similarity index 100% rename from systems/x86_64-linux/marvin/firewall.nix rename to hosts/marvin/firewall.nix diff --git a/systems/x86_64-linux/marvin/hardware.nix b/hosts/marvin/hardware.nix similarity index 100% rename from systems/x86_64-linux/marvin/hardware.nix rename to hosts/marvin/hardware.nix diff --git a/systems/x86_64-linux/marvin/networking.nix b/hosts/marvin/networking.nix similarity index 100% rename from systems/x86_64-linux/marvin/networking.nix rename to hosts/marvin/networking.nix diff --git a/systems/x86_64-linux/marvin/services/anubis.nix b/hosts/marvin/services/anubis.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/anubis.nix rename to hosts/marvin/services/anubis.nix diff --git a/systems/x86_64-linux/marvin/services/authentik.nix b/hosts/marvin/services/authentik.nix similarity index 98% rename from systems/x86_64-linux/marvin/services/authentik.nix rename to hosts/marvin/services/authentik.nix index de2f70cc..91c25ddf 100644 --- a/systems/x86_64-linux/marvin/services/authentik.nix +++ b/hosts/marvin/services/authentik.nix @@ -1,11 +1,10 @@ { config, - lib, - pkgs, + self, ... }: let - d = lib.py.data.services.authentik; + d = self.lib.data.services.authentik; in { virtualisation.oci-containers.containers = diff --git a/systems/x86_64-linux/marvin/services/avahi.nix b/hosts/marvin/services/avahi.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/avahi.nix rename to hosts/marvin/services/avahi.nix diff --git a/systems/x86_64-linux/marvin/services/bookstack.nix b/hosts/marvin/services/bookstack.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/bookstack.nix rename to hosts/marvin/services/bookstack.nix diff --git a/systems/x86_64-linux/marvin/services/bots.nix b/hosts/marvin/services/bots.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/bots.nix rename to hosts/marvin/services/bots.nix diff --git a/systems/x86_64-linux/marvin/services/buildbot.nix b/hosts/marvin/services/buildbot.nix similarity index 92% rename from systems/x86_64-linux/marvin/services/buildbot.nix rename to hosts/marvin/services/buildbot.nix index d75f7e12..0bbc26e6 100644 --- a/systems/x86_64-linux/marvin/services/buildbot.nix +++ b/hosts/marvin/services/buildbot.nix @@ -1,8 +1,8 @@ -{ config, lib, ... }: +{ config, self, ... }: let as = config.age.secrets; - d = lib.py.data.services.buildbot; - g = lib.py.data.services.git; + d = self.lib.data.services.buildbot; + g = self.lib.data.services.git; bbSecret = { owner = "buildbot"; group = "buildbot"; diff --git a/systems/x86_64-linux/marvin/services/deemix.nix b/hosts/marvin/services/deemix.nix similarity index 88% rename from systems/x86_64-linux/marvin/services/deemix.nix rename to hosts/marvin/services/deemix.nix index c5ffca55..85673522 100644 --- a/systems/x86_64-linux/marvin/services/deemix.nix +++ b/hosts/marvin/services/deemix.nix @@ -1,6 +1,6 @@ -{ lib, ... }: +{ self, ... }: let - d = lib.py.data.services.deemix; + d = self.lib.data.services.deemix; in { virtualisation.oci-containers.containers.deemix = { diff --git a/systems/x86_64-linux/marvin/services/gdq-cals.nix b/hosts/marvin/services/gdq-cals.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/gdq-cals.nix rename to hosts/marvin/services/gdq-cals.nix diff --git a/systems/x86_64-linux/marvin/services/git.nix b/hosts/marvin/services/git.nix similarity index 97% rename from systems/x86_64-linux/marvin/services/git.nix rename to hosts/marvin/services/git.nix index a0e143b3..743c9fc0 100644 --- a/systems/x86_64-linux/marvin/services/git.nix +++ b/hosts/marvin/services/git.nix @@ -2,6 +2,8 @@ config, lib, pkgs, + self', + self, ... }: let @@ -13,7 +15,7 @@ let group = "forgejo"; }; - d = lib.py.data.services.git; + d = self.lib.data.services.git; in { catppuccin.forgejo.enable = true; @@ -149,7 +151,7 @@ in services.anubis.instances.forgejo = lib.mkIf config.services.forgejo.enable { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/forgejo.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/forgejo.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/golink.nix b/hosts/marvin/services/golink.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/golink.nix rename to hosts/marvin/services/golink.nix diff --git a/systems/x86_64-linux/marvin/services/grafana.nix b/hosts/marvin/services/grafana.nix similarity index 91% rename from systems/x86_64-linux/marvin/services/grafana.nix rename to hosts/marvin/services/grafana.nix index 787d0be4..02f88d8e 100644 --- a/systems/x86_64-linux/marvin/services/grafana.nix +++ b/hosts/marvin/services/grafana.nix @@ -1,12 +1,12 @@ { config, - lib, - pkgs, + self', + self, ... }: let - d = lib.py.data.services.grafana; - a = lib.py.data.services.authentik; + d = self.lib.data.services.grafana; + a = self.lib.data.services.authentik; in { services.grafana = { @@ -62,7 +62,7 @@ in services.anubis.instances.grafana = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/grafana.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/grafana.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/iceshrimp.nix b/hosts/marvin/services/iceshrimp.nix similarity index 98% rename from systems/x86_64-linux/marvin/services/iceshrimp.nix rename to hosts/marvin/services/iceshrimp.nix index 6ed67ff2..b0d7dfc1 100644 --- a/systems/x86_64-linux/marvin/services/iceshrimp.nix +++ b/hosts/marvin/services/iceshrimp.nix @@ -3,11 +3,12 @@ inputs, pkgs, lib, + self, ... }: let - d = lib.py.data.services.iceshrimp; + d = self.lib.data.services.iceshrimp; package = inputs.iceshrimp.packages.x86_64-linux.iceshrimp-pre.overrideAttrs rec { version = "2023.12.8-pyrox1"; diff --git a/systems/x86_64-linux/marvin/services/jellyfin.nix b/hosts/marvin/services/jellyfin.nix similarity index 92% rename from systems/x86_64-linux/marvin/services/jellyfin.nix rename to hosts/marvin/services/jellyfin.nix index 4a425be3..0812f1de 100644 --- a/systems/x86_64-linux/marvin/services/jellyfin.nix +++ b/hosts/marvin/services/jellyfin.nix @@ -1,7 +1,7 @@ { - pkgs, lib, config, + self', ... }: let @@ -39,7 +39,7 @@ in ]; description = "Jellyfin Metrics Exporter for Prometheus"; serviceConfig = { - ExecStart = "${lib.getExe pkgs.py.jellyfin-exporter} @${config.age.secrets.jellyfin-exporter-config.path}"; + ExecStart = "${lib.getExe self'.packages.jellyfin-exporter} @${config.age.secrets.jellyfin-exporter-config.path}"; ReadOnlyPaths = [ config.age.secrets.jellyfin-exporter-config.path ]; Restart = "always"; DynamicUser = true; diff --git a/systems/x86_64-linux/marvin/services/matrix.nix b/hosts/marvin/services/matrix.nix similarity index 95% rename from systems/x86_64-linux/marvin/services/matrix.nix rename to hosts/marvin/services/matrix.nix index 61d43064..89a90371 100644 --- a/systems/x86_64-linux/marvin/services/matrix.nix +++ b/hosts/marvin/services/matrix.nix @@ -1,9 +1,9 @@ { - lib, + self, ... }: let - d = lib.py.data.services.matrix-server; + d = self.lib.data.services.matrix-server; in { services.matrix-conduit = { diff --git a/systems/x86_64-linux/marvin/services/miniflux.nix b/hosts/marvin/services/miniflux.nix similarity index 85% rename from systems/x86_64-linux/marvin/services/miniflux.nix rename to hosts/marvin/services/miniflux.nix index 4cc7f647..0e49a1a9 100644 --- a/systems/x86_64-linux/marvin/services/miniflux.nix +++ b/hosts/marvin/services/miniflux.nix @@ -1,11 +1,11 @@ { config, - lib, - pkgs, + self', + self, ... }: let - d = lib.py.data.services.miniflux; + d = self.lib.data.services.miniflux; in { services.miniflux = { @@ -33,7 +33,7 @@ in services.anubis.instances.miniflux = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/miniflux.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/miniflux.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/minio.nix b/hosts/marvin/services/minio.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/minio.nix rename to hosts/marvin/services/minio.nix diff --git a/systems/x86_64-linux/marvin/services/nextcloud/default.nix b/hosts/marvin/services/nextcloud/default.nix similarity index 94% rename from systems/x86_64-linux/marvin/services/nextcloud/default.nix rename to hosts/marvin/services/nextcloud/default.nix index 458feec7..472f5dfe 100644 --- a/systems/x86_64-linux/marvin/services/nextcloud/default.nix +++ b/hosts/marvin/services/nextcloud/default.nix @@ -2,11 +2,13 @@ config, pkgs, lib, + self', + self, ... }: let - d = lib.py.data.services.nextcloud; - i = lib.py.data.services.nextcloud-imaginary; + d = self.lib.data.services.nextcloud; + i = self.lib.data.services.nextcloud-imaginary; in { imports = [ @@ -104,7 +106,7 @@ in services.anubis.instances.nextcloud = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/nextcloud.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/nextcloud.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/nextcloud/imaginary.nix b/hosts/marvin/services/nextcloud/imaginary.nix similarity index 73% rename from systems/x86_64-linux/marvin/services/nextcloud/imaginary.nix rename to hosts/marvin/services/nextcloud/imaginary.nix index b71b1d6d..14a26e58 100644 --- a/systems/x86_64-linux/marvin/services/nextcloud/imaginary.nix +++ b/hosts/marvin/services/nextcloud/imaginary.nix @@ -1,6 +1,6 @@ -{ lib, ... }: +{ self, ... }: let - d = lib.py.data.services.nextcloud-imaginary; + d = self.lib.data.services.nextcloud-imaginary; in { services.imaginary = { diff --git a/systems/x86_64-linux/marvin/services/nextcloud/nextcloud-admin-pw.age b/hosts/marvin/services/nextcloud/nextcloud-admin-pw.age similarity index 100% rename from systems/x86_64-linux/marvin/services/nextcloud/nextcloud-admin-pw.age rename to hosts/marvin/services/nextcloud/nextcloud-admin-pw.age diff --git a/systems/x86_64-linux/marvin/services/nextcloud/office.nix b/hosts/marvin/services/nextcloud/office.nix similarity index 75% rename from systems/x86_64-linux/marvin/services/nextcloud/office.nix rename to hosts/marvin/services/nextcloud/office.nix index 0861927e..3abccef2 100644 --- a/systems/x86_64-linux/marvin/services/nextcloud/office.nix +++ b/hosts/marvin/services/nextcloud/office.nix @@ -1,6 +1,6 @@ -{ lib, pkgs, ... }: +{ self', self, ... }: let - d = lib.py.data.services.nextcloud-office; + d = self.lib.data.services.nextcloud-office; in { services.collabora-online = { @@ -22,7 +22,7 @@ in services.anubis.instances.nextcloud-office = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/nextcloud-office.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/nextcloud-office.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/nginx.nix b/hosts/marvin/services/nginx.nix similarity index 79% rename from systems/x86_64-linux/marvin/services/nginx.nix rename to hosts/marvin/services/nginx.nix index a10ab209..afa88a54 100644 --- a/systems/x86_64-linux/marvin/services/nginx.nix +++ b/hosts/marvin/services/nginx.nix @@ -1,6 +1,6 @@ -{ lib, ... }: +{ self, ... }: let - n = lib.py.data.services.nextcloud; + n = self.lib.data.services.nextcloud; in { services.nginx = { diff --git a/systems/x86_64-linux/marvin/services/pinchflat.nix b/hosts/marvin/services/pinchflat.nix similarity index 93% rename from systems/x86_64-linux/marvin/services/pinchflat.nix rename to hosts/marvin/services/pinchflat.nix index 86c18167..ba5fa17c 100644 --- a/systems/x86_64-linux/marvin/services/pinchflat.nix +++ b/hosts/marvin/services/pinchflat.nix @@ -1,8 +1,13 @@ -{ config, lib, ... }: +{ + config, + lib, + self, + ... +}: let cfg = config.services.pinchflat; age = config.age.secrets; - d = lib.py.data.services.pinchflat; + d = self.lib.data.services.pinchflat; in { services.pinchflat = { diff --git a/systems/x86_64-linux/marvin/services/pingvin-share.nix b/hosts/marvin/services/pingvin-share.nix similarity index 93% rename from systems/x86_64-linux/marvin/services/pingvin-share.nix rename to hosts/marvin/services/pingvin-share.nix index 1b9a37d6..f603a995 100644 --- a/systems/x86_64-linux/marvin/services/pingvin-share.nix +++ b/hosts/marvin/services/pingvin-share.nix @@ -1,11 +1,12 @@ { - lib, config, pkgs, + self', + self, ... }: let - d = lib.py.data.services.pingvin-share; + d = self.lib.data.services.pingvin-share; cfg = config.services.pingvin-share; configFormat = pkgs.formats.yaml { }; configFile = configFormat.generate "config.yaml" { @@ -87,14 +88,14 @@ in pingvin-share-be = { settings = { BIND = ":${toString d.be-anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/pingvin-share.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/pingvin-share.yaml"; TARGET = "http://localhost:${toString d.be-port}"; }; }; pingvin-share-fe = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/pingvin-share.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/pingvin-share.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/planka.nix b/hosts/marvin/services/planka.nix similarity index 91% rename from systems/x86_64-linux/marvin/services/planka.nix rename to hosts/marvin/services/planka.nix index 1ab09250..d875db85 100644 --- a/systems/x86_64-linux/marvin/services/planka.nix +++ b/hosts/marvin/services/planka.nix @@ -1,12 +1,12 @@ { config, - lib, - pkgs, + self', + self, ... }: let dataDir = "/var/lib/planka"; - d = lib.py.data.services.planka; + d = self.lib.data.services.planka; in { virtualisation.oci-containers.containers = { @@ -48,7 +48,7 @@ in settings = { COOKIE_DOMAIN = ".cs2a.club"; BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/planka.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/planka.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/pocket-id.nix b/hosts/marvin/services/pocket-id.nix similarity index 88% rename from systems/x86_64-linux/marvin/services/pocket-id.nix rename to hosts/marvin/services/pocket-id.nix index 8b412a16..bb761d69 100644 --- a/systems/x86_64-linux/marvin/services/pocket-id.nix +++ b/hosts/marvin/services/pocket-id.nix @@ -1,11 +1,11 @@ { config, - lib, - pkgs, + self', + self, ... }: let - d = lib.py.data.services.pocket-id; + d = self.lib.data.services.pocket-id; in { services.pocket-id = { @@ -43,7 +43,7 @@ in pocket-id = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/pocket-id.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/pocket-id.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/podman.nix b/hosts/marvin/services/podman.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/podman.nix rename to hosts/marvin/services/podman.nix diff --git a/systems/x86_64-linux/marvin/services/postgres.nix b/hosts/marvin/services/postgres.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/postgres.nix rename to hosts/marvin/services/postgres.nix diff --git a/systems/x86_64-linux/marvin/services/prometheus.nix b/hosts/marvin/services/prometheus.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/prometheus.nix rename to hosts/marvin/services/prometheus.nix diff --git a/systems/x86_64-linux/marvin/services/prosody.nix b/hosts/marvin/services/prosody.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/prosody.nix rename to hosts/marvin/services/prosody.nix diff --git a/systems/x86_64-linux/marvin/services/redlib.nix b/hosts/marvin/services/redlib.nix similarity index 69% rename from systems/x86_64-linux/marvin/services/redlib.nix rename to hosts/marvin/services/redlib.nix index 8a8e21ca..424669c6 100644 --- a/systems/x86_64-linux/marvin/services/redlib.nix +++ b/hosts/marvin/services/redlib.nix @@ -1,6 +1,6 @@ -{ pkgs, lib, ... }: +{ pkgs, self, ... }: let - d = lib.py.data.services.redlib; + d = self.lib.data.services.redlib; in { services.libreddit = { diff --git a/systems/x86_64-linux/marvin/services/scrutiny.nix b/hosts/marvin/services/scrutiny.nix similarity index 90% rename from systems/x86_64-linux/marvin/services/scrutiny.nix rename to hosts/marvin/services/scrutiny.nix index 9ee8e739..62e454a5 100644 --- a/systems/x86_64-linux/marvin/services/scrutiny.nix +++ b/hosts/marvin/services/scrutiny.nix @@ -1,6 +1,6 @@ -{ config, lib, ... }: +{ self, ... }: let - d = lib.py.data.services.scrutiny; + d = self.lib.data.services.scrutiny; in { services.scrutiny = { diff --git a/systems/x86_64-linux/marvin/services/secrets/anubis-key.age b/hosts/marvin/services/secrets/anubis-key.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/anubis-key.age rename to hosts/marvin/services/secrets/anubis-key.age diff --git a/systems/x86_64-linux/marvin/services/secrets/authentik-env.age b/hosts/marvin/services/secrets/authentik-env.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/authentik-env.age rename to hosts/marvin/services/secrets/authentik-env.age diff --git a/systems/x86_64-linux/marvin/services/secrets/buildbot/gitea-token.age b/hosts/marvin/services/secrets/buildbot/gitea-token.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/buildbot/gitea-token.age rename to hosts/marvin/services/secrets/buildbot/gitea-token.age diff --git a/systems/x86_64-linux/marvin/services/secrets/buildbot/oauth-secret.age b/hosts/marvin/services/secrets/buildbot/oauth-secret.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/buildbot/oauth-secret.age rename to hosts/marvin/services/secrets/buildbot/oauth-secret.age diff --git a/systems/x86_64-linux/marvin/services/secrets/buildbot/worker-password.age b/hosts/marvin/services/secrets/buildbot/worker-password.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/buildbot/worker-password.age rename to hosts/marvin/services/secrets/buildbot/worker-password.age diff --git a/systems/x86_64-linux/marvin/services/secrets/buildbot/workers.age b/hosts/marvin/services/secrets/buildbot/workers.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/buildbot/workers.age rename to hosts/marvin/services/secrets/buildbot/workers.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/aux-docs-runner-token.age b/hosts/marvin/services/secrets/forgejo/aux-docs-runner-token.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/aux-docs-runner-token.age rename to hosts/marvin/services/secrets/forgejo/aux-docs-runner-token.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/db-pw.age b/hosts/marvin/services/secrets/forgejo/db-pw.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/db-pw.age rename to hosts/marvin/services/secrets/forgejo/db-pw.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/default-runner-token.age b/hosts/marvin/services/secrets/forgejo/default-runner-token.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/default-runner-token.age rename to hosts/marvin/services/secrets/forgejo/default-runner-token.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/gitgay-runner-token.age b/hosts/marvin/services/secrets/forgejo/gitgay-runner-token.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/gitgay-runner-token.age rename to hosts/marvin/services/secrets/forgejo/gitgay-runner-token.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/internal-token.age b/hosts/marvin/services/secrets/forgejo/internal-token.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/internal-token.age rename to hosts/marvin/services/secrets/forgejo/internal-token.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/lfs-jwt-secret.age b/hosts/marvin/services/secrets/forgejo/lfs-jwt-secret.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/lfs-jwt-secret.age rename to hosts/marvin/services/secrets/forgejo/lfs-jwt-secret.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/mail-pw.age b/hosts/marvin/services/secrets/forgejo/mail-pw.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/mail-pw.age rename to hosts/marvin/services/secrets/forgejo/mail-pw.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/oauth2-jwt-secret.age b/hosts/marvin/services/secrets/forgejo/oauth2-jwt-secret.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/oauth2-jwt-secret.age rename to hosts/marvin/services/secrets/forgejo/oauth2-jwt-secret.age diff --git a/systems/x86_64-linux/marvin/services/secrets/forgejo/secret-key.age b/hosts/marvin/services/secrets/forgejo/secret-key.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/forgejo/secret-key.age rename to hosts/marvin/services/secrets/forgejo/secret-key.age diff --git a/systems/x86_64-linux/marvin/services/secrets/golink-authkey.age b/hosts/marvin/services/secrets/golink-authkey.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/golink-authkey.age rename to hosts/marvin/services/secrets/golink-authkey.age diff --git a/systems/x86_64-linux/marvin/services/secrets/grafana-admin-password.age b/hosts/marvin/services/secrets/grafana-admin-password.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/grafana-admin-password.age rename to hosts/marvin/services/secrets/grafana-admin-password.age diff --git a/systems/x86_64-linux/marvin/services/secrets/grafana-smtp-password.age b/hosts/marvin/services/secrets/grafana-smtp-password.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/grafana-smtp-password.age rename to hosts/marvin/services/secrets/grafana-smtp-password.age diff --git a/systems/x86_64-linux/marvin/services/secrets/iceshrimp-db-password.age b/hosts/marvin/services/secrets/iceshrimp-db-password.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/iceshrimp-db-password.age rename to hosts/marvin/services/secrets/iceshrimp-db-password.age diff --git a/systems/x86_64-linux/marvin/services/secrets/iceshrimp-secret-config.age b/hosts/marvin/services/secrets/iceshrimp-secret-config.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/iceshrimp-secret-config.age rename to hosts/marvin/services/secrets/iceshrimp-secret-config.age diff --git a/systems/x86_64-linux/marvin/services/secrets/jellyfin-exporter-config.age b/hosts/marvin/services/secrets/jellyfin-exporter-config.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/jellyfin-exporter-config.age rename to hosts/marvin/services/secrets/jellyfin-exporter-config.age diff --git a/systems/x86_64-linux/marvin/services/secrets/miniflux-admin.age b/hosts/marvin/services/secrets/miniflux-admin.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/miniflux-admin.age rename to hosts/marvin/services/secrets/miniflux-admin.age diff --git a/systems/x86_64-linux/marvin/services/secrets/minio-root.age b/hosts/marvin/services/secrets/minio-root.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/minio-root.age rename to hosts/marvin/services/secrets/minio-root.age diff --git a/systems/x86_64-linux/marvin/services/secrets/nix-serve-priv.age b/hosts/marvin/services/secrets/nix-serve-priv.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/nix-serve-priv.age rename to hosts/marvin/services/secrets/nix-serve-priv.age diff --git a/systems/x86_64-linux/marvin/services/secrets/pinchflat-secrets.age b/hosts/marvin/services/secrets/pinchflat-secrets.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/pinchflat-secrets.age rename to hosts/marvin/services/secrets/pinchflat-secrets.age diff --git a/systems/x86_64-linux/marvin/services/secrets/pingvin-secrets.age b/hosts/marvin/services/secrets/pingvin-secrets.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/pingvin-secrets.age rename to hosts/marvin/services/secrets/pingvin-secrets.age diff --git a/systems/x86_64-linux/marvin/services/secrets/planka-env.age b/hosts/marvin/services/secrets/planka-env.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/planka-env.age rename to hosts/marvin/services/secrets/planka-env.age diff --git a/systems/x86_64-linux/marvin/services/secrets/pocket-id-secrets.age b/hosts/marvin/services/secrets/pocket-id-secrets.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/pocket-id-secrets.age rename to hosts/marvin/services/secrets/pocket-id-secrets.age diff --git a/systems/x86_64-linux/marvin/services/secrets/secrets.nix b/hosts/marvin/services/secrets/secrets.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/secrets.nix rename to hosts/marvin/services/secrets/secrets.nix diff --git a/systems/x86_64-linux/marvin/services/secrets/thehedgehog-key.age b/hosts/marvin/services/secrets/thehedgehog-key.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/thehedgehog-key.age rename to hosts/marvin/services/secrets/thehedgehog-key.age diff --git a/systems/x86_64-linux/marvin/services/secrets/thehedgehog-pem.age b/hosts/marvin/services/secrets/thehedgehog-pem.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/thehedgehog-pem.age rename to hosts/marvin/services/secrets/thehedgehog-pem.age diff --git a/systems/x86_64-linux/marvin/services/secrets/vaultwarden-pgpass.age b/hosts/marvin/services/secrets/vaultwarden-pgpass.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/vaultwarden-pgpass.age rename to hosts/marvin/services/secrets/vaultwarden-pgpass.age diff --git a/systems/x86_64-linux/marvin/services/secrets/vaultwarden-vars.age b/hosts/marvin/services/secrets/vaultwarden-vars.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/vaultwarden-vars.age rename to hosts/marvin/services/secrets/vaultwarden-vars.age diff --git a/systems/x86_64-linux/marvin/services/secrets/webmentiond-env.age b/hosts/marvin/services/secrets/webmentiond-env.age similarity index 100% rename from systems/x86_64-linux/marvin/services/secrets/webmentiond-env.age rename to hosts/marvin/services/secrets/webmentiond-env.age diff --git a/systems/x86_64-linux/marvin/services/syncthing.nix b/hosts/marvin/services/syncthing.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/syncthing.nix rename to hosts/marvin/services/syncthing.nix diff --git a/systems/x86_64-linux/marvin/services/tailscale.nix b/hosts/marvin/services/tailscale.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/tailscale.nix rename to hosts/marvin/services/tailscale.nix diff --git a/systems/x86_64-linux/marvin/services/tangled.nix b/hosts/marvin/services/tangled.nix similarity index 90% rename from systems/x86_64-linux/marvin/services/tangled.nix rename to hosts/marvin/services/tangled.nix index fd7af7db..4014662c 100644 --- a/systems/x86_64-linux/marvin/services/tangled.nix +++ b/hosts/marvin/services/tangled.nix @@ -1,12 +1,13 @@ { config, lib, + self, ... }: let cfg = config.services.tangled-knot; - dk = lib.py.data.services.tangled-knot; - ds = lib.py.data.services.tangled-spindle; + dk = self.lib.data.services.tangled-knot; + ds = self.lib.data.services.tangled-spindle; in { services = { diff --git a/systems/x86_64-linux/marvin/services/vaultwarden.nix b/hosts/marvin/services/vaultwarden.nix similarity index 95% rename from systems/x86_64-linux/marvin/services/vaultwarden.nix rename to hosts/marvin/services/vaultwarden.nix index b95c8b5d..bdfdafa6 100644 --- a/systems/x86_64-linux/marvin/services/vaultwarden.nix +++ b/hosts/marvin/services/vaultwarden.nix @@ -1,12 +1,13 @@ { pkgs, config, - lib, + self, + self', ... }: let - d = lib.py.data.services.vaultwarden; + d = self.lib.data.services.vaultwarden; vaultwardenSecret = { owner = "vaultwarden"; @@ -118,7 +119,7 @@ in services.anubis.instances.vaultwarden = { settings = { BIND = ":${toString d.anubis}"; - POLICY_FNAME = "${pkgs.py.anubis-files}/policies/vaultwarden.yaml"; + POLICY_FNAME = "${self'.packages.anubis-files}/policies/vaultwarden.yaml"; TARGET = "http://localhost:${toString d.port}"; }; }; diff --git a/systems/x86_64-linux/marvin/services/webmentiond.nix b/hosts/marvin/services/webmentiond.nix similarity index 89% rename from systems/x86_64-linux/marvin/services/webmentiond.nix rename to hosts/marvin/services/webmentiond.nix index cb269602..eb2a01f1 100644 --- a/systems/x86_64-linux/marvin/services/webmentiond.nix +++ b/hosts/marvin/services/webmentiond.nix @@ -1,6 +1,6 @@ -{ config, lib, ... }: +{ config, self, ... }: let - d = lib.py.data.services.webmentiond; + d = self.lib.data.services.webmentiond; p = toString d.port; in { diff --git a/systems/x86_64-linux/marvin/services/zfs.nix b/hosts/marvin/services/zfs.nix similarity index 100% rename from systems/x86_64-linux/marvin/services/zfs.nix rename to hosts/marvin/services/zfs.nix diff --git a/systems/x86_64-linux/prefect/bootloader.nix b/hosts/prefect/bootloader.nix similarity index 100% rename from systems/x86_64-linux/prefect/bootloader.nix rename to hosts/prefect/bootloader.nix diff --git a/systems/x86_64-linux/prefect/default.nix b/hosts/prefect/default.nix similarity index 93% rename from systems/x86_64-linux/prefect/default.nix rename to hosts/prefect/default.nix index ef4c8e06..b9c13130 100644 --- a/systems/x86_64-linux/prefect/default.nix +++ b/hosts/prefect/default.nix @@ -36,7 +36,6 @@ ./services/tailscale.nix # ./services/zerotier.nix ]; - nixpkgs.hostPlatform.system = system; fileSystems = { "/" = { fsType = "ext4"; @@ -44,11 +43,15 @@ }; }; + nix.settings.max-jobs = 2; + nix.settings.cores = 2; + programs.fish.enable = true; programs.fish.interactiveShellInit = '' ${pkgs.direnv}/bin/direnv hook fish | source ''; py = { + profiles.server.enable = true; users.default.enable = true; programs = { fish.enable = true; diff --git a/systems/x86_64-linux/prefect/dn42/bgp.nix b/hosts/prefect/dn42/bgp.nix similarity index 100% rename from systems/x86_64-linux/prefect/dn42/bgp.nix rename to hosts/prefect/dn42/bgp.nix diff --git a/systems/x86_64-linux/prefect/dn42/bird.conf b/hosts/prefect/dn42/bird.conf similarity index 100% rename from systems/x86_64-linux/prefect/dn42/bird.conf rename to hosts/prefect/dn42/bird.conf diff --git a/systems/x86_64-linux/prefect/dn42/default.nix b/hosts/prefect/dn42/default.nix similarity index 100% rename from systems/x86_64-linux/prefect/dn42/default.nix rename to hosts/prefect/dn42/default.nix diff --git a/systems/x86_64-linux/prefect/dn42/services.nix b/hosts/prefect/dn42/services.nix similarity index 100% rename from systems/x86_64-linux/prefect/dn42/services.nix rename to hosts/prefect/dn42/services.nix diff --git a/systems/x86_64-linux/prefect/dn42/tunnels.nix b/hosts/prefect/dn42/tunnels.nix similarity index 100% rename from systems/x86_64-linux/prefect/dn42/tunnels.nix rename to hosts/prefect/dn42/tunnels.nix diff --git a/systems/x86_64-linux/prefect/dn42/wireguard.nix b/hosts/prefect/dn42/wireguard.nix similarity index 100% rename from systems/x86_64-linux/prefect/dn42/wireguard.nix rename to hosts/prefect/dn42/wireguard.nix diff --git a/systems/x86_64-linux/prefect/firewall.nix b/hosts/prefect/firewall.nix similarity index 100% rename from systems/x86_64-linux/prefect/firewall.nix rename to hosts/prefect/firewall.nix diff --git a/systems/x86_64-linux/prefect/hardware.nix b/hosts/prefect/hardware.nix similarity index 100% rename from systems/x86_64-linux/prefect/hardware.nix rename to hosts/prefect/hardware.nix diff --git a/systems/x86_64-linux/prefect/networking.nix b/hosts/prefect/networking.nix similarity index 100% rename from systems/x86_64-linux/prefect/networking.nix rename to hosts/prefect/networking.nix diff --git a/systems/x86_64-linux/prefect/packages.nix b/hosts/prefect/packages.nix similarity index 100% rename from systems/x86_64-linux/prefect/packages.nix rename to hosts/prefect/packages.nix diff --git a/systems/x86_64-linux/prefect/secrets/acme-creds.age b/hosts/prefect/secrets/acme-creds.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/acme-creds.age rename to hosts/prefect/secrets/acme-creds.age diff --git a/systems/x86_64-linux/prefect/secrets/dn42-peerfinder-uuid.age b/hosts/prefect/secrets/dn42-peerfinder-uuid.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/dn42-peerfinder-uuid.age rename to hosts/prefect/secrets/dn42-peerfinder-uuid.age diff --git a/systems/x86_64-linux/prefect/secrets/dn42-privkey.age b/hosts/prefect/secrets/dn42-privkey.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/dn42-privkey.age rename to hosts/prefect/secrets/dn42-privkey.age diff --git a/systems/x86_64-linux/prefect/secrets/headscale-oidc-secret.age b/hosts/prefect/secrets/headscale-oidc-secret.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/headscale-oidc-secret.age rename to hosts/prefect/secrets/headscale-oidc-secret.age diff --git a/systems/x86_64-linux/prefect/secrets/secrets.nix b/hosts/prefect/secrets/secrets.nix similarity index 100% rename from systems/x86_64-linux/prefect/secrets/secrets.nix rename to hosts/prefect/secrets/secrets.nix diff --git a/systems/x86_64-linux/prefect/secrets/stalwart-desec-token.age b/hosts/prefect/secrets/stalwart-desec-token.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/stalwart-desec-token.age rename to hosts/prefect/secrets/stalwart-desec-token.age diff --git a/systems/x86_64-linux/prefect/secrets/stalwart-fallback-admin-pw.age b/hosts/prefect/secrets/stalwart-fallback-admin-pw.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/stalwart-fallback-admin-pw.age rename to hosts/prefect/secrets/stalwart-fallback-admin-pw.age diff --git a/systems/x86_64-linux/prefect/secrets/stalwart-secret-ed25519.age b/hosts/prefect/secrets/stalwart-secret-ed25519.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/stalwart-secret-ed25519.age rename to hosts/prefect/secrets/stalwart-secret-ed25519.age diff --git a/systems/x86_64-linux/prefect/secrets/stalwart-secret-rsa.age b/hosts/prefect/secrets/stalwart-secret-rsa.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/stalwart-secret-rsa.age rename to hosts/prefect/secrets/stalwart-secret-rsa.age diff --git a/systems/x86_64-linux/prefect/secrets/wireguard-priv-key.age b/hosts/prefect/secrets/wireguard-priv-key.age similarity index 100% rename from systems/x86_64-linux/prefect/secrets/wireguard-priv-key.age rename to hosts/prefect/secrets/wireguard-priv-key.age diff --git a/systems/x86_64-linux/prefect/services/acme.nix b/hosts/prefect/services/acme.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/acme.nix rename to hosts/prefect/services/acme.nix diff --git a/systems/x86_64-linux/prefect/services/blog-update.nix b/hosts/prefect/services/blog-update.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/blog-update.nix rename to hosts/prefect/services/blog-update.nix diff --git a/systems/x86_64-linux/prefect/services/blog-update.sh b/hosts/prefect/services/blog-update.sh similarity index 100% rename from systems/x86_64-linux/prefect/services/blog-update.sh rename to hosts/prefect/services/blog-update.sh diff --git a/systems/x86_64-linux/prefect/services/caddy.nix b/hosts/prefect/services/caddy.nix similarity index 97% rename from systems/x86_64-linux/prefect/services/caddy.nix rename to hosts/prefect/services/caddy.nix index 1e6aa77f..2f4c0074 100644 --- a/systems/x86_64-linux/prefect/services/caddy.nix +++ b/hosts/prefect/services/caddy.nix @@ -1,10 +1,10 @@ -{ pkgs, lib, ... }: +{ pkgs, self, ... }: let - pns = lib.py.data.services; - mail = lib.py.data.mail; - marvin = "http://${lib.py.data.hosts.marvin.ts.ip4}"; - marvinIP = lib.py.data.hosts.marvin.ts.ip4; - tsNet = lib.py.data.tsNet; + pns = self.lib.data.services; + mail = self.lib.data.mail; + marvin = "http://${self.lib.data.hosts.marvin.ts.ip4}"; + marvinIP = self.lib.data.hosts.marvin.ts.ip4; + tsNet = self.lib.data.tsNet; in { services.caddy = { @@ -17,7 +17,7 @@ in "github.com/mholt/caddy-l4@v0.0.0-20250902102621-4a517a98d7fa" "github.com/mohammed90/caddy-git-fs@v0.0.0-20240805164056-529acecd1830" ]; - hash = "sha256-1R6t8JgBoF/H1m0ZNrxFyx2yRfNkgucoPf321aQnvM8="; + hash = "sha256-mmiBqKgzWm6HehThvd3zMuF7Vi0NiT1zcrJMw6K305I="; }; email = "pyrox@pyrox.dev"; virtualHosts = { diff --git a/systems/x86_64-linux/prefect/services/dn42-peerfinder.nix b/hosts/prefect/services/dn42-peerfinder.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/dn42-peerfinder.nix rename to hosts/prefect/services/dn42-peerfinder.nix diff --git a/systems/x86_64-linux/prefect/services/fail2ban.nix b/hosts/prefect/services/fail2ban.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/fail2ban.nix rename to hosts/prefect/services/fail2ban.nix diff --git a/systems/x86_64-linux/prefect/services/headscale.nix b/hosts/prefect/services/headscale.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/headscale.nix rename to hosts/prefect/services/headscale.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/default.nix b/hosts/prefect/services/mailserver/default.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/default.nix rename to hosts/prefect/services/mailserver/default.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/logins.nix b/hosts/prefect/services/mailserver/logins.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/logins.nix rename to hosts/prefect/services/mailserver/logins.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/monitoring.nix b/hosts/prefect/services/mailserver/monitoring.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/monitoring.nix rename to hosts/prefect/services/mailserver/monitoring.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/overrides.nix b/hosts/prefect/services/mailserver/overrides.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/overrides.nix rename to hosts/prefect/services/mailserver/overrides.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/acme.nix b/hosts/prefect/services/mailserver/stalwart/acme.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/acme.nix rename to hosts/prefect/services/mailserver/stalwart/acme.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/auth.nix b/hosts/prefect/services/mailserver/stalwart/auth.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/auth.nix rename to hosts/prefect/services/mailserver/stalwart/auth.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/auto-ban.nix b/hosts/prefect/services/mailserver/stalwart/auto-ban.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/auto-ban.nix rename to hosts/prefect/services/mailserver/stalwart/auto-ban.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/calendar.nix b/hosts/prefect/services/mailserver/stalwart/calendar.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/calendar.nix rename to hosts/prefect/services/mailserver/stalwart/calendar.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/default.nix b/hosts/prefect/services/mailserver/stalwart/default.nix similarity index 99% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/default.nix rename to hosts/prefect/services/mailserver/stalwart/default.nix index 6244ab34..775f4155 100644 --- a/systems/x86_64-linux/prefect/services/mailserver/stalwart/default.nix +++ b/hosts/prefect/services/mailserver/stalwart/default.nix @@ -1,10 +1,11 @@ { config, lib, + self, ... }: let - d = lib.py.data.mail; + d = self.lib.data.mail; cfg = config.services.stalwart-mail; sec = config.age.secrets; creds = config.services.stalwart-mail.credentials; diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/imap.nix b/hosts/prefect/services/mailserver/stalwart/imap.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/imap.nix rename to hosts/prefect/services/mailserver/stalwart/imap.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/queue.nix b/hosts/prefect/services/mailserver/stalwart/queue.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/queue.nix rename to hosts/prefect/services/mailserver/stalwart/queue.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/report.nix b/hosts/prefect/services/mailserver/stalwart/report.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/report.nix rename to hosts/prefect/services/mailserver/stalwart/report.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/server.nix b/hosts/prefect/services/mailserver/stalwart/server.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/server.nix rename to hosts/prefect/services/mailserver/stalwart/server.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/session.nix b/hosts/prefect/services/mailserver/stalwart/session.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/session.nix rename to hosts/prefect/services/mailserver/stalwart/session.nix diff --git a/systems/x86_64-linux/prefect/services/mailserver/stalwart/signature.nix b/hosts/prefect/services/mailserver/stalwart/signature.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/mailserver/stalwart/signature.nix rename to hosts/prefect/services/mailserver/stalwart/signature.nix diff --git a/systems/x86_64-linux/prefect/services/named.conf b/hosts/prefect/services/named.conf similarity index 100% rename from systems/x86_64-linux/prefect/services/named.conf rename to hosts/prefect/services/named.conf diff --git a/systems/x86_64-linux/prefect/services/netdata.nix b/hosts/prefect/services/netdata.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/netdata.nix rename to hosts/prefect/services/netdata.nix diff --git a/systems/x86_64-linux/prefect/services/nginx/default.nix b/hosts/prefect/services/nginx/default.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/nginx/default.nix rename to hosts/prefect/services/nginx/default.nix diff --git a/systems/x86_64-linux/prefect/services/nginx/pyrox.dev.nix b/hosts/prefect/services/nginx/pyrox.dev.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/nginx/pyrox.dev.nix rename to hosts/prefect/services/nginx/pyrox.dev.nix diff --git a/systems/x86_64-linux/prefect/services/prometheus.nix b/hosts/prefect/services/prometheus.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/prometheus.nix rename to hosts/prefect/services/prometheus.nix diff --git a/systems/x86_64-linux/prefect/services/secrets.nix b/hosts/prefect/services/secrets.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/secrets.nix rename to hosts/prefect/services/secrets.nix diff --git a/systems/x86_64-linux/prefect/services/tailscale.nix b/hosts/prefect/services/tailscale.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/tailscale.nix rename to hosts/prefect/services/tailscale.nix diff --git a/systems/x86_64-linux/prefect/services/zerotier.nix b/hosts/prefect/services/zerotier.nix similarity index 100% rename from systems/x86_64-linux/prefect/services/zerotier.nix rename to hosts/prefect/services/zerotier.nix diff --git a/systems/x86_64-linux/thought/bootloader.nix b/hosts/thought/bootloader.nix similarity index 100% rename from systems/x86_64-linux/thought/bootloader.nix rename to hosts/thought/bootloader.nix diff --git a/systems/x86_64-linux/thought/default.nix b/hosts/thought/default.nix similarity index 94% rename from systems/x86_64-linux/thought/default.nix rename to hosts/thought/default.nix index d8fac07a..cefffcb8 100644 --- a/systems/x86_64-linux/thought/default.nix +++ b/hosts/thought/default.nix @@ -14,6 +14,7 @@ ]; nixpkgs.hostPlatform.system = system; py = { + profiles.server.enable = true; users.default.enable = true; programs = { fish.enable = true; diff --git a/systems/x86_64-linux/thought/disks.nix b/hosts/thought/disks.nix similarity index 100% rename from systems/x86_64-linux/thought/disks.nix rename to hosts/thought/disks.nix diff --git a/systems/x86_64-linux/thought/firewall.nix b/hosts/thought/firewall.nix similarity index 100% rename from systems/x86_64-linux/thought/firewall.nix rename to hosts/thought/firewall.nix diff --git a/systems/x86_64-linux/thought/hardware.nix b/hosts/thought/hardware.nix similarity index 100% rename from systems/x86_64-linux/thought/hardware.nix rename to hosts/thought/hardware.nix diff --git a/systems/x86_64-linux/thought/networking.nix b/hosts/thought/networking.nix similarity index 100% rename from systems/x86_64-linux/thought/networking.nix rename to hosts/thought/networking.nix diff --git a/systems/x86_64-linux/thought/packages.nix b/hosts/thought/packages.nix similarity index 100% rename from systems/x86_64-linux/thought/packages.nix rename to hosts/thought/packages.nix diff --git a/systems/x86_64-linux/thought/secrets/secrets.nix b/hosts/thought/secrets/secrets.nix similarity index 100% rename from systems/x86_64-linux/thought/secrets/secrets.nix rename to hosts/thought/secrets/secrets.nix diff --git a/systems/x86_64-linux/thought/services/prometheus.nix b/hosts/thought/services/prometheus.nix similarity index 100% rename from systems/x86_64-linux/thought/services/prometheus.nix rename to hosts/thought/services/prometheus.nix diff --git a/systems/x86_64-linux/thought/services/tailscale.nix b/hosts/thought/services/tailscale.nix similarity index 100% rename from systems/x86_64-linux/thought/services/tailscale.nix rename to hosts/thought/services/tailscale.nix diff --git a/systems/x86_64-linux/zaphod/bootloader.nix b/hosts/zaphod/bootloader.nix similarity index 100% rename from systems/x86_64-linux/zaphod/bootloader.nix rename to hosts/zaphod/bootloader.nix diff --git a/systems/x86_64-linux/zaphod/console.nix b/hosts/zaphod/console.nix similarity index 100% rename from systems/x86_64-linux/zaphod/console.nix rename to hosts/zaphod/console.nix diff --git a/systems/x86_64-linux/zaphod/default.nix b/hosts/zaphod/default.nix similarity index 95% rename from systems/x86_64-linux/zaphod/default.nix rename to hosts/zaphod/default.nix index 3033287d..49327491 100644 --- a/systems/x86_64-linux/zaphod/default.nix +++ b/hosts/zaphod/default.nix @@ -1,4 +1,4 @@ -{ system, ... }: +{ ... }: { imports = [ # Machine specific configs @@ -26,8 +26,8 @@ # Agenix secrets # ./secret-files.nix ]; - nixpkgs.hostPlatform.system = system; py = { + profiles.gui.enable = true; users.default.enable = true; programs = { appimage.enable = true; diff --git a/systems/x86_64-linux/zaphod/fonts.nix b/hosts/zaphod/fonts.nix similarity index 100% rename from systems/x86_64-linux/zaphod/fonts.nix rename to hosts/zaphod/fonts.nix diff --git a/systems/x86_64-linux/zaphod/hardware.nix b/hosts/zaphod/hardware.nix similarity index 100% rename from systems/x86_64-linux/zaphod/hardware.nix rename to hosts/zaphod/hardware.nix diff --git a/systems/x86_64-linux/zaphod/kde.nix b/hosts/zaphod/kde.nix similarity index 100% rename from systems/x86_64-linux/zaphod/kde.nix rename to hosts/zaphod/kde.nix diff --git a/systems/x86_64-linux/zaphod/misc.nix b/hosts/zaphod/misc.nix similarity index 100% rename from systems/x86_64-linux/zaphod/misc.nix rename to hosts/zaphod/misc.nix diff --git a/systems/x86_64-linux/zaphod/networking.nix b/hosts/zaphod/networking.nix similarity index 100% rename from systems/x86_64-linux/zaphod/networking.nix rename to hosts/zaphod/networking.nix diff --git a/systems/x86_64-linux/zaphod/packages.nix b/hosts/zaphod/packages.nix similarity index 95% rename from systems/x86_64-linux/zaphod/packages.nix rename to hosts/zaphod/packages.nix index 1c24e81d..c23f1c0e 100644 --- a/systems/x86_64-linux/zaphod/packages.nix +++ b/hosts/zaphod/packages.nix @@ -21,6 +21,5 @@ pkgs.qbittorrent pkgs.scrcpy pkgs.steam-run - pkgs.py.doc2dash ]; } diff --git a/systems/x86_64-linux/zaphod/power.nix b/hosts/zaphod/power.nix similarity index 100% rename from systems/x86_64-linux/zaphod/power.nix rename to hosts/zaphod/power.nix diff --git a/systems/x86_64-linux/zaphod/programs/gnupg.nix b/hosts/zaphod/programs/gnupg.nix similarity index 100% rename from systems/x86_64-linux/zaphod/programs/gnupg.nix rename to hosts/zaphod/programs/gnupg.nix diff --git a/systems/x86_64-linux/zaphod/programs/ssh.nix b/hosts/zaphod/programs/ssh.nix similarity index 100% rename from systems/x86_64-linux/zaphod/programs/ssh.nix rename to hosts/zaphod/programs/ssh.nix diff --git a/systems/x86_64-linux/zaphod/programs/sway.nix b/hosts/zaphod/programs/sway.nix similarity index 100% rename from systems/x86_64-linux/zaphod/programs/sway.nix rename to hosts/zaphod/programs/sway.nix diff --git a/systems/x86_64-linux/zaphod/programs/zsh.nix b/hosts/zaphod/programs/zsh.nix similarity index 100% rename from systems/x86_64-linux/zaphod/programs/zsh.nix rename to hosts/zaphod/programs/zsh.nix diff --git a/systems/x86_64-linux/zaphod/secret-files.nix b/hosts/zaphod/secret-files.nix similarity index 100% rename from systems/x86_64-linux/zaphod/secret-files.nix rename to hosts/zaphod/secret-files.nix diff --git a/systems/x86_64-linux/zaphod/secrets/secrets.nix b/hosts/zaphod/secrets/secrets.nix similarity index 100% rename from systems/x86_64-linux/zaphod/secrets/secrets.nix rename to hosts/zaphod/secrets/secrets.nix diff --git a/systems/x86_64-linux/zaphod/secrets/wg-privkey.age b/hosts/zaphod/secrets/wg-privkey.age similarity index 100% rename from systems/x86_64-linux/zaphod/secrets/wg-privkey.age rename to hosts/zaphod/secrets/wg-privkey.age diff --git a/systems/x86_64-linux/zaphod/security/modules.nix b/hosts/zaphod/security/modules.nix similarity index 100% rename from systems/x86_64-linux/zaphod/security/modules.nix rename to hosts/zaphod/security/modules.nix diff --git a/systems/x86_64-linux/zaphod/security/pam.nix b/hosts/zaphod/security/pam.nix similarity index 100% rename from systems/x86_64-linux/zaphod/security/pam.nix rename to hosts/zaphod/security/pam.nix diff --git a/systems/x86_64-linux/zaphod/services/avahi.nix b/hosts/zaphod/services/avahi.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/avahi.nix rename to hosts/zaphod/services/avahi.nix diff --git a/systems/x86_64-linux/zaphod/services/docker.nix b/hosts/zaphod/services/docker.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/docker.nix rename to hosts/zaphod/services/docker.nix diff --git a/systems/x86_64-linux/zaphod/services/flatpak.nix b/hosts/zaphod/services/flatpak.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/flatpak.nix rename to hosts/zaphod/services/flatpak.nix diff --git a/systems/x86_64-linux/zaphod/services/fprintd.nix b/hosts/zaphod/services/fprintd.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/fprintd.nix rename to hosts/zaphod/services/fprintd.nix diff --git a/systems/x86_64-linux/zaphod/services/fwupd.nix b/hosts/zaphod/services/fwupd.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/fwupd.nix rename to hosts/zaphod/services/fwupd.nix diff --git a/systems/x86_64-linux/zaphod/services/greeter.nix b/hosts/zaphod/services/greeter.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/greeter.nix rename to hosts/zaphod/services/greeter.nix diff --git a/systems/x86_64-linux/zaphod/services/kmscon.nix b/hosts/zaphod/services/kmscon.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/kmscon.nix rename to hosts/zaphod/services/kmscon.nix diff --git a/systems/x86_64-linux/zaphod/services/misc.nix b/hosts/zaphod/services/misc.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/misc.nix rename to hosts/zaphod/services/misc.nix diff --git a/systems/x86_64-linux/zaphod/services/modules.nix b/hosts/zaphod/services/modules.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/modules.nix rename to hosts/zaphod/services/modules.nix diff --git a/systems/x86_64-linux/zaphod/services/packagekit.nix b/hosts/zaphod/services/packagekit.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/packagekit.nix rename to hosts/zaphod/services/packagekit.nix diff --git a/systems/x86_64-linux/zaphod/services/pcscd.nix b/hosts/zaphod/services/pcscd.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/pcscd.nix rename to hosts/zaphod/services/pcscd.nix diff --git a/systems/x86_64-linux/zaphod/services/pipewire.nix b/hosts/zaphod/services/pipewire.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/pipewire.nix rename to hosts/zaphod/services/pipewire.nix diff --git a/systems/x86_64-linux/zaphod/services/ssh.nix b/hosts/zaphod/services/ssh.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/ssh.nix rename to hosts/zaphod/services/ssh.nix diff --git a/modules/nixos/default-config/services/tailscale.nix b/hosts/zaphod/services/tailscale.nix similarity index 100% rename from modules/nixos/default-config/services/tailscale.nix rename to hosts/zaphod/services/tailscale.nix diff --git a/lib/data/default.nix b/lib/data/default.nix index bce9b510..c476aded 100644 --- a/lib/data/default.nix +++ b/lib/data/default.nix @@ -1,6 +1,6 @@ { - data.hosts = builtins.fromTOML (builtins.readFile ./hosts.toml); - data.services = builtins.fromTOML (builtins.readFile ./services.toml); - data.mail = builtins.fromTOML (builtins.readFile ./mail.toml); - data.tsNet = "coelacanth-dragon.ts.net"; + hosts = builtins.fromTOML (builtins.readFile ./hosts.toml); + services = builtins.fromTOML (builtins.readFile ./services.toml); + mail = builtins.fromTOML (builtins.readFile ./mail.toml); + tsNet = "coelacanth-dragon.ts.net"; } diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 00000000..0a7527aa --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,8 @@ +{ + ... +}: +{ + flake = { + lib.data = import ./data; + }; +} diff --git a/modules/nixos/default-config/nixpkgsConfig.nix b/modules/nixos/default-config/nixpkgsConfig.nix deleted file mode 100644 index 7d240225..00000000 --- a/modules/nixos/default-config/nixpkgsConfig.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - nixpkgs = { - config = { - allowUnfree = true; - }; - }; -} diff --git a/modules/nixos/default-config/bootloader.nix b/nixosModules/default-config/bootloader.nix similarity index 100% rename from modules/nixos/default-config/bootloader.nix rename to nixosModules/default-config/bootloader.nix diff --git a/modules/nixos/default-config/default.nix b/nixosModules/default-config/default.nix similarity index 100% rename from modules/nixos/default-config/default.nix rename to nixosModules/default-config/default.nix diff --git a/modules/nixos/default-config/networking.nix b/nixosModules/default-config/networking.nix similarity index 100% rename from modules/nixos/default-config/networking.nix rename to nixosModules/default-config/networking.nix diff --git a/modules/nixos/default-config/nixConfig.nix b/nixosModules/default-config/nixConfig.nix similarity index 82% rename from modules/nixos/default-config/nixConfig.nix rename to nixosModules/default-config/nixConfig.nix index d6f8e0c6..7c435cab 100644 --- a/modules/nixos/default-config/nixConfig.nix +++ b/nixosModules/default-config/nixConfig.nix @@ -30,7 +30,7 @@ in # Compress build logs to save space compress-build-log = true; # Use all available cores to build - cores = 0; + cores = lib.mkDefault 8; experimental-features = [ # Use auto-generated uids instead of users in the nixbld group "auto-allocate-uids" @@ -44,8 +44,6 @@ in "nix-command" # Disallow URL Literals as they are deprecated "no-url-literals" - # Allow Nix to call itself - "recursive-nix" ]; # Build from source if substitution fails fallback = true; @@ -62,30 +60,25 @@ in keep-outputs = true; # Show fewer log lines from failed builds since I get them from nh log-lines = 10; + # Limit the max amount of builds + max-jobs = lib.mkDefault 4; # Extra system features system-features = [ "big-parallel" "kvm" "nixos-test" - "recursive-nix" ]; # The pubkeys of the below substituters trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "crane.cachix.org-1:8Scfpmn9w+hGdXH/Q9tTLiYAE/2dnJYRJP7kl80GuRk=" - "isabelroses.cachix.org-1:mXdV/CMcPDaiTmkQ7/4+MzChpOe6Cb97njKmBQQmLPM=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" - "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=" + "cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM=" ]; # Extra substituters trusted-substituters = [ "https://cache.nixos.org" - "https://crane.cachix.org" - "https://isabelroses.cachix.org" "https://nix-community.cachix.org" - "https://nixpkgs-wayland.cachix.org" - "https://viperml.cachix.org" + "https://install.determinate.systems" ]; # These users have additional daemon rights trusted-users = userList; diff --git a/nixosModules/default-config/nixpkgsConfig.nix b/nixosModules/default-config/nixpkgsConfig.nix new file mode 100644 index 00000000..867c68d5 --- /dev/null +++ b/nixosModules/default-config/nixpkgsConfig.nix @@ -0,0 +1,15 @@ +{ + inputs, + ... +}: +{ + nixpkgs = { + overlays = [ + inputs.self.overlays.openssh-fixperms + inputs.golink.overlays.default + ]; + config = { + allowUnfree = true; + }; + }; +} diff --git a/modules/nixos/default-config/packages.nix b/nixosModules/default-config/packages.nix similarity index 100% rename from modules/nixos/default-config/packages.nix rename to nixosModules/default-config/packages.nix diff --git a/modules/nixos/default-config/programs/default.nix b/nixosModules/default-config/programs/default.nix similarity index 100% rename from modules/nixos/default-config/programs/default.nix rename to nixosModules/default-config/programs/default.nix diff --git a/modules/nixos/default-config/programs/nh.nix b/nixosModules/default-config/programs/nh.nix similarity index 100% rename from modules/nixos/default-config/programs/nh.nix rename to nixosModules/default-config/programs/nh.nix diff --git a/modules/nixos/default-config/programs/ssh.nix b/nixosModules/default-config/programs/ssh.nix similarity index 100% rename from modules/nixos/default-config/programs/ssh.nix rename to nixosModules/default-config/programs/ssh.nix diff --git a/modules/nixos/default-config/root.nix b/nixosModules/default-config/root.nix similarity index 100% rename from modules/nixos/default-config/root.nix rename to nixosModules/default-config/root.nix diff --git a/modules/nixos/default-config/secrets/powerdns-secrets.age b/nixosModules/default-config/secrets/powerdns-secrets.age similarity index 100% rename from modules/nixos/default-config/secrets/powerdns-secrets.age rename to nixosModules/default-config/secrets/powerdns-secrets.age diff --git a/modules/nixos/default-config/secrets/secrets.nix b/nixosModules/default-config/secrets/secrets.nix similarity index 100% rename from modules/nixos/default-config/secrets/secrets.nix rename to nixosModules/default-config/secrets/secrets.nix diff --git a/modules/nixos/default-config/security.nix b/nixosModules/default-config/security.nix similarity index 100% rename from modules/nixos/default-config/security.nix rename to nixosModules/default-config/security.nix diff --git a/modules/nixos/default-config/services/default.nix b/nixosModules/default-config/services/default.nix similarity index 100% rename from modules/nixos/default-config/services/default.nix rename to nixosModules/default-config/services/default.nix diff --git a/modules/nixos/default-config/services/ntp.nix b/nixosModules/default-config/services/ntp.nix similarity index 100% rename from modules/nixos/default-config/services/ntp.nix rename to nixosModules/default-config/services/ntp.nix diff --git a/systems/x86_64-linux/zaphod/services/tailscale.nix b/nixosModules/default-config/services/tailscale.nix similarity index 100% rename from systems/x86_64-linux/zaphod/services/tailscale.nix rename to nixosModules/default-config/services/tailscale.nix diff --git a/modules/nixos/default-config/ssh.nix b/nixosModules/default-config/ssh.nix similarity index 100% rename from modules/nixos/default-config/ssh.nix rename to nixosModules/default-config/ssh.nix diff --git a/modules/nixos/default-config/users.nix b/nixosModules/default-config/users.nix similarity index 100% rename from modules/nixos/default-config/users.nix rename to nixosModules/default-config/users.nix diff --git a/modules/nixos/default-users/backup.pub b/nixosModules/default-users/backup.pub similarity index 100% rename from modules/nixos/default-users/backup.pub rename to nixosModules/default-users/backup.pub diff --git a/modules/nixos/default-users/default.nix b/nixosModules/default-users/default.nix similarity index 100% rename from modules/nixos/default-users/default.nix rename to nixosModules/default-users/default.nix diff --git a/modules/nixos/default-users/yubikey-back.pub b/nixosModules/default-users/yubikey-back.pub similarity index 100% rename from modules/nixos/default-users/yubikey-back.pub rename to nixosModules/default-users/yubikey-back.pub diff --git a/modules/nixos/default-users/yubikey-main.pub b/nixosModules/default-users/yubikey-main.pub similarity index 100% rename from modules/nixos/default-users/yubikey-main.pub rename to nixosModules/default-users/yubikey-main.pub diff --git a/modules/nixos/default-users/yubikey-new.pub b/nixosModules/default-users/yubikey-new.pub similarity index 100% rename from modules/nixos/default-users/yubikey-new.pub rename to nixosModules/default-users/yubikey-new.pub diff --git a/nixosModules/default.nix b/nixosModules/default.nix new file mode 100644 index 00000000..e8c9f4a5 --- /dev/null +++ b/nixosModules/default.nix @@ -0,0 +1,27 @@ +{ + ... +}: +{ + flake.nixosModules = { + # Top-level + defaultConfig = import ./default-config; + defaultUsers = import ./default-users; + profiles = import ./profiles; + + # Programs + chromium = import ./programs/chromium; + firefox = import ./programs/firefox; + miscPrograms = import ./programs/misc; + neovim = import ./programs/neovim; + + # Services + buildbot = import ./services/buildbot; + forgejo-runner = import ./services/forgejo-runner; + scrutiny = import ./services/scrutiny; + + hm-pyrox = import ./homes/pyrox; + hm-thehedgehog = import ./homes/thehedgehog; + hm-pyrox-zaphod = import ./homes/pyrox-zaphod; + hm-thehedgehog-zaphod = import ./homes/thehedgehog-zaphod; + }; +} diff --git a/nixosModules/homes/.default.nix.bak b/nixosModules/homes/.default.nix.bak new file mode 100644 index 00000000..c2219e52 --- /dev/null +++ b/nixosModules/homes/.default.nix.bak @@ -0,0 +1,123 @@ +{ + lib, + withSystem, + inputs, + ... +}: +let + mkHM = withSystem "x86_64-linux" ( + { pkgs, system, ... }: + extra: + inputs.home-manager.lib.homeManagerConfiguration ( + lib.mergeAttrs { + inherit pkgs; + extraSpecialArgs = { inherit inputs system; }; + } extra + ) + ); + defaultModules = [ + inputs.ctp.homeModules.default + inputs.self.homeModules.theming + inputs.self.homeModules.programs + inputs.self.homeModules.services + ]; + +in +{ + flake.homeConfigurations = { + marvin-pyrox = mkHM { + modules = [ + inputs.self.homeModules.profiles + ./pyrox + { + py.profiles.server.enable = true; + } + ] + ++ defaultModules; + }; + marvin-thehedgehog = mkHM { + modules = [ + inputs.self.homeModules.profiles + ./thehedgehog + { + py.profiles.server.enable = true; + } + ] + ++ defaultModules; + }; + prefect-pyrox = mkHM { + modules = [ + inputs.self.homeModules.profiles + ./pyrox + { + py.profiles.server.enable = true; + } + ] + ++ defaultModules; + }; + prefect-thehedgehog = mkHM { + modules = [ + inputs.self.homeModules.profiles + ./thehedgehog + { + py.profiles.server.enable = true; + } + ] + ++ defaultModules; + }; + thought-pyrox = mkHM { + modules = [ + inputs.self.homeModules.profiles + ./pyrox + { + py.profiles.server.enable = true; + } + ] + ++ defaultModules; + }; + thought-thehedgehog = mkHM { + modules = [ + inputs.self.homeModules.profiles + ./thehedgehog + { + py.profiles.server.enable = true; + } + ] + ++ defaultModules; + }; + zaphod-pyrox = withSystem "x86_64-linux" ( + { pkgs, ... }: + inputs.home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + inputs.self.homeModules.profiles + { + imports = [ + ./pyrox + "${inputs.self}/homeConfigurations/pyrox@zaphod" + ]; + py.profiles.desktop.enable = true; + } + ] + ++ defaultModules; + } + ); + zaphod-thehedgehog = withSystem "x86_64-linux" ( + { pkgs, ... }: + inputs.home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + inputs.self.homeModules.profiles + { + imports = [ + ./thehedgehog + "${inputs.self}/homeConfigurations/thehedgehog@zaphod" + ]; + py.profiles.desktop.enable = true; + } + ] + ++ defaultModules; + } + ); + }; +} diff --git a/nixosModules/homes/pyrox-zaphod/default.nix b/nixosModules/homes/pyrox-zaphod/default.nix new file mode 100644 index 00000000..a311fe74 --- /dev/null +++ b/nixosModules/homes/pyrox-zaphod/default.nix @@ -0,0 +1,52 @@ +{ + pkgs, + ... +}: +{ + home-manager.users.pyrox = { + imports = [ + ./files/pamKeys.nix + ./files/distrobox-config.nix + ]; + home.packages = [ + pkgs.mindustry + ]; + py.profiles.desktop.enable = true; + py.services.kanshi.settings = [ + { + profile = { + name = "laptop-only"; + outputs = [ + { + criteria = "eDP-1"; + status = "enable"; + scale = 1.2; + position = "0,0"; + adaptiveSync = true; + } + ]; + }; + } + { + profile = { + name = "office"; + outputs = [ + { + criteria = "eDP-1"; + status = "enable"; + scale = 1.2; + position = "0,0"; + adaptiveSync = true; + } + { + criteria = "Acer Technologies SA241Y 0x1497CF17"; + status = "enable"; + scale = 1.0; + position = "2160,0"; + } + ]; + }; + } + ]; + }; +} diff --git a/homes/x86_64-linux/pyrox@zaphod/files/distrobox-config.nix b/nixosModules/homes/pyrox-zaphod/files/distrobox-config.nix similarity index 100% rename from homes/x86_64-linux/pyrox@zaphod/files/distrobox-config.nix rename to nixosModules/homes/pyrox-zaphod/files/distrobox-config.nix diff --git a/homes/x86_64-linux/pyrox@zaphod/files/pamKeys.nix b/nixosModules/homes/pyrox-zaphod/files/pamKeys.nix similarity index 100% rename from homes/x86_64-linux/pyrox@zaphod/files/pamKeys.nix rename to nixosModules/homes/pyrox-zaphod/files/pamKeys.nix diff --git a/nixosModules/homes/pyrox/default.nix b/nixosModules/homes/pyrox/default.nix new file mode 100644 index 00000000..4969aa2f --- /dev/null +++ b/nixosModules/homes/pyrox/default.nix @@ -0,0 +1,18 @@ +{ + lib, + inputs, + ... +}: +{ + home-manager.users.pyrox = { + imports = [ + inputs.self.homeModules.allModules + { + home.username = "pyrox"; + home.stateVersion = "25.11"; + py.profiles.server.enable = lib.mkDefault true; + py.profiles.desktop.enable = lib.mkDefault false; + } + ]; + }; +} diff --git a/nixosModules/homes/thehedgehog-zaphod/default.nix b/nixosModules/homes/thehedgehog-zaphod/default.nix new file mode 100644 index 00000000..616d5cdb --- /dev/null +++ b/nixosModules/homes/thehedgehog-zaphod/default.nix @@ -0,0 +1,65 @@ +{ + pkgs, + config, + ... +}: +let + hmConfig = config.home-manager.users.thehedgehog; +in +{ + home-manager.users.thehedgehog = { + home.packages = [ + pkgs.mindustry + pkgs.signal-desktop + ]; + services.wpaperd = { + enable = true; + settings = { + default = { + path = "${hmConfig.home.homeDirectory}/bgs"; + duration = "3h"; + sorting = "random"; + queue-size = 50; + recursive = false; + }; + }; + }; + py.profiles.desktop.enable = true; + py.services.kanshi.settings = [ + { + profile = { + name = "laptop-only"; + outputs = [ + { + criteria = "eDP-1"; + status = "enable"; + scale = 1.2; + position = "0,0"; + adaptiveSync = true; + } + ]; + }; + } + { + profile = { + name = "office"; + outputs = [ + { + criteria = "eDP-1"; + status = "enable"; + scale = 1.2; + position = "0,0"; + adaptiveSync = true; + } + { + criteria = "Acer Technologies SA241Y 0x1497CF17"; + status = "enable"; + scale = 1.0; + position = "2160,0"; + } + ]; + }; + } + ]; + }; +} diff --git a/nixosModules/homes/thehedgehog/default.nix b/nixosModules/homes/thehedgehog/default.nix new file mode 100644 index 00000000..b8aa8b94 --- /dev/null +++ b/nixosModules/homes/thehedgehog/default.nix @@ -0,0 +1,18 @@ +{ + lib, + inputs, + ... +}: +{ + home-manager.users.thehedgehog = { + imports = [ + inputs.self.homeModules.allModules + { + home.username = "thehedgehog"; + home.stateVersion = "25.11"; + py.profiles.server.enable = lib.mkDefault true; + py.profiles.desktop.enable = lib.mkDefault false; + } + ]; + }; +} diff --git a/modules/nixos/profiles/default.nix b/nixosModules/profiles/default.nix similarity index 77% rename from modules/nixos/profiles/default.nix rename to nixosModules/profiles/default.nix index aa558436..13a17dad 100644 --- a/modules/nixos/profiles/default.nix +++ b/nixosModules/profiles/default.nix @@ -7,14 +7,14 @@ in base.enable = lib.mkEnableOption "Base Profile"; cli.enable = lib.mkEnableOption "CLI Profile"; development.enable = lib.mkEnableOption "Development Profile"; - graphical.enable = lib.mkEnableOption "Graphical Profile"; + gui.enable = lib.mkEnableOption "GUI Profile"; server.enable = lib.mkEnableOption "Server Profile"; }; config = { py.profiles = { base.enable = lib.mkDefault true; cli.enable = lib.mkDefault true; - development.enable = lib.mkDefault cfg.graphical.enable; + development.enable = lib.mkDefault cfg.gui.enable; }; }; } diff --git a/modules/nixos/programs/chromium/default.nix b/nixosModules/programs/chromium/default.nix similarity index 100% rename from modules/nixos/programs/chromium/default.nix rename to nixosModules/programs/chromium/default.nix diff --git a/modules/nixos/programs/chromium/extraOpts.nix b/nixosModules/programs/chromium/extraOpts.nix similarity index 100% rename from modules/nixos/programs/chromium/extraOpts.nix rename to nixosModules/programs/chromium/extraOpts.nix diff --git a/modules/nixos/programs/firefox/default.nix b/nixosModules/programs/firefox/default.nix similarity index 100% rename from modules/nixos/programs/firefox/default.nix rename to nixosModules/programs/firefox/default.nix diff --git a/modules/nixos/programs/firefox/extensions.nix b/nixosModules/programs/firefox/extensions.nix similarity index 100% rename from modules/nixos/programs/firefox/extensions.nix rename to nixosModules/programs/firefox/extensions.nix diff --git a/modules/nixos/programs/firefox/extraPrefs.nix b/nixosModules/programs/firefox/extraPrefs.nix similarity index 100% rename from modules/nixos/programs/firefox/extraPrefs.nix rename to nixosModules/programs/firefox/extraPrefs.nix diff --git a/modules/nixos/programs/firefox/policies.nix b/nixosModules/programs/firefox/policies.nix similarity index 100% rename from modules/nixos/programs/firefox/policies.nix rename to nixosModules/programs/firefox/policies.nix diff --git a/modules/nixos/programs/misc/default.nix b/nixosModules/programs/misc/default.nix similarity index 100% rename from modules/nixos/programs/misc/default.nix rename to nixosModules/programs/misc/default.nix diff --git a/modules/nixos/programs/neovim/default.nix b/nixosModules/programs/neovim/default.nix similarity index 93% rename from modules/nixos/programs/neovim/default.nix rename to nixosModules/programs/neovim/default.nix index 8c2980a5..f3c6b152 100644 --- a/modules/nixos/programs/neovim/default.nix +++ b/nixosModules/programs/neovim/default.nix @@ -12,7 +12,6 @@ in config.programs.neovim = lib.mkIf cfg.enable { enable = true; - package = pkgs.py.nvim; defaultEditor = true; viAlias = true; vimAlias = true; diff --git a/modules/nixos/services/buildbot/default.nix b/nixosModules/services/buildbot/default.nix similarity index 100% rename from modules/nixos/services/buildbot/default.nix rename to nixosModules/services/buildbot/default.nix diff --git a/modules/nixos/services/forgejo-runner/default.nix b/nixosModules/services/forgejo-runner/default.nix similarity index 100% rename from modules/nixos/services/forgejo-runner/default.nix rename to nixosModules/services/forgejo-runner/default.nix diff --git a/modules/nixos/services/scrutiny/default.nix b/nixosModules/services/scrutiny/default.nix similarity index 80% rename from modules/nixos/services/scrutiny/default.nix rename to nixosModules/services/scrutiny/default.nix index 9bbdcd2c..08f9d900 100644 --- a/modules/nixos/services/scrutiny/default.nix +++ b/nixosModules/services/scrutiny/default.nix @@ -1,11 +1,12 @@ { config, lib, + self, ... }: let cfg = config.py.services.scrutiny.collector; - apiUrl = "https://marvin.${lib.py.data.tsNet}:${toString lib.py.data.services.scrutiny.port}"; + apiUrl = "https://marvin.${self.lib.data.tsNet}:${toString self.lib.data.services.scrutiny.port}"; in { options.py.services.scrutiny = { @@ -23,6 +24,7 @@ in settings = { host.id = config.networking.hostName; api.endpoint = apiUrl; - } // cfg.extraSettings; + } + // cfg.extraSettings; }; } diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100644 index 00000000..94ad6a7b --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,6 @@ +{ + flake.overlays = { + cinny = import ./cinny; + openssh-fixperms = import ./openssh-fixperms; + }; +} diff --git a/overlays/openssh-fixperms/default.nix b/overlays/openssh-fixperms/default.nix index 63237342..efe93a55 100644 --- a/overlays/openssh-fixperms/default.nix +++ b/overlays/openssh-fixperms/default.nix @@ -1,4 +1,4 @@ -_: final: prev: { +final: prev: { openssh-patched = prev.openssh.overrideAttrs (old: { patches = (old.patches or [ ]) ++ [ ./permfix.patch ]; doCheck = false; diff --git a/packages/default.nix b/packages/default.nix new file mode 100644 index 00000000..e123f26d --- /dev/null +++ b/packages/default.nix @@ -0,0 +1,31 @@ +{ ... }: +{ + + perSystem = + { + pkgs, + lib, + ... + }: + let + packages = lib.makeScope pkgs.newScope (_: { + anubis-files = pkgs.callPackage ./anubis-files { }; + doc2dash = pkgs.callPackage ./doc2dash { }; + jellyfin-exporter = pkgs.callPackage ./jellyfin-exporter { }; + pingvin-share-config = pkgs.callPackage ./pingvin-share-config { }; + + }); + in + { + legacyPackages = packages; + packages = lib.filterAttrs ( + _: pkg: + let + isDerivation = lib.isDerivation pkg; + availableOnHost = lib.meta.availableOn pkgs.stdenv.hostPlatform pkg; + isBroken = pkg.meta.broken or false; + in + isDerivation && !isBroken && availableOnHost + ) packages; + }; +} diff --git a/packages/jellyfin-exporter/default.nix b/packages/jellyfin-exporter/default.nix index 50b0b878..a57ce92a 100644 --- a/packages/jellyfin-exporter/default.nix +++ b/packages/jellyfin-exporter/default.nix @@ -6,13 +6,13 @@ }: buildGoModule (finalAttrs: { pname = "jellyfin-exporter"; - version = "1.3.5"; + version = "1.3.8"; src = fetchFromGitHub { owner = "rebelcore"; repo = "jellyfin_exporter"; tag = "v${finalAttrs.version}"; - hash = "sha256-TKKP0zBdQiAgWQJ8BKcPOR6I+ZKKwjDBq0r36E0BAVs="; + hash = "sha256-7fIrjcy6y/Ayj43WeuPNCx3uVJyl5Wf6bWs5ta2PpWc="; }; # We need to patch the tests since we don't move the binary to `$GOPATH/bin`, but to `$out/bin` instead. @@ -21,7 +21,7 @@ buildGoModule (finalAttrs: { --replace-fail "GOPATH" "out" ''; - vendorHash = "sha256-/VCE2C8EismFg1puajWmBK8qf3hLYXzywA1R/qqAMr0="; + vendorHash = "sha256-JSOKDbefQyDLNy2y1oW7HUplQw8uhhOGZ+ueWyUYYQ0="; meta = { changelog = "https://github.com/rebelcore/jellyfin_exporter/blob/v${finalAttrs.version}/CHANGELOG.md"; diff --git a/templates/default.nix b/templates/default.nix new file mode 100644 index 00000000..b49ba4a7 --- /dev/null +++ b/templates/default.nix @@ -0,0 +1,15 @@ +{ + self, + ... +}: +{ + flake = { + templates = { + uv = { + path = ./uv; + description = "uv project template"; + }; + }; + defaultTemplate = self.templates.uv; + }; +} -- 2.51.2