forked from Fediversity/Fediversity
66 lines
1.7 KiB
Nix
66 lines
1.7 KiB
Nix
{
|
|
config,
|
|
inputs ? (import ../../../default.nix { }).inputs,
|
|
sources ? import ../../../npins,
|
|
...
|
|
}:
|
|
|
|
let
|
|
inherit (sources) nixpkgs;
|
|
lib = import "${nixpkgs}/lib";
|
|
eval =
|
|
module:
|
|
(lib.evalModules {
|
|
specialArgs = {
|
|
inherit inputs;
|
|
};
|
|
modules = [
|
|
module
|
|
../../data-model.nix
|
|
];
|
|
}).config;
|
|
fediversity = eval (
|
|
{ ... }:
|
|
{
|
|
config = {
|
|
environments.single-nixos-vm =
|
|
{ ... }:
|
|
{
|
|
implementation = requests: {
|
|
input = requests;
|
|
output.ssh-host = {
|
|
ssh = {
|
|
host = "localhost";
|
|
username = "root";
|
|
key-file = null;
|
|
};
|
|
nixos-configuration =
|
|
{ pkgs, ... }:
|
|
{
|
|
imports = [
|
|
../common/sharedOptions.nix
|
|
../common/targetNode.nix
|
|
"${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
|
|
];
|
|
|
|
inherit (config) enableAcme;
|
|
acmeNodeIP = if config.enableAcme then config.nodes.acme.networking.primaryIPAddress else null;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
hello
|
|
];
|
|
|
|
users.users = config.resources.shell.login-shell.apply (
|
|
lib.filterAttrs (_name: value: value ? login-shell) requests
|
|
);
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|
|
);
|
|
in
|
|
fediversity.environments.single-nixos-vm.deployment {
|
|
enable = true;
|
|
}
|