refactor
This commit is contained in:
@@ -1,62 +1,52 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.modules.services.gotosocial;
|
||||
cfg = config.services.gotosocial;
|
||||
secrets = config.age.secrets;
|
||||
domain = config.networking.domain;
|
||||
fqdn = "${cfg.subdomain}.${domain}";
|
||||
port = cfg.port;
|
||||
port = cfg.settings.port;
|
||||
in
|
||||
{
|
||||
options.modules.services.gotosocial = {
|
||||
enable = lib.mkEnableOption "Enable Gotosocial";
|
||||
options.services.gotosocial = {
|
||||
subdomain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 3500;
|
||||
};
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.gotosocial = {
|
||||
enable = true;
|
||||
environmentFile = secrets.gotosocial.path;
|
||||
settings = {
|
||||
host = fqdn;
|
||||
account-domain = domain;
|
||||
protocol = "https";
|
||||
bind-address = "localhost";
|
||||
instance-languages = [ "de" "fi" "en" ];
|
||||
instance-inject-mastodon-version = true;
|
||||
accounts-registration-open = true;
|
||||
instance-expose-public-timeline = true;
|
||||
letsencrypt-enabled = false;
|
||||
inherit port;
|
||||
} // cfg.settings;
|
||||
setupPostgresqlDB = true;
|
||||
};
|
||||
services = {
|
||||
gotosocial = {
|
||||
environmentFile = secrets.gotosocial.path;
|
||||
settings = {
|
||||
host = fqdn;
|
||||
account-domain = domain;
|
||||
protocol = "https";
|
||||
bind-address = "localhost";
|
||||
instance-inject-mastodon-version = true;
|
||||
accounts-registration-open = true;
|
||||
instance-expose-public-timeline = true;
|
||||
letsencrypt-enabled = false;
|
||||
};
|
||||
setupPostgresqlDB = true;
|
||||
};
|
||||
|
||||
modules.services.webserver.vHosts = {
|
||||
${domain}.locations = lib.listToAttrs (
|
||||
lib.map
|
||||
(path: {
|
||||
name = "/.well-known/${path}";
|
||||
value.extraConfig = ''
|
||||
rewrite ^.*$ https://${fqdn}/.well-known/${path} permanent;
|
||||
'';
|
||||
}) [
|
||||
"host-meta"
|
||||
"webfinger"
|
||||
"nodeinfo"
|
||||
]
|
||||
);
|
||||
webserver.vHosts = {
|
||||
${domain}.locations = lib.listToAttrs (
|
||||
lib.map
|
||||
(path: {
|
||||
name = "/.well-known/${path}";
|
||||
value.extraConfig = ''
|
||||
rewrite ^.*$ https://${fqdn}/.well-known/${path} permanent;
|
||||
'';
|
||||
}) [
|
||||
"host-meta"
|
||||
"webfinger"
|
||||
"nodeinfo"
|
||||
]
|
||||
);
|
||||
|
||||
"${fqdn}".locations."/".proxyPort = port;
|
||||
"${fqdn}".locations."/".proxyPort = port;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user