This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

neoprism: host parley on parley.lassul.us

+54 -2
+34
2configs/parley.nix
··· 1 + let 2 + domain = "parley.lassul.us"; 3 + in 4 + { 5 + # parley: federated chat that speaks plain IRC. Identities are 6 + # nick@lassul.us; peers find this instance via the _parley._tcp.lassul.us 7 + # SRV record (2configs/dns/lassul.us.zone). 8 + lass.parley = { 9 + enable = true; 10 + settings = { 11 + PARLEY_DOMAIN = "lassul.us"; 12 + PARLEY_ENDPOINT = "https://${domain}"; 13 + }; 14 + users.lassulus.role = "admin"; 15 + }; 16 + 17 + services.nginx.virtualHosts.${domain} = { 18 + enableACME = true; 19 + forceSSL = true; 20 + locations."/".proxyPass = "http://127.0.0.1:8443"; 21 + }; 22 + 23 + # IRC over TLS (parleyd advertises 6697 by default) 24 + services.nginx.streamConfig = '' 25 + server { 26 + listen 6697 ssl; 27 + listen [::]:6697 ssl; 28 + ssl_certificate /var/lib/acme/${domain}/fullchain.pem; 29 + ssl_certificate_key /var/lib/acme/${domain}/key.pem; 30 + proxy_pass 127.0.0.1:6667; 31 + } 32 + ''; 33 + networking.firewall.allowedTCPPorts = [ 6697 ]; 34 + }
+5 -1
2configs/dns/lassul.us.zone
··· 1 - @ 3600 IN SOA lassul.us. ns1.lassul.us. 2026092000 7200 3600 86400 3600 1 + @ 3600 IN SOA lassul.us. ns1.lassul.us. 2026092800 7200 3600 86400 3600 2 2 3 3 ;;@ 3600 IN NS ns1 4 4 @ 3600 IN NS ns1 ··· 60 60 omni IN CNAME neoprism 61 61 maze IN CNAME neoprism 62 62 where.is IN CNAME neoprism 63 + parley IN CNAME neoprism 63 64 64 65 ;; Mail 65 66 @ IN MX 3 mail ··· 79 80 ;; Autodiscovery (RFC 6186) 80 81 _imaps._tcp IN SRV 5 0 993 mail.lassul.us. 81 82 _submissions._tcp IN SRV 5 0 465 mail.lassul.us. 83 + 84 + ;; parley instance discovery for nick@lassul.us 85 + _parley._tcp IN SRV 0 0 443 parley.lassul.us. 82 86 83 87 @ IN CAA 0 issue "letsencrypt.org" 84 88 @ IN CAA 0 iodef "mailto:caa@lassul.us"
+12
machines/neoprism/backup.nix
··· 20 20 systemd.tmpfiles.rules = [ 21 21 "d /var/backup 0700 root root -" 22 22 "d /var/backup/postgresql 0700 root root -" 23 + "d /var/backup/parley 0700 root root -" 23 24 ]; 24 25 25 26 services.borgbackup.jobs.hetzner = { ··· 36 37 "/var/dkim" 37 38 "/var/sieve" 38 39 "/var/lib/heisenbridge" 40 + # identity.key also lives in clan vars; the SQLite databases are 41 + # dumped consistently to /var/backup/parley by the preHook. 42 + "/var/lib/parley" 39 43 ]; 40 44 exclude = [ 41 45 "*.pyc" ··· 43 47 "/home/bot/.nix-defexpr" 44 48 "/home/bot/.nix-profile" 45 49 "/var/lib/kannix/.cache" 50 + "/var/lib/parley/*.db*" 46 51 ]; 47 52 repo = "u550643@u550643.your-storagebox.de:/./neoprism"; 48 53 encryption.mode = "none"; ··· 61 66 readWritePaths = [ 62 67 "/var/backup" 63 68 "/var/lib/hedgedoc" 69 + # WAL-mode SQLite readers need to write the -shm file 70 + "/var/lib/parley" 64 71 ]; 65 72 66 73 preHook = '' ··· 78 85 79 86 # Dump hedgedoc SQLite database (172MB) safely 80 87 ${pkgs.sqlite}/bin/sqlite3 /var/lib/hedgedoc/db.sqlite ".backup /var/backup/hedgedoc.sqlite" 88 + 89 + # Dump parley accounts + history SQLite databases safely 90 + for db in parley history; do 91 + ${pkgs.sqlite}/bin/sqlite3 "/var/lib/parley/$db.db" ".backup /var/backup/parley/$db.db" 92 + done 81 93 ''; 82 94 83 95 postHook = ''
+3
machines/neoprism/config.nix
··· 140 140 # sigexec.lassul.us) 141 141 ../../2configs/sigexec/executor.nix 142 142 ../../2configs/sigexec/dashboard.nix 143 + 144 + # parley federated IRC-speaking chat (parley.lassul.us) 145 + ../../2configs/parley.nix 143 146 ]; 144 147 145 148 # lassul.us shouldn't be the default vhost here (nginx.nix already sets one)
-1
vars/per-machine/neoprism/parley/identity.pub/value
··· 1 - KxoeOQrtX51CQMSB6A6hk0HugLoYueixigJqjeP89uk=