···11+let
22+ domain = "maze.lassul.us";
33+ port = 8772;
44+in
55+{ self, ... }:
66+{
77+ # mazegame: Windows 95 "Maze" screensaver you can play in a browser tab. The
88+ # exit is the NixOS snowflake. /watch is a spectator camera that follows a
99+ # random player and cuts to the next one after 2s without movement.
1010+ imports = [ self.inputs.mazegame.nixosModules.default ];
1111+1212+ services.mazegame = {
1313+ enable = true;
1414+ host = "127.0.0.1";
1515+ port = port;
1616+ };
1717+1818+ services.nginx.virtualHosts.${domain} = {
1919+ enableACME = true;
2020+ forceSSL = true;
2121+ # Player and watcher sockets stay open for as long as someone is in the
2222+ # maze; players heartbeat every 3s, watchers every 3s, so the default
2323+ # 60s read timeout would only bite on a wedged client, but a long window
2424+ # keeps idle spectators connected.
2525+ locations."/" = {
2626+ proxyPass = "http://127.0.0.1:${toString port}";
2727+ proxyWebsockets = true;
2828+ extraConfig = ''
2929+ proxy_read_timeout 1h;
3030+ proxy_send_timeout 1h;
3131+ '';
3232+ };
3333+ };
3434+}
···11-@ 3600 IN SOA lassul.us. ns1.lassul.us. 2026090800 7200 3600 86400 3600
11+@ 3600 IN SOA lassul.us. ns1.lassul.us. 2026092000 7200 3600 86400 3600
2233;;@ 3600 IN NS ns1
44@ 3600 IN NS ns1
···5858id IN CNAME neoprism
5959covibe IN CNAME neoprism
6060omni IN CNAME neoprism
6161+maze IN CNAME neoprism
6162where.is IN CNAME neoprism
62636364;; Mail