summaryrefslogtreecommitdiffstats
path: root/krebs/2configs/mastodon.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2022-12-06 01:33:28 +0100
committertv <tv@krebsco.de>2022-12-06 01:33:28 +0100
commit2f17a36ab546bc1271649ce03504a6d4db0738e9 (patch)
tree973b884a257bd336db954a709996e2fe3ca24503 /krebs/2configs/mastodon.nix
parent426d6e2e5cdbe52cf776400cec85036f4cb86b79 (diff)
parent645c3564f75589531abcf17fd3c3f920d93a394a (diff)
Merge remote-tracking branch 'prism/master'
Diffstat (limited to 'krebs/2configs/mastodon.nix')
-rw-r--r--krebs/2configs/mastodon.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/krebs/2configs/mastodon.nix b/krebs/2configs/mastodon.nix
new file mode 100644
index 000000000..d0c1943cc
--- /dev/null
+++ b/krebs/2configs/mastodon.nix
@@ -0,0 +1,40 @@
+{ config, lib, pkgs, ... }:
+{
+ services.postgresql = {
+ enable = true;
+ dataDir = "/var/state/postgresql/${config.services.postgresql.package.psqlSchema}";
+ package = pkgs.postgresql_11;
+ };
+ systemd.tmpfiles.rules = [
+ "d /var/state/postgresql 0700 postgres postgres -"
+ ];
+
+ services.mastodon = {
+ enable = true;
+ localDomain = "social.krebsco.de";
+ configureNginx = true;
+ trustedProxy = config.krebs.hosts.prism.nets.retiolum.ip6.addr;
+ smtp.createLocally = false;
+ smtp.fromAddress = "mastodon@social.krebsco.de";
+ };
+
+ services.nginx.virtualHosts.${config.services.mastodon.localDomain} = {
+ forceSSL = lib.mkForce false;
+ enableACME = lib.mkForce false;
+ locations."@proxy".extraConfig = ''
+ proxy_redirect off;
+ proxy_pass_header Server;
+ proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
+ '';
+ };
+
+ networking.firewall.allowedTCPPorts = [
+ 80
+ ];
+
+ environment.systemPackages = [
+ (pkgs.writers.writeDashBin "tootctl" ''
+ sudo -u mastodon /etc/profiles/per-user/mastodon/bin/mastodon-env /etc/profiles/per-user/mastodon/bin/tootctl "$@"
+ '')
+ ];
+}