102 lines
3.5 KiB
Nix
102 lines
3.5 KiB
Nix
{
|
|
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 = "";
|
|
};
|
|
};
|
|
}
|
|
)
|
|
];
|
|
}
|