{ self, ... }: { lib, config, pkgs, ... }: with lib; let ports = { acme = 1360; nginx = 8080; synapse = 8008; syncv3 = 8009; unbound = 8484; }; security-txt = pkgs.writeText "security.txt" '' -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Canonical: https://solitary.social/.well-known/security.txt Contact: mailto:mvs@nya.yt Encryption: openpgp4fpr:950623eb2f52402e0cf56ccbee49e25700058dd6 Preferred-Languages: en, de -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRbjUmg6ccaTk940M7ZkbGDPEZ7AwUCYz2XrwAKCRDZkbGDPEZ7 A4w5AQD3Mzb5Bi8CERe3j3NjQhgeEkMVBcfM3RumuWdjs6i+LgD9HHuY3Bp6ljtR LnLJRZt4Q8CYKoPaYkSO0vBaYKmUnwY= =iQpI -----END PGP SIGNATURE----- ''; in { imports = with self.nixosModules; [ default headless acme-ocsp ]; boot.loader.grub = { enable = true; device = "/dev/vda"; }; boot.kernelPackages = let inherit (self.packages.x86_64-linux) linux-hardened; in pkgs.linuxPackagesFor (linux-hardened.override { instSetArch = "x86-64-v3"; extraConfig = linux-hardened.profile.paravirt; }); environment.etc."machine-id".text = "1c97ae368741530de77aad42b5a6ae42"; ephemeral.device = "UUID=07a91cc3-4dd4-48e6-81d7-eb5d31fcf720"; ephemeral.boot.device = "UUID=24c72e0c-b467-4def-a641-ae09100465f0"; ephemeral.boot.fsType = "ext4"; i18n.supportedLocales = [ "C.UTF-8/UTF-8" "en_EU.UTF-8/UTF-8" "en_GB.UTF-8/UTF-8" ]; networking = { hostName = "solitary"; domain = "social"; firewall.allowedTCPPorts = [ 22 80 443 853 ]; firewall.allowedUDPPorts = [ 443 ]; }; security.acme = { certs.${config.networking.fqdn} = { email = "mvs@nya.yt"; listenHTTP = "127.0.0.1:${toString ports.acme}"; reloadServices = [ "haproxy.service" "unbound.service" ]; extraDomainNames = [ "cache.solitary.social" "matrix.solitary.social" "media.solitary.social" "resolve.solitary.social" "syncv3.solitary.social" ]; }; }; services.akkoma.enable = true; services.akkoma.extraStatic."emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg; services.akkoma.extraStatic."static/terms-of-service.html" = pkgs.writeText "terms-of-service.html" ''
This is currently a single‐user instance and therefore I decided to formulate what would be Terms of Service for a multi‐user user instance as commitments. These are still incomplete and subject to expansion in the future.