nixos-config/flake.nix

122 lines
3.4 KiB
Nix
Raw Normal View History

{
2020-04-27 05:39:00 +04:00
description =
"A collection of crap, hacks and copy-paste to make my localhosts boot";
2020-06-21 13:17:20 +04:00
inputs = {
2021-01-21 22:13:53 +04:00
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
lambda-launcher.url = "github:balsoft/lambda-launcher";
2021-01-23 23:21:51 +04:00
deploy-rs.url = "github:serokell/deploy-rs";
2021-03-10 19:53:44 +04:00
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
2020-06-21 13:17:20 +04:00
NUR = {
2021-01-21 22:13:53 +04:00
url = "github:nix-community/NUR";
2020-06-21 13:17:20 +04:00
flake = false;
};
2021-06-10 19:58:51 +04:00
base16-black-metal-scheme = {
url = "github:metalelf0/base16-black-metal-scheme";
2020-06-21 13:17:20 +04:00
flake = false;
};
2021-01-21 22:13:53 +04:00
home-manager.url = "github:rycee/home-manager";
2020-06-21 13:17:20 +04:00
materia-theme = {
2021-01-21 22:13:53 +04:00
url = "github:nana-4/materia-theme";
2020-06-21 13:17:20 +04:00
flake = false;
};
nixpkgs-old = {
2021-01-21 22:13:53 +04:00
url = "github:nixos/nixpkgs/nixos-19.09";
2020-06-21 13:17:20 +04:00
flake = false;
};
simple-nixos-mailserver = {
2020-11-10 02:07:06 +04:00
url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
2020-06-21 13:17:20 +04:00
flake = false;
};
nixpkgs-wayland = {
2021-01-21 22:13:53 +04:00
url = "github:colemickens/nixpkgs-wayland";
2020-06-21 13:17:20 +04:00
flake = false;
};
yt-utilities = {
type = "git";
url = "ssh://git@github.com/serokell/yt-utilities";
ref = "flake";
};
2021-01-21 22:13:53 +04:00
nixos-fhs-compat.url = "github:balsoft/nixos-fhs-compat";
simple-osd-daemons.url = "github:balsoft/simple-osd-daemons";
2021-03-11 02:57:37 +04:00
emacs-overlay.url = "github:nix-community/emacs-overlay";
2021-03-18 18:10:07 +04:00
sonoff-lan = {
url = "github:AlexxIT/SonoffLAN";
flake = false;
};
2021-03-30 15:05:31 +04:00
crdt = {
url = "git+https://code.librehq.com/qhong/crdt.el";
flake = false;
};
2021-05-19 02:13:25 +04:00
himalaya.url = "github:soywod/himalaya";
2021-06-08 20:35:21 +04:00
impermanence.url = "github:nix-community/impermanence";
2021-06-10 19:58:51 +04:00
rycee = {
url = "gitlab:rycee/nur-expressions";
flake = false;
};
2021-06-17 23:39:12 +04:00
nix-direnv = {
url = "github:nix-community/nix-direnv";
};
2021-06-19 00:48:50 +04:00
nheko = {
url = "github:balsoft/nheko/allow-edits-of-pending-messages";
flake = false;
};
2020-06-21 13:17:20 +04:00
};
2021-01-23 23:21:51 +04:00
outputs = { nixpkgs, nix, self, deploy-rs, ... }@inputs: {
2021-01-21 22:13:53 +04:00
nixosModules = import ./modules;
nixosProfiles = import ./profiles;
2020-06-21 13:17:20 +04:00
nixosConfigurations = with nixpkgs.lib;
2020-04-27 05:39:00 +04:00
let
2021-01-21 22:13:53 +04:00
hosts = builtins.attrNames (builtins.readDir ./machines);
2020-04-27 05:39:00 +04:00
mkHost = name:
2020-06-21 13:17:20 +04:00
nixosSystem {
2021-01-21 22:13:53 +04:00
system = builtins.readFile (./machines + "/${name}/system");
2021-01-23 23:21:51 +04:00
modules = [ (import (./machines + "/${name}")) { device = name; } ];
2021-01-21 22:13:53 +04:00
specialArgs = { inherit inputs; };
2020-06-21 13:17:20 +04:00
};
2020-04-27 05:39:00 +04:00
in genAttrs hosts mkHost;
2020-07-03 12:59:36 +04:00
2020-06-21 13:17:20 +04:00
legacyPackages.x86_64-linux =
(builtins.head (builtins.attrValues self.nixosConfigurations)).pkgs;
2021-01-23 23:21:51 +04:00
defaultApp = deploy-rs.defaultApp;
2021-03-10 19:53:44 +04:00
devShell.x86_64-linux = with nixpkgs.legacyPackages.x86_64-linux;
mkShell {
buildInputs = [
nix.defaultPackage.x86_64-linux
deploy-rs.defaultPackage.x86_64-linux
nixfmt
];
};
2020-06-21 13:17:20 +04:00
deploy = {
2021-01-23 23:21:51 +04:00
user = "root";
2021-06-15 00:00:45 +04:00
nodes = (builtins.mapAttrs (_: machine: {
hostname = machine.config.networking.hostName;
profiles.system = {
user = "balsoft";
path = deploy-rs.lib.x86_64-linux.activate.noop
machine.config.system.build.toplevel;
};
}) self.nixosConfigurations) // {
T420-Laptop = {
hostname =
self.nixosConfigurations.T420-Laptop.config.networking.hostName;
profiles.system.path = deploy-rs.lib.x86_64-linux.activate.nixos
self.nixosConfigurations.T420-Laptop;
};
2021-01-23 23:21:51 +04:00
};
2020-05-22 22:30:25 +04:00
};
2020-06-21 13:17:20 +04:00
};
}