-
Notifications
You must be signed in to change notification settings - Fork 1
/
default.nix
113 lines (104 loc) · 2.7 KB
/
default.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# This file contains all of my system configurations
# assuming the inputs passed to the root level
# flake.nix
#
# It's primary outputs are
# - darwinConfigurations
# - nixosConfigurations
#
# TODO
# * Simplify darwin configurations to be more like
# nixos configurations.
{ self, nixpkgs, disko, home-manager, nix-darwin, agenix, flakes, ... }:
let
defaultOverlays = [
flakes.jujutsu.overlays.default
];
# Create pkgs from nixpkgs using system and overlays
# Prefer allowUnfree
mkPkgs = { system, overlays ? defaultOverlays }: import nixpkgs {
inherit system overlays;
config.allowUnfree = true;
};
# Supplement nixosSystem with flake inputs
nixosSystem = nixpkgs.lib.nixosSystem;
# Supplement darwinSystem with flake inputs
darwinSystem = nix-darwin.lib.darwinSystem;
# Shortcuts
hm-nixos = home-manager.nixosModules.home-manager;
hm-darwin = home-manager.darwinModules.home-manager;
in
{
# Darwin configs are a little boilerplatey.. we could
# do better to organize and setup modules/bundles.
darwinConfigurations = {
# Personal Macbook Pro 13" 2018
diane = darwinSystem rec {
pkgs = mkPkgs { inherit system; };
system = "x86_64-darwin";
modules = [
hm-darwin
self.homes.brandon.basic
./common/minimal.nix
./darwin/minimal.nix
];
};
# Personal Macbook Pro 14 2021
rosalind = darwinSystem rec {
pkgs = mkPkgs { inherit system; };
system = "aarch64-darwin";
modules = [
hm-darwin
self.homes.brandon.basic
./common/minimal.nix
./darwin/minimal.nix
];
};
};
nixosConfigurations = {
# Home Server
toph = nixosSystem rec {
pkgs = mkPkgs { inherit system; };
system = "x86_64-linux";
modules = [
hm-nixos
agenix.nixosModules.age
self.homes.brandon.basic
./toph.nix
];
};
# Private services (OVHCloud)
abigail = nixosSystem rec {
pkgs = mkPkgs { inherit system; };
system = "x86_64-linux";
modules = [
hm-nixos
agenix.nixosModules.age
self.homes.brandon.basic
./abigail.nix
];
};
# Public services (OVHCloud)
bartleby = nixosSystem rec {
pkgs = mkPkgs { inherit system; };
system = "x86_64-linux";
modules = [
hm-nixos
agenix.nixosModules.age
self.homes.brandon.basic
./bartleby.nix
];
};
# Test server (OVHCloud)
clementine = nixosSystem rec {
pkgs = mkPkgs { inherit system; };
system = "x86_64-linux";
modules = [
disko.nixosModules.disko
hm-nixos
self.homes.brandon.basic
./clementine.nix
];
};
};
}