forked from Fediversity/Fediversity
pass in description fix syntax configure proxmox provider typo add doc comment in existing modules add comment allow insecure proxmox connection for use in dev wip proxmox progress use service configurations moved to machine-independent location wire settings directly without option block terraform adjust cwd try tf on null input update .envrc.sample with sample proxmox credentials
76 lines
2.2 KiB
Nix
76 lines
2.2 KiB
Nix
{ lib, config, ... }:
|
|
|
|
let
|
|
inherit (lib) mkOption;
|
|
inherit (lib.types) types;
|
|
|
|
in
|
|
{
|
|
imports = [
|
|
./garage
|
|
./mastodon
|
|
./pixelfed
|
|
./peertube
|
|
];
|
|
|
|
options = {
|
|
fediversity = {
|
|
domain = mkOption {
|
|
type = types.str;
|
|
description = ''
|
|
root domain for the Fediversity services
|
|
|
|
For instance, if this option is set to `foo.example.com`, then
|
|
Pixelfed might be under `pixelfed.foo.example.com`.
|
|
'';
|
|
};
|
|
|
|
temp = mkOption {
|
|
description = "options that are only used while developing; should be removed eventually";
|
|
default = { };
|
|
type = types.submodule {
|
|
options = {
|
|
cores = mkOption {
|
|
description = "number of cores; should be obtained from TF";
|
|
type = types.int;
|
|
};
|
|
|
|
## NOTE: In practice, we will want to plug our services to a central
|
|
## authentication service, eg. LDAP. In the meantime, for the demo
|
|
## effect (and for testing, tbh), we need a way to inject an initial
|
|
## user into our services.
|
|
initialUser = {
|
|
username = mkOption {
|
|
type = types.str;
|
|
description = "Username of the initial user";
|
|
};
|
|
displayName = mkOption {
|
|
type = types.str;
|
|
description = "Name of the initial user, for humans";
|
|
default = config.fediversity.temp.initialUser.name;
|
|
};
|
|
email = mkOption {
|
|
type = types.str;
|
|
description = "Email of the initial user";
|
|
};
|
|
passwordFile = mkOption {
|
|
type = types.path;
|
|
description = "Path to a file containing the initial user's password";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
## FIXME: This should clearly go somewhere else; and we should have a
|
|
## `staging` vs. `production` setting somewhere.
|
|
security.acme = {
|
|
acceptTerms = true;
|
|
defaults.email = "nicolas.jeannerod+fediversity@moduscreate.com";
|
|
# defaults.server = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
|
};
|
|
};
|
|
}
|