{ description = "Deployment for skynet"; inputs = { # gonna start off with a fairly modern base nixpkgs.url = "nixpkgs/nixos-unstable"; # Return to using unstable once the current master is merged in # nixpkgs.url = "nixpkgs/nixos-unstable"; lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; }; # utility stuff flake-utils.url = "github:numtide/flake-utils"; agenix.url = "github:ryantm/agenix"; arion.url = "github:hercules-ci/arion"; alejandra = { url = "github:kamadorueda/alejandra"; inputs.nixpkgs.follows = "nixpkgs"; }; colmena.url = "github:zhaofengli/colmena"; # we host our own simple-nixos-mailserver = { inputs.nixpkgs.follows = "nixpkgs"; url = "git+https://forgejo.skynet.ie/Skynet/misc_nixos-mailserver"; }; ###################### ### skynet backend ### ###################### skynet_ldap_backend.url = "git+https://forgejo.skynet.ie/Skynet/ldap_backend"; skynet_ldap_frontend.url = "git+https://forgejo.skynet.ie/Skynet/ldap_frontend"; skynet_website_wiki.url = "git+https://forgejo.skynet.ie/Skynet/wiki"; skynet_website_games.url = "git+https://forgejo.skynet.ie/Skynet/website_games"; skynet_discord_bot.url = "git+https://forgejo.skynet.ie/Skynet/discord-bot"; # for testing a local build # skynet_discord_bot.url = "git+file:/_college/CompSoc/Skynet/discord_bot?shallow=1"; ##################### ### compsoc stuff ### ##################### compsoc_public.url = "git+https://forgejo.skynet.ie/Computer_Society/presentations_compsoc"; ################# ### skynet.ie ### ################# # this should always point to teh current website skynet_website.url = "git+https://forgejo.skynet.ie/Skynet/website_2017"; # these are past versions of teh website skynet_website_2023.url = "git+https://forgejo.skynet.ie/Skynet/website_2017?rev=c4d61c753292bf73ed41b47b1607cfc92a82a191"; # this is not 100% right since this is from teh archive from 2022 or so skynet_website_2017.url = "git+https://forgejo.skynet.ie/Skynet/website_2017?rev=edd922c5b13fa1f520e8e265a3d6e4e189852b99"; # this is more of 2012 than 2009 but started in 2009 skynet_website_2009.url = "git+https://forgejo.skynet.ie/Skynet/website_2009"; }; nixConfig = { bash-prompt-suffix = "[Skynet Dev] "; extra-substituters = "https://nix-cache.skynet.ie/skynet-cache"; extra-trusted-public-keys = "skynet-cache:zMFLzcRZPhUpjXUy8SF8Cf7KGAZwo98SKrzeXvdWABo="; }; outputs = { self, nixpkgs, agenix, alejandra, colmena, ... } @ inputs: let pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs; in { formatter.x86_64-linux = alejandra.defaultPackage."x86_64-linux"; devShells.x86_64-linux.default = pkgs.mkShell { name = "Skynet build env"; nativeBuildInputs = [ pkgs.buildPackages.git colmena.defaultPackage."x86_64-linux" pkgs.attic-client pkgs.buildPackages.nmap ]; buildInputs = [agenix.packages.x86_64-linux.default]; shellHook = ''export EDITOR="${pkgs.nano}/bin/nano --nonewlines"; unset LD_LIBRARY_PATH;''; }; colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; overlays = []; }; specialArgs = { inherit inputs self; }; }; # installed for each machine defaults = import ./machines/_base.nix; # 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; # LDAP host kitt = import ./machines/kitt.nix; # Gitlab glados = import ./machines/glados.nix; # Gitlab runners wheatly = import ./machines/wheatly.nix; # email gir = import ./machines/gir.nix; # backup 1 neuromancer = import ./machines/neuromancer.nix; # Skynet, user ssh access skynet = import ./machines/skynet.nix; # Main skynet sites earth = import ./machines/earth.nix; # Nextcloud cadie = import ./machines/cadie.nix; # trainee server marvin = import ./machines/marvin.nix; # Public Services calculon = import ./machines/calculon.nix; # metrics ariia = import ./machines/ariia.nix; # games server - panel/host optimus = import ./machines/optimus.nix; }; }; }