nixos_flake_config/flake.nix

187 lines
5.7 KiB
Nix
Raw Normal View History

2023-07-03 22:35:58 +02:00
{
description = "NixOS configuration";
inputs = {
2024-12-02 22:16:51 +01:00
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
2023-09-30 20:13:43 +02:00
nix-xilinx = {
url = "gitlab:asmir.abdulahovic/nix-xilinx";
inputs.nixpkgs.follows = "nixpkgs";
};
peerix = {
url = "gitlab:asmir.abdulahovic/peerix";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-09-20 19:43:01 +02:00
zremap = {
2024-05-07 16:35:50 +02:00
url = "git+https://git.project-cloud.net/asmir/zremap";
2023-09-20 19:43:01 +02:00
inputs.nixpkgs.follows = "nixpkgs";
};
2023-10-26 22:48:08 +02:00
swaysw = {
url = "git+https://git.project-cloud.net/asmir/swaysw";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-10-27 01:46:36 +02:00
nvim = {
2024-03-16 15:31:38 +01:00
url = "git+https://git.project-cloud.net/asmir/nvim_flake";
2023-10-27 01:46:36 +02:00
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-07-03 22:35:58 +02:00
home-manager = {
2024-12-26 13:25:01 +01:00
url = "github:nix-community/home-manager/release-24.11";
2023-07-03 22:35:58 +02:00
inputs.nixpkgs.follows = "nixpkgs";
};
2023-10-01 16:03:02 +02:00
simple-nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-11-14 14:41:06 +01:00
project-cloud = {
url = "git+https://git.project-cloud.net/asmir/project-cloud";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-07-03 22:35:58 +02:00
};
2025-01-10 18:11:42 +01:00
outputs =
inputs@{
home-manager,
nixpkgs,
nix-xilinx,
nvim,
peerix,
project-cloud,
simple-nixos-mailserver,
sops-nix,
swaysw,
zremap,
...
}:
let
pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs;
in
{
nixosConfigurations = rec {
nixy = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [
{ _module.args = inputs; }
{ _module.args.system = system; }
{ nix.registry.nixpkgs.flake = nixpkgs; }
./common/packages.nix
./common/suspend.nix
./nixy/configuration.nix
./nixy/hardware-configuration.nix
sops-nix.nixosModules.sops
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.akill = import ./home/home.nix;
home-manager.extraSpecialArgs = { inherit inputs system; };
home-manager.backupFileExtension = "home_backup";
}
peerix.nixosModules.peerix
{
services.peerix = {
enable = true;
globalCacheTTL = 10;
package = peerix.packages.x86_64-linux.peerix;
openFirewall = true; # UDP/12304
privateKeyFile = nixy.config.sops.secrets."peerix/private".path;
publicKeyFile = ./nixy/peerix-public;
publicKey = "peerix-mediabox:UDgG3xdQYv7bmx2l4ZPNRPJtp2zMmY++H/fnGeJ9BQw=";
};
}
];
};
2023-09-07 10:57:18 +02:00
2025-01-10 18:11:42 +01:00
mediabox = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [
{ _module.args = inputs; }
{ _module.args.system = system; }
{ nix.registry.nixpkgs.flake = nixpkgs; }
./common/packages.nix
./common/suspend.nix
./mediabox/configuration.nix
./mediabox/hardware-configuration.nix
./modules/qbittorrent.nix
sops-nix.nixosModules.sops
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.akill = import ./home/home.nix;
home-manager.extraSpecialArgs = { inherit inputs system; };
}
peerix.nixosModules.peerix
{
services.peerix = {
enable = true;
globalCacheTTL = 10;
package = peerix.packages.x86_64-linux.peerix;
openFirewall = true; # UDP/12304
privateKeyFile = mediabox.config.sops.secrets."peerix/private".path;
publicKeyFile = ./mediabox/peerix-public;
publicKey = "peerix-nixy:8THqS0R2zWF/47ai0RFmqJnieYTZ1jaWOD9tnzpvA6s=";
};
}
];
};
2023-09-30 14:10:53 +02:00
2025-01-10 18:11:42 +01:00
blue = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [
{ _module.args = inputs; }
{ _module.args.system = system; }
{ nix.registry.nixpkgs.flake = nixpkgs; }
./blue/configuration.nix
./blue/hardware-configuration.nix
./common/packages.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.akill = import ./home/home.nix;
home-manager.extraSpecialArgs = { inherit inputs system; };
}
];
};
magpie = nixpkgs.lib.nixosSystem rec {
system = "aarch64-linux";
modules = [
{ _module.args = inputs; }
{ _module.args.system = system; }
{ nix.registry.nixpkgs.flake = nixpkgs; }
./magpie/configuration.nix
./magpie/hardware-configuration.nix
simple-nixos-mailserver.nixosModule
sops-nix.nixosModules.sops
(builtins.toPath "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix")
];
};
2023-09-07 10:57:18 +02:00
};
2025-01-10 18:11:42 +01:00
devShell.x86_64-linux = pkgs.mkShell {
buildInputs = with pkgs; [
sops
ssh-to-age
age
2023-10-01 16:03:02 +02:00
];
2025-01-10 18:11:42 +01:00
shellHook = ''
echo "Configuring NixOS!"
'';
2023-10-01 16:03:02 +02:00
};
2023-07-03 23:10:39 +02:00
2025-01-10 18:11:42 +01:00
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
2023-07-03 23:10:39 +02:00
};
2023-07-03 22:35:58 +02:00
}