2022-11-13 22:45:50 +01:00
|
|
|
{
|
|
|
|
description = "hacc infra stuff";
|
|
|
|
|
|
|
|
inputs = {
|
2024-12-04 00:34:55 +01:00
|
|
|
nixpkgs.url = "nixpkgs/nixos-24.11-small";
|
2024-04-09 01:20:24 +02:00
|
|
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable-small";
|
2023-09-27 17:14:05 +02:00
|
|
|
nixpkgs-oldstable.url = "github:/NixOS/nixpkgs?rev=c4aec3c021620d98861639946123214207e98344";
|
2023-11-01 18:36:54 +01:00
|
|
|
|
2024-12-04 00:34:55 +01:00
|
|
|
nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
2023-01-22 02:25:07 +01:00
|
|
|
tracktrain.url = "git+https://stuebinm.eu/git/tracktrain?ref=main";
|
|
|
|
tracktrain.flake = false;
|
2022-11-13 23:04:55 +01:00
|
|
|
|
|
|
|
deploy-rs.url = "github:serokell/deploy-rs";
|
|
|
|
deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
|
2023-04-19 20:08:45 +02:00
|
|
|
sops-nix.url = "github:Mic92/sops-nix";
|
2024-07-15 15:25:33 +02:00
|
|
|
sops-nix.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
2022-11-25 22:48:27 +01:00
|
|
|
|
|
|
|
# these exist mostly to make the flake.lock somewhat more human-friendly
|
|
|
|
# note that in theory doing this might break things, but it seems fairly unlikely
|
|
|
|
nixos-mailserver.inputs = {
|
2024-06-19 20:51:44 +02:00
|
|
|
nixpkgs.follows = "nixpkgs-unstable";
|
2024-12-23 18:22:17 +01:00
|
|
|
nixpkgs_24-11.follows = "nixpkgs";
|
2023-06-06 02:04:11 +02:00
|
|
|
flake-compat.follows = "/deploy-rs/flake-compat";
|
2022-11-25 22:48:27 +01:00
|
|
|
};
|
2022-11-13 22:45:50 +01:00
|
|
|
};
|
|
|
|
|
2024-02-18 13:45:32 +01:00
|
|
|
outputs = { self, nixpkgs, deploy-rs, sops-nix, ... }@inputs:
|
|
|
|
let modules = {
|
2024-01-31 23:30:06 +01:00
|
|
|
bindMounts = import ./modules/bindmounts.nix;
|
|
|
|
nopersist = import ./modules/nopersist.nix;
|
2024-01-31 23:47:02 +01:00
|
|
|
encboot = import ./modules/encboot.nix;
|
2024-01-31 23:30:06 +01:00
|
|
|
};
|
2024-02-18 13:45:32 +01:00
|
|
|
profiles = {
|
2023-02-18 14:45:14 +01:00
|
|
|
container = import ./modules/container-profile.nix;
|
|
|
|
};
|
2022-11-13 22:45:50 +01:00
|
|
|
pkgs = import ./pkgs {
|
|
|
|
sources = inputs;
|
|
|
|
system = "x86_64-linux";
|
2023-11-30 17:43:48 +01:00
|
|
|
config.allowUnfree = true;
|
2022-11-13 22:45:50 +01:00
|
|
|
};
|
|
|
|
in {
|
|
|
|
nixosConfigurations.parsons = nixpkgs.lib.nixosSystem {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
modules = [
|
2024-01-11 22:53:02 +01:00
|
|
|
./parsons/configuration.nix
|
2024-04-06 23:05:17 +02:00
|
|
|
./modules/buildinfo.nix
|
2024-04-19 19:11:03 +02:00
|
|
|
./modules/containers.nix
|
2023-04-19 20:08:45 +02:00
|
|
|
sops-nix.nixosModules.sops
|
2022-11-13 22:45:50 +01:00
|
|
|
{ nixpkgs.pkgs = pkgs; }
|
|
|
|
];
|
|
|
|
specialArgs = {
|
|
|
|
sources = inputs;
|
2024-04-19 19:11:03 +02:00
|
|
|
inherit modules profiles;
|
|
|
|
inherit (nixpkgs.lib) nixosSystem;
|
2022-11-13 22:45:50 +01:00
|
|
|
};
|
|
|
|
};
|
2022-11-13 23:04:55 +01:00
|
|
|
|
|
|
|
deploy.nodes.parsons = {
|
|
|
|
hostname = "parsons";
|
|
|
|
profiles.system = {
|
|
|
|
user = "root";
|
2022-11-15 15:19:36 +01:00
|
|
|
autoRollback = false;
|
2022-11-13 23:04:55 +01:00
|
|
|
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
|
|
|
self.nixosConfigurations.parsons;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
# This is highly advised, and will prevent many possible mistakes
|
|
|
|
checks = builtins.mapAttrs
|
|
|
|
(system: deployLib: deployLib.deployChecks self.deploy)
|
|
|
|
deploy-rs.lib;
|
2023-02-24 17:33:48 +01:00
|
|
|
|
2024-08-30 17:52:57 +02:00
|
|
|
apps.x86_64-linux =
|
2024-01-11 22:53:02 +01:00
|
|
|
let
|
2024-08-30 17:52:57 +02:00
|
|
|
mkApp = pkg: {
|
|
|
|
type = "app";
|
|
|
|
program = pkgs.lib.getExe pkg;
|
|
|
|
};
|
|
|
|
websites = pkgs.lib.mapAttrs (name: mkApp)
|
|
|
|
self.nixosConfigurations.parsons.config.hacc.websites.builders;
|
2024-01-11 22:53:02 +01:00
|
|
|
in
|
|
|
|
{ docs = websites."docs.hacc.space"; } // websites;
|
2024-08-30 17:56:10 +02:00
|
|
|
|
|
|
|
packages.x86_64-linux = {
|
2024-11-11 01:12:22 +01:00
|
|
|
inherit (pkgs) mattermost hacc-scripts;
|
2024-08-30 17:56:10 +02:00
|
|
|
};
|
2022-11-13 22:45:50 +01:00
|
|
|
};
|
2022-11-13 23:04:55 +01:00
|
|
|
|
2022-11-13 22:45:50 +01:00
|
|
|
}
|