summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2023-04-24 15:09:41 -0400
committerBen Sima <ben@bsima.me>2023-04-28 08:05:28 -0400
commite78c58ef9d2d89dea91c40251dd93404d182e8fd (patch)
treed42c2d62090d3d5bdd1bf45f375535cc7d4c1876
parent0b0a47029239cfa37635aa502d78f94481c8dda8 (diff)
Setup meshhub for fun
-rw-r--r--Biz/Cloud.nix1
-rw-r--r--Biz/Cloud/Hub.nix57
-rw-r--r--Biz/Cloud/Ports.nix1
3 files changed, 59 insertions, 0 deletions
diff --git a/Biz/Cloud.nix b/Biz/Cloud.nix
index d7cb8cb..331331b 100644
--- a/Biz/Cloud.nix
+++ b/Biz/Cloud.nix
@@ -11,6 +11,7 @@ bild.os {
./Cloud/Git.nix
./Cloud/Cgit.nix
./Cloud/Hardware.nix
+ ./Cloud/Hub.nix
./Cloud/Mail.nix
./Cloud/Mumble.nix
./Cloud/Networking.nix
diff --git a/Biz/Cloud/Hub.nix b/Biz/Cloud/Hub.nix
new file mode 100644
index 0000000..bc346a8
--- /dev/null
+++ b/Biz/Cloud/Hub.nix
@@ -0,0 +1,57 @@
+{ lib, pkgs, config, ... }:
+
+let
+ ssl = {
+ cert = "/var/lib/acme/${config.networking.domain}/fullchain.pem";
+ key = "/var/lib/acme/${config.networking.domain}/key.pem";
+ };
+ ports = import ./Ports.nix;
+ mkPlugin = path: settings: {
+ plugin = "${pkgs.uhub}/plugins/${path}";
+ inherit settings;
+ };
+ motdFile = pkgs.writeText "motd" ''
+ Meshheads write code.
+ '';
+ rulesFile = pkgs.writeText "rules" ''
+ 1. x
+ 2. (λx.M)
+ 3. (M N)
+ 4. Profit.
+ '';
+in {
+ networking.firewall.allowedUDPPorts = [ ports.meshhub ];
+ networking.firewall.allowedTCPPorts = [ ports.meshhub ];
+
+ services.uhub = {
+ "meshhub" = {
+ enable = true;
+ enableTLS = false;
+ settings = {
+ hub_name = "meshhub";
+ hub_description = "vaporware is dead. long live vaporware";
+ server_port = toString ports.meshhub;
+ server_bind_addr = "any";
+ max_users = 14; # we only have 14 users in meshheads chat
+ tls_private_key = ssl.key;
+ tls_certificate = ssl.cert;
+ tls_enable = "no";
+ tls_require = "no";
+ };
+ plugins = lib.attrsets.mapAttrsToList mkPlugin {
+ #"mod_logging.so" = {
+ # file = "/var/log/uhub/meshhub.log";
+ #};
+ "mod_welcome.so" = {
+ motd = "${motdFile}";
+ rules = "${rulesFile}";
+ };
+ "mod_chat_history.so" = {
+ history_max = "200";
+ history_default = "10";
+ history_connect = "5";
+ };
+ };
+ };
+ };
+}
diff --git a/Biz/Cloud/Ports.nix b/Biz/Cloud/Ports.nix
index e698e86..2e53006 100644
--- a/Biz/Cloud/Ports.nix
+++ b/Biz/Cloud/Ports.nix
@@ -21,6 +21,7 @@
jupyter = 4000;
k3s = 6443;
libreddit = 8085;
+ meshhub = 1511;
mpd = 6600;
mpd-stream = 8097;
murmur = 64738;