satnogs-nixos-deployment/flake.nix

85 lines
2.0 KiB
Nix

{
# see https://nixops.readthedocs.io/en/latest/guides/deploy-without-root.html
description = "Satnogs Deployment Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/23.11";
agenix.url = "github:ryantm/agenix";
satnogs-client-docker.url = "git+ssh://git@git.zenerdio.de/sebastian/satnogs-client-docker-flake.git";
};
outputs = { self, nixpkgs, agenix, satnogs-client-docker, ... }:
let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in
{
formatter.x86_64-linux = pkgs.nixpkgs-fmt;
devShells.x86_64-linux.default = pkgs.mkShell {
buildInputs = with pkgs; [
colmena
agenix.packages.x86_64-linux.default
];
};
colmena = {
meta = {
nixpkgs = import nixpkgs {
system = "x86_64-linux";
};
};
defaults = { config, pkgs, ... }: {
imports = [
./modules/users.nix
./modules/ssh.nix
./modules/locale.nix
agenix.nixosModules.default
];
};
dl1ssk = { config, pkgs, ... }:
{
deployment = {
tags = [ "satnogs" ];
targetHost = "192.168.42.22";
};
imports = [
./modules/common-packages.nix
./machines/dl1ssk/configuration.nix
satnogs-client-docker.nixosModules.default
];
};
};
nixosConfigurations.rpi4_bootstrap = nixpkgs.lib.nixosSystem {
modules = [
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
{
imports = [
./modules/rpi.nix
./modules/common-packages.nix
./modules/locale.nix
./modules/ssh.nix
./modules/users.nix
];
networking.firewall.enable = false;
system.stateVersion = "23.11";
}
];
};
images.rpi4_bootstrap = self.nixosConfigurations.rpi4_bootstrap.config.system.build.sdImage;
};
}