nixos/flake.nix

163 lines
5 KiB
Nix
Raw Normal View History

2023-01-25 11:48:44 +00:00
{
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";
2023-01-25 11:48:44 +00:00
lix-module = {
2025-07-03 14:35:37 +01:00
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz";
# inputs.nixpkgs.follows = "nixpkgs";
};
2023-01-25 11:48:44 +00:00
# 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";
};
2024-04-20 02:08:57 +01:00
colmena.url = "github:zhaofengli/colmena";
2023-01-25 11:48:44 +00:00
# we host our own
simple-nixos-mailserver = {
2024-02-04 20:17:46 +00:00
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_backend.url = "git+file:/_college/CompSoc/Skynet/ldap_backend?shallow=1";
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";
2025-07-01 17:01:34 +01:00
skynet_discord_bot_t-800.url = "git+https://forgejo.skynet.ie/Skynet/discord-bot-t-800";
# for testing a local build
# skynet_discord_bot.url = "git+file:/_college/CompSoc/Skynet/discord_bot?shallow=1";
2024-06-14 21:34:43 +01:00
#####################
### compsoc stuff ###
#####################
compsoc_public.url = "git+https://forgejo.skynet.ie/Computer_Society/presentations_compsoc";
#################
### skynet.ie ###
#################
# this should always point to teh current website
2025-04-04 01:44:31 +01:00
skynet_website.url = "git+https://forgejo.skynet.ie/Skynet/website_2023";
# past versions of the current website
2025-04-04 01:44:31 +01:00
skynet_website_2024.url = "git+https://forgejo.skynet.ie/Skynet/website_2023?ref=main&rev=8987e33cb709e7f2c30017e77edf9161b87d9885";
skynet_website_2023.url = "git+https://forgejo.skynet.ie/Skynet/website_2023?ref=main&rev=c4d61c753292bf73ed41b47b1607cfc92a82a191";
skynet_website_2022.url = "git+https://forgejo.skynet.ie/Skynet/website_2023?ref=2022&rev=687a0b1811987cfc27c2e6f5a625c4d59ef577c2";
skynet_website_2016.url = "git+https://forgejo.skynet.ie/Skynet/website_2016";
skynet_website_2006.url = "git+https://forgejo.skynet.ie/Skynet/website_2006";
skynet_website_2003.url = "git+https://forgejo.skynet.ie/Skynet/website_2003";
2025-04-07 23:49:22 +01:00
skynet_website_1996.url = "git+https://forgejo.skynet.ie/Skynet/website_1996";
2023-01-25 11:48:44 +00:00
};
nixConfig = {
extra-substituters = "https://nix-cache.skynet.ie/skynet-cache";
2024-06-03 20:03:49 +01:00
extra-trusted-public-keys = "skynet-cache:zMFLzcRZPhUpjXUy8SF8Cf7KGAZwo98SKrzeXvdWABo=";
};
outputs = {
self,
nixpkgs,
agenix,
alejandra,
2024-04-20 02:08:57 +01:00
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";
nativeBuildInputs = [
pkgs.buildPackages.git
2024-04-20 02:08:57 +01:00
colmena.defaultPackage."x86_64-linux"
pkgs.attic-client
pkgs.buildPackages.nmap
];
buildInputs = [agenix.packages.x86_64-linux.default];
shellHook = ''export PROMPT_DIRTRIM=3; export PS1="[Skynet] \w:\$ "'';
};
2023-01-25 11:48:44 +00:00
colmena = {
meta = {
nixpkgs = import nixpkgs {
system = "x86_64-linux";
2023-01-25 11:48:44 +00:00
overlays = [];
};
2023-07-21 21:27:01 +01:00
specialArgs = {
2024-07-20 12:21:30 +01:00
inherit inputs self;
};
2023-01-25 11:48:44 +00:00
};
# installed for each machine
defaults = import ./machines/_base.nix;
2023-01-25 11:48:44 +00:00
# firewall machiene
agentjones = import ./machines/agentjones.nix;
# ns1
vendetta = import ./machines/vendetta.nix;
# ns2
2023-01-25 11:48:44 +00:00
vigil = import ./machines/vigil.nix;
# icecast - ULFM
galatea = import ./machines/galatea.nix;
2023-06-14 21:53:48 +01:00
# LDAP host
kitt = import ./machines/kitt.nix;
2023-06-14 20:45:34 +01:00
2023-06-15 02:47:56 +01:00
# Gitlab
glados = import ./machines/glados.nix;
2023-06-17 19:37:06 +01:00
# Gitlab runners
wheatly = import ./machines/wheatly.nix;
# email
gir = import ./machines/gir.nix;
# backup 1
neuromancer = import ./machines/neuromancer.nix;
# Skynet, user ssh access
2023-07-20 22:05:46 +01:00
skynet = import ./machines/skynet.nix;
# Main skynet sites
earth = import ./machines/earth.nix;
2023-10-25 19:28:09 +01:00
# 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;
2024-12-09 23:08:39 +00:00
2025-01-02 22:19:55 +00:00
# games server - panel
optimus = import ./machines/optimus.nix;
2025-01-02 22:19:55 +00:00
2025-01-03 00:19:29 +00:00
# games server - host
bumblebee = import ./machines/bumblebee.nix;
2023-01-25 11:48:44 +00:00
};
};
}