2023-12-25 12:01:47 +00:00
|
|
|
/*
|
|
|
|
This is a custom data for this project where it lists the images found in
|
|
|
|
this flake. This can range from NixOS configurations intended to be deployed
|
|
|
|
for servers and desktops to installers.
|
|
|
|
|
|
|
|
The data is then used for the image creation functions found in `flake.nix`.
|
|
|
|
Each of the entry should correspond to one of the hosts in `./hosts/`
|
|
|
|
directory.
|
|
|
|
|
|
|
|
Schema:
|
|
|
|
|
|
|
|
* systems
|
|
|
|
A list of systems that is expected to be deployed. This is required and
|
|
|
|
will have a default list of "x86_64-linux" when no system is given.
|
|
|
|
* format
|
|
|
|
The image format to be generated from nixos-generators. You can give it
|
|
|
|
as `null` when not intended to be listed as part of the images which is
|
|
|
|
often the case for desktop NixOS systems.
|
|
|
|
* modules
|
|
|
|
A list of extra NixOS modules to be passed. You'll want to see the
|
|
|
|
baseline host configuration defined in `flake.nix`.
|
|
|
|
* deploy
|
|
|
|
An attribute set of arguments similar to the `deploy` CLI. When this
|
|
|
|
attribute is present, it will be assumed as part of NixOS configurations
|
|
|
|
even with `format = null` which is often the case for bare metal NixOS
|
|
|
|
servers that also has a suitable image format for deployment.
|
|
|
|
* hostname
|
|
|
|
The hostname of the host. By default, it assumes the hostname being given
|
|
|
|
from the attribute name.
|
|
|
|
* domain
|
|
|
|
The domain set for the host. Normally given to server systems.
|
|
|
|
*/
|
2023-12-23 12:26:40 +00:00
|
|
|
{ lib, inputs }:
|
|
|
|
|
|
|
|
{
|
2023-12-25 12:01:47 +00:00
|
|
|
# The main desktop.
|
2023-12-23 12:26:40 +00:00
|
|
|
ni = {
|
|
|
|
systems = [ "x86_64-linux" ];
|
2023-12-25 11:54:54 +00:00
|
|
|
format = null;
|
2023-12-23 12:30:14 +00:00
|
|
|
modules = [
|
|
|
|
inputs.nur.nixosModules.nur
|
|
|
|
|
2023-12-25 12:03:22 +00:00
|
|
|
({ config, ... }: {
|
2023-12-23 12:30:14 +00:00
|
|
|
nixpkgs.overlays = [
|
|
|
|
# Neovim nightly!
|
|
|
|
inputs.neovim-nightly-overlay.overlays.default
|
|
|
|
|
|
|
|
# Emacs unstable version!
|
|
|
|
inputs.emacs-overlay.overlays.default
|
|
|
|
|
2023-12-25 11:31:26 +00:00
|
|
|
# Helix master!
|
|
|
|
inputs.helix-editor.overlays.default
|
|
|
|
|
2023-12-23 12:30:14 +00:00
|
|
|
# Access to NUR.
|
|
|
|
inputs.nur.overlay
|
|
|
|
];
|
2023-12-25 12:03:22 +00:00
|
|
|
})
|
2023-12-23 12:30:14 +00:00
|
|
|
];
|
2023-12-23 12:26:40 +00:00
|
|
|
};
|
|
|
|
|
2023-12-25 12:01:47 +00:00
|
|
|
# A remote server.
|
2023-12-23 12:26:40 +00:00
|
|
|
plover = {
|
|
|
|
systems = [ "x86_64-linux" ];
|
2023-12-25 11:54:54 +00:00
|
|
|
format = null;
|
2023-12-23 12:26:40 +00:00
|
|
|
domain = "foodogsquared.one";
|
|
|
|
deploy = {
|
|
|
|
hostname = "plover.foodogsquared.one";
|
|
|
|
auto-rollback = true;
|
|
|
|
magic-rollback = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-12-25 12:01:47 +00:00
|
|
|
# TODO: Remove extra newlines that are here for whatever reason.
|
|
|
|
#{{{
|
2023-12-23 12:26:40 +00:00
|
|
|
void = {
|
|
|
|
systems = [ "x86_64-linux" ];
|
|
|
|
format = "vm";
|
|
|
|
};
|
2023-12-25 12:01:47 +00:00
|
|
|
#}}}
|
2023-12-23 12:26:40 +00:00
|
|
|
|
2023-12-25 12:01:47 +00:00
|
|
|
# The barely customized non-graphical installer.
|
2023-12-23 12:26:40 +00:00
|
|
|
bootstrap = {
|
|
|
|
systems = [ "aarch64-linux" "x86_64-linux" ];
|
|
|
|
format = "install-iso";
|
|
|
|
nixpkgs-channel = "nixos-unstable-small";
|
|
|
|
};
|
|
|
|
|
2023-12-25 12:01:47 +00:00
|
|
|
# The barely customized graphical installer.
|
2023-12-23 12:26:40 +00:00
|
|
|
graphical-installer = {
|
|
|
|
systems = [ "aarch64-linux" "x86_64-linux" ];
|
|
|
|
format = "install-iso";
|
|
|
|
};
|
|
|
|
|
2023-12-25 12:01:47 +00:00
|
|
|
# The WSL system (that is yet to be used).
|
2023-12-23 12:26:40 +00:00
|
|
|
winnowing = {
|
|
|
|
systems = [ "x86_64-linux" ];
|
2023-12-25 11:54:54 +00:00
|
|
|
format = null;
|
2023-12-23 12:30:14 +00:00
|
|
|
modules = [
|
2023-12-25 12:01:47 +00:00
|
|
|
# Well, well, well...
|
2023-12-23 12:30:14 +00:00
|
|
|
inputs.nixos-wsl.nixosModules.default
|
2024-01-10 07:41:57 +00:00
|
|
|
|
|
|
|
({ config, ... }: {
|
|
|
|
nixpkgs.overlays = [
|
|
|
|
# Make the most of it.
|
|
|
|
inputs.neovim-nightly-overlay.overlays.default
|
|
|
|
];
|
|
|
|
})
|
2023-12-23 12:30:14 +00:00
|
|
|
];
|
2023-12-23 12:26:40 +00:00
|
|
|
};
|
|
|
|
}
|
2023-12-25 12:01:47 +00:00
|
|
|
# vim:foldmethod=marker
|