mirror of
https://github.com/nix-community/srvos.git
synced 2024-10-26 17:49:54 +03:00
172 lines
5.1 KiB
Nix
172 lines
5.1 KiB
Nix
{
|
|
description = "Server-optimized nixos configuration";
|
|
|
|
inputs = {
|
|
# FIXME: how do we handle multiple releases in future? multiple branches?
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, ... }: {
|
|
nixosModules = import ./.;
|
|
|
|
nixosConfigurations =
|
|
let
|
|
fake-hardware = {
|
|
boot.loader.grub.devices = [ "/dev/sda" ];
|
|
fileSystems."/" = {
|
|
device = "/dev/sda";
|
|
};
|
|
};
|
|
# some example configuration to make it eval
|
|
dummy = { config, ... }: {
|
|
networking.hostName = "example-common";
|
|
system.stateVersion = config.system.nixos.version;
|
|
users.users.root.initialPassword = "fnord23";
|
|
};
|
|
in
|
|
{
|
|
# General
|
|
example-common = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.common
|
|
];
|
|
};
|
|
example-server = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.server
|
|
];
|
|
};
|
|
example-desktop = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.desktop
|
|
];
|
|
};
|
|
|
|
# Hardware
|
|
example-hardware-amazon = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
self.nixosModules.hardware-amazon
|
|
];
|
|
};
|
|
example-hardware-hetzner-cloud = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
self.nixosModules.hardware-hetzner-cloud
|
|
{
|
|
systemd.network.networks."10-uplink".networkConfig.Address = "::cafe:babe:feed:face:dead:beef";
|
|
}
|
|
];
|
|
};
|
|
|
|
# Mixins
|
|
example-mixins-cloud-init = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.mixins-cloud-init
|
|
];
|
|
};
|
|
example-mixins-systemd-boot = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.mixins-systemd-boot
|
|
];
|
|
};
|
|
example-mixins-telegraf = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.mixins-telegraf
|
|
];
|
|
};
|
|
example-mixins-terminfo = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.mixins-terminfo
|
|
];
|
|
};
|
|
example-mixins-trusted-nix-caches = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.mixins-trusted-nix-caches
|
|
];
|
|
};
|
|
example-mixins-nginx = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
dummy
|
|
fake-hardware
|
|
self.nixosModules.mixins-nginx
|
|
];
|
|
};
|
|
|
|
# Roles
|
|
example-roles-github-actions-runner = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
self.nixosModules.roles-github-actions-runner
|
|
dummy
|
|
fake-hardware
|
|
{
|
|
roles.github-actions-runner.cachix.cacheName = "cache-name";
|
|
roles.github-actions-runner.cachix.tokenFile = "/run/cachix-token-file";
|
|
roles.github-actions-runner.tokenFile = "/run/gha-token-file";
|
|
roles.github-actions-runner.url = "https://fixup";
|
|
}
|
|
];
|
|
};
|
|
example-roles-github-actions-runner-github-app = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
self.nixosModules.roles-github-actions-runner
|
|
dummy
|
|
fake-hardware
|
|
{
|
|
roles.github-actions-runner.cachix.cacheName = "cache-name";
|
|
roles.github-actions-runner.cachix.tokenFile = "/run/cachix-token-file";
|
|
roles.github-actions-runner.githubApp = {
|
|
id = "1234";
|
|
login = "foo";
|
|
privateKeyFile = "/run/gha-token-file";
|
|
};
|
|
roles.github-actions-runner.url = "https://fixup";
|
|
}
|
|
];
|
|
};
|
|
example-roles-nix-remote-builder = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
self.nixosModules.roles-nix-remote-builder
|
|
dummy
|
|
fake-hardware
|
|
{
|
|
roles.nix-remote-builder.schedulerPublicKeys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOuiDoBOxgyer8vGcfAIbE6TC4n4jo8lhG9l01iJ0bZz zimbatm@no1"
|
|
];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|