{ aspartame.modules = [ ( { pkgs, config, ... }: { services.gotosocial = { enable = true; package = pkgs.gts; setupPostgresqlDB = false; environmentFile = "${config.sops.templates."gts.env.secrets.yaml".path}"; settings = { # # most of these are the defaults but i'm writing them here anyways ### General config log-level = "info"; log-db-queries = "false"; log-client-ip = "true"; log-timestamp-format = "2006-01-02T15:04:05.000Z07:00"; application-name = "RunFromSocial"; landing-page-user = "root"; host = "gts.collective-conciousness.monster"; account-domain = ""; protocol = "https"; bind-address = "127.0.0.1"; port = 8080; trusted-proxies = [ "127.0.0.1/32" "::1" ]; ### Database config - still have to set this up. db-type = "postgres"; db-address = "10.24.1.9"; db-port = "5432"; # db-password = ""; # commented out because it is being passed through env files. # GTS_DB_PASSWORD db-database = "gtsdb"; db-user = "gts"; db-tls-mode = "disable"; # will probably want to change this at some point ? db-tls-ca-cert = ""; db-max-open-conns-multiplier = 8; db-postgres-connection-string = ""; cache.memory-target = "500MiB"; ### Web config # web-template-base-dir = "/var/gts/web/template/"; # web-asset-base-dir = "/var/gts/web/assets/"; ### Instance config instance-languages = [ "en" "fr" "ro" "zh" ]; instance-federation-mode = "allowlist"; instance-federation-spam-filter = false; instance-expose-peers = false; instance-expose-suspended = false; instance-expose-suspended-web = false; instance-expose-public-timeline = false; instance-deliver-to-shared-inboxes = true; instance-inject-mastodon-version = false; ### Accounts config accounts-registration-open = false; accounts-reason-required = true; accounts-allow-custom-css = true; accounts-custom-css-length = 10000; ### Media config media-local-max-size = "1GiB"; media-remote-max-size = "50MiB"; media-description-min-chars = 36; media-description-max-chars = 16200; media-emoji-local-max-size = "128KiB"; # may need to increase this in the future. media-emoji-remote-max-size = "256KiB"; media-ffmpeg-pool-size = 2; media-remote-cache-days = 7; media-cleanup-from = "01:00"; media-cleanup-every = "24h"; ### Storage config storage-backend = "local"; storage-local-base-path = "/var/gts/storage"; # ommited settings related to s3 ### Statuses config statuses-max-chars = 8000; statuses-poll-max-options = 10; statuses-poll-option-max-chars = 100; statuses-media-max-files = 12; ### Syslog config syslog-enabled = true; syslog-protocol = ""; syslog-address = ""; }; }; } ) ]; }