mirror of
https://git.pyrox.dev/pyrox/nix.git
synced 2024-05-20 03:21:31 -04:00
305 lines
9.4 KiB
Nix
305 lines
9.4 KiB
Nix
{
|
|
nixConfig = {
|
|
experimental-features = "nix-command flakes";
|
|
substitute = "true";
|
|
extra-substituters = [
|
|
# Main NixOS Cache
|
|
"https://cache.nixos.org"
|
|
# Colmena Cache
|
|
"https://colmena.cachix.org"
|
|
# Crane Cache
|
|
"https://crane.cachix.org"
|
|
# A bunch of nix community projects
|
|
"https://isabelroses.cachix.org"
|
|
# A bunch of nix community projects
|
|
"https://nix-community.cachix.org"
|
|
# Nightly wayland packages
|
|
"https://nixpkgs-wayland.cachix.org"
|
|
# For nh
|
|
"https://viperml.cachix.org"
|
|
# Lix
|
|
"https://cache.lix.systems"
|
|
];
|
|
trusted-public-keys = [
|
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
"colmena.cachix.org-1:7BzpDnjjH8ki2CT3f6GdOk7QAzPOl+1t3LvTLXqYcSg="
|
|
"crane.cachix.org-1:8Scfpmn9w+hGdXH/Q9tTLiYAE/2dnJYRJP7kl80GuRk="
|
|
"isabelroses.cachix.org-1:mXdV/CMcPDaiTmkQ7/4+MzChpOe6Cb97njKmBQQmLPM="
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
|
"viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8="
|
|
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
|
];
|
|
cores = 0;
|
|
max-jobs = 8;
|
|
netrc-file = "/home/thehedgehog/.netrc";
|
|
};
|
|
description = "PyroNet machines and services";
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
nixpkgs-jellyfin.url = "github:minijackson/nixpkgs/jellyfin-10.9.0";
|
|
# Override certain inputs for other repos to reduce lockfile size and increase code sharing.
|
|
flake-compat.url = "github:edolstra/flake-compat";
|
|
systems.url = "github:nix-systems/default";
|
|
flake-parts = {
|
|
url = "github:hercules-ci/flake-parts";
|
|
inputs.nixpkgs-lib.follows = "nixpkgs-lib";
|
|
};
|
|
flake-utils = {
|
|
url = "github:numtide/flake-utils";
|
|
inputs.systems.follows = "systems";
|
|
};
|
|
nixpkgs-lib.url = "github:nix-community/nixpkgs.lib";
|
|
# Actual inputs
|
|
agenix = {
|
|
url = "github:ryantm/agenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.systems.follows = "systems";
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
alejandra = {
|
|
url = "github:kamadorueda/alejandra";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flakeCompat.follows = "flake-compat";
|
|
};
|
|
buildbot-nix = {
|
|
url = "github:Mic92/buildbot-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-parts.follows = "flake-parts";
|
|
};
|
|
conduit = {
|
|
url = "gitlab:famedly/conduit";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.attic.inputs.flake-utils.follows = "flake-utils";
|
|
inputs.attic.inputs.flake-compat.follows = "flake-compat";
|
|
inputs.attic.inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.attic.inputs.nixpkgs-stable.follows = "nixpkgs";
|
|
};
|
|
ctp = {
|
|
url = "github:catppuccin/nix";
|
|
};
|
|
dns = {
|
|
url = "github:kirelagin/dns.nix";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
golink = {
|
|
url = "github:tailscale/golink";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
hardware = {
|
|
url = "github:nixos/nixos-hardware";
|
|
};
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
iceshrimp = {
|
|
url = "git+https://iceshrimp.dev/pyrox/packaging";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
# lanzaboote = {
|
|
# url = "github:nix-community/lanzaboote/11e293475de0c010f86060f0ed74aafe5f593e8b";
|
|
# inputs.flake-compat.follows = "flake-compat";
|
|
# inputs.flake-utils.follows = "flake-utils";
|
|
# };
|
|
lix = {
|
|
url = "git+https://git.lix.systems/lix-project/lix";
|
|
flake = false;
|
|
};
|
|
lix-module = {
|
|
url = "git+https://git.lix.systems/lix-project/nixos-module";
|
|
inputs.lix.follows = "lix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
};
|
|
mailserver = {
|
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.utils.follows = "flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
mkshell-minimal = {
|
|
url = "github:viperML/mkshell-minimal";
|
|
};
|
|
neovim = {
|
|
url = "github:neovim/neovim/v0.9.5?dir=contrib";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
};
|
|
nh = {
|
|
url = "github:viperML/nh";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nixd = {
|
|
url = "github:nix-community/nixd";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-parts.follows = "flake-parts";
|
|
};
|
|
nix-index = {
|
|
url = "github:nix-community/nix-index";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-index-database = {
|
|
url = "github:Mic92/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nur.url = "github:nix-community/nur";
|
|
prismlauncher = {
|
|
url = "github:PrismLauncher/PrismLauncher";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.flake-parts.follows = "flake-parts";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.pre-commit-hooks.inputs.flake-utils.follows = "flake-utils";
|
|
inputs.pre-commit-hooks.inputs.flake-compat.follows = "flake-compat";
|
|
inputs.pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.pre-commit-hooks.inputs.nixpkgs-stable.follows = "nixpkgs";
|
|
};
|
|
my-pkgs = {
|
|
url = "git+https://git.pyrox.dev/pyrox/pkgs";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
wayland = {
|
|
url = "github:nix-community/nixpkgs-wayland";
|
|
inputs.flake-compat.follows = "flake-compat";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.nix-eval-jobs.inputs.flake-parts.follows = "flake-parts";
|
|
inputs.nix-eval-jobs.inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.lib-aggregate.inputs.flake-utils.follows = "flake-utils";
|
|
inputs.lib-aggregate.inputs.nixpkgs-lib.follows = "nixpkgs-lib";
|
|
};
|
|
};
|
|
|
|
outputs = inputs @ {
|
|
self,
|
|
nixpkgs,
|
|
nixpkgs-jellyfin,
|
|
alejandra,
|
|
buildbot-nix,
|
|
ctp,
|
|
golink,
|
|
hardware,
|
|
iceshrimp,
|
|
# lanzaboote,
|
|
lix-module,
|
|
mailserver,
|
|
mkshell-minimal,
|
|
neovim,
|
|
nix-index,
|
|
nix-index-database,
|
|
nixd,
|
|
nur,
|
|
my-pkgs,
|
|
prismlauncher,
|
|
wayland,
|
|
...
|
|
}: let
|
|
alejandra-overlay = final: prev: {
|
|
alejandra = alejandra.defaultPackage.${prev.system};
|
|
};
|
|
my-pkgs2 = final: prev: {my-pkgs = self.packages."${prev.system}";};
|
|
nix-index-overlay = final: prev: {
|
|
inherit (nix-index.packages.${system}) nix-index;
|
|
};
|
|
jellyfin-overlay = final: prev: {
|
|
inherit (nixpkgs-jellyfin.legacyPackages.${prev.system}) jellyfin jellyfin-web;
|
|
};
|
|
system = "x86_64-linux";
|
|
overlays = [
|
|
jellyfin-overlay
|
|
my-pkgs.overlays.cinny
|
|
my-pkgs2
|
|
alejandra-overlay
|
|
golink.overlay
|
|
# lanzaboote.overlays.default
|
|
lix-module.overlays.default
|
|
neovim.overlay
|
|
nixd.overlays.default
|
|
nix-index-overlay
|
|
nur.overlay
|
|
prismlauncher.overlays.default
|
|
wayland.overlays.default
|
|
];
|
|
|
|
pkgs = import nixpkgs {
|
|
inherit overlays;
|
|
localSystem = "x86_64-linux";
|
|
config = {
|
|
allowUnfree = true;
|
|
joypixels.acceptLicense = true;
|
|
permittedInsecurePackages = ["electron-19.0.7" "openssl-1.1.1t" "nodejs-16.20.0"];
|
|
};
|
|
};
|
|
|
|
mkShell = mkshell-minimal pkgs;
|
|
|
|
lib = nixpkgs.lib;
|
|
data = import ./data;
|
|
inherit (import ./lib { inherit self lib pkgs inputs data; }) myLib;
|
|
|
|
in rec {
|
|
packages.${system} = {
|
|
"caddy" = pkgs.callPackage ./pkgs/caddyBin.nix {};
|
|
"go-jamming" = pkgs.callPackage ./pkgs/go-jamming.nix {};
|
|
"nerdfont-symbols" = pkgs.callPackage ./pkgs/nerdfont-symbols.nix {};
|
|
"olympus" = pkgs.callPackage ./pkgs/olympus.nix {};
|
|
};
|
|
|
|
nixosModules = {
|
|
default = import ./modules/pyrox.nix;
|
|
dn42-pingfinder = import ./modules/dn42-pingfinder.nix;
|
|
};
|
|
|
|
nixosConfigurations.marvin = myLib.hosts.mkHost {
|
|
hostname = "marvin";
|
|
coreCount = 12;
|
|
extraModules = [
|
|
iceshrimp.nixosModules.default
|
|
golink.nixosModules.default
|
|
buildbot-nix.nixosModules.buildbot-master
|
|
buildbot-nix.nixosModules.buildbot-worker
|
|
nixosModules.default
|
|
];
|
|
};
|
|
|
|
nixosConfigurations.prefect = myLib.hosts.mkHost {
|
|
hostname = "prefect";
|
|
coreCount = 4;
|
|
extraModules = [
|
|
mailserver.nixosModule
|
|
self.nixosModules.dn42-pingfinder
|
|
];
|
|
};
|
|
|
|
nixosConfigurations.thought = myLib.hosts.mkHost {
|
|
hostname = "thought";
|
|
coreCount = 3;
|
|
extraModules = [
|
|
self.nixosModules.dn42-pingfinder
|
|
];
|
|
users = ["pyrox"];
|
|
};
|
|
|
|
nixosConfigurations.zaphod = myLib.hosts.mkHost {
|
|
hostname = "zaphod";
|
|
profile = "desktop";
|
|
coreCount = 8;
|
|
extraModules = [
|
|
hardware.nixosModules.framework-16-7040-amd
|
|
];
|
|
users = ["thehedgehog"];
|
|
};
|
|
|
|
devShells.${system}.default = mkShell {
|
|
buildInputs = [
|
|
# deploy-rs.packages.${system}.default
|
|
# colmena.packages.${system}.colmena
|
|
];
|
|
};
|
|
};
|
|
}
|