nix-infra/hosts/ocelot/gotosocial.nix
2024-04-20 13:26:44 +02:00

62 lines
1.5 KiB
Nix

{ ... }:
let
bind-address = "127.0.0.1";
host = "cherrykitten.gay";
port = 8553;
in
{
deployment.keys."gts_env" = {
destDir = "/root/keys/";
keyCommand = [ "pass" "hosts/ocelot/gts/env" ];
user = "gotosocial";
};
services.gotosocial = {
enable = true;
setupPostgresqlDB = true;
environmentFile = "/root/keys/gts_env";
settings = {
inherit bind-address host port;
application-name = "CherryKitten";
landing-page-user = "sammy";
instance-expose-suspended = true;
instance-expose-suspended-web = true;
accounts-registration-open = false;
media-image-max-size = 41943040;
media-video-max-size = 83886080;
media-description-max-chars = 3000;
media-remote-cache-days = 14;
media-emoji-local-max-size = 204800;
media-emoji-remote-max-size = 204800;
statuses-max-chars = 69420;
statuses-cw-max-chars = 200;
statuses-poll-max-options = 10;
statuses-poll-option-max-chars = 150;
statuses-media-max-files = 16;
storage-backend = "s3";
};
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
services.nginx = {
enable = true;
clientMaxBodySize = "80M";
virtualHosts = {
"${host}" = {
forceSSL = true;
enableACME = true;
locations = {
"/" = {
recommendedProxySettings = true;
proxyWebsockets = true;
proxyPass = "http://${bind-address}:${toString port}";
};
};
};
};
};
}