{ description = "Deployment for skynet"; inputs = { # gonna start off with a fairly modern base nixpkgs.url = "nixpkgs/nixos-23.05"; # utility stuff flake-utils.url = "github:numtide/flake-utils"; agenix.url = "github:ryantm/agenix"; arion.url = "github:hercules-ci/arion"; # email # simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-23.05"; simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; # sso.skynet.ie skynet_ldap_backend.url = "git+https://gitlab.skynet.ie/compsoc/skynet/ldap/backend.git"; skynet_ldap_frontend.url = "git+https://gitlab.skynet.ie/compsoc/skynet/ldap/frontend.git"; }; outputs = { self, nixpkgs, # these are the nixos modules from otehr projects agenix, arion, simple-nixos-mailserver, skynet_ldap_backend, skynet_ldap_frontend, ... }: let system = "x86_64-linux"; in { # https://github.com/zhaofengli/colmena # colmena apply --on agentjones # colmena apply --on @dns # nix flake lock --update-input skynet_ldap_backend colmena = { meta = { nixpkgs = import nixpkgs { system = system; overlays = []; }; }; # installed for each machine defaults = { imports = [ ./machines/_base.nix # for the secrets agenix.nixosModule ]; }; # firewall machiene agentjones = import ./machines/agentjones.nix; # ns1 vendetta = import ./machines/vendetta.nix; # ns2 vigil = import ./machines/vigil.nix; # icecast - ULFM galatea = import ./machines/galatea.nix; # Game host optimus.imports = [./machines/optimus.nix arion.nixosModules.arion]; # LDAP host kitt.imports = [ ./machines/kitt.nix skynet_ldap_backend.nixosModule.${system} ]; # Gitlab glados = import ./machines/glados.nix; # Gitlab runners wheatly = import ./machines/wheatly.nix; # email gir.imports = [ ./machines/gir.nix simple-nixos-mailserver.nixosModule]; # backup 1 neuromancer = import ./machines/neuromancer.nix; }; }; }