{ config, pkgs, ... }: {
  services.mastodon = {
    enable = true;

    package = pkgs.agatha-mastodon;

    localDomain = "technogothic.net";
    configureNginx = false;
    smtp.fromAddress = "noreply@technogothic.net";
    smtp.createLocally = false;
    database.passwordFile = "/var/lib/mastodon/secrets/db-password";
    elasticsearch = {
      host = "127.0.0.1";
      inherit (config.services.elasticsearch) port;
    };
    extraConfig = {
      WEB_DOMAIN = "fv.technogothic.net";
      GITHUB_REPOSITORY = "AgathaSorceress/mastodon";
      AUTHORIZED_FETCH = "true";
      MAX_TOOT_CHARS = "6666";
      MAX_POLL_OPTIONS = "128";
      MAX_POLL_OPTION_CHARS = "512";
      EXTRA_DATA_HOSTS = "https://ftp.technogothic.net";
      MASTODON_VERSION_SUFFIX = "+AGATHA+AGATHA";
    };
  };

  users.groups.mastodon.members = [ config.services.nginx.user ];

  services.elasticsearch = {
    enable = true;
    cluster_name = "mastodon-es";
    package = pkgs.elasticsearch7;
  };
}
