diff options
| author | Mel <einebeere@gmail.com> | 2024-11-20 05:10:11 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2024-11-20 05:10:41 +0100 |
| commit | 459c61b01f379c08dfe54b09f9ecf15489195373 (patch) | |
| tree | 1678c7a9f0c7890525618f7c08c677f226bb694b /services/irc | |
| parent | 658cbe8f560cfc5f6f89440cdcc16c2015057b88 (diff) | |
| download | network-459c61b01f379c08dfe54b09f9ecf15489195373.tar.zst network-459c61b01f379c08dfe54b09f9ecf15489195373.zip | |
Add favicon to gamja site
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'services/irc')
| -rw-r--r-- | services/irc/default.nix | 8 | ||||
| -rw-r--r-- | services/irc/gamja.nix | 45 | ||||
| -rw-r--r-- | services/irc/soju.nix | 44 |
3 files changed, 97 insertions, 0 deletions
diff --git a/services/irc/default.nix b/services/irc/default.nix new file mode 100644 index 0000000..837068a --- /dev/null +++ b/services/irc/default.nix @@ -0,0 +1,8 @@ +{ ... }: + +{ + imports = [ + ./gamja.nix + ./soju.nix + ]; +} diff --git a/services/irc/gamja.nix b/services/irc/gamja.nix new file mode 100644 index 0000000..779b5b2 --- /dev/null +++ b/services/irc/gamja.nix @@ -0,0 +1,45 @@ +{ me, pkgs, ... }: + +let + socketPort = "3030"; + + gamja = + let + gamjaConfig = { + server = { + url = "wss://${me.tailscale.domain}/gamja/socket"; + auth = "mandatory"; + nick = "mel"; + }; + }; + + faviconHtml = ''<link rel="shortcut icon" href="/gamja/favicon.png">''; + gamja-override = pkgs.gamja.overrideAttrs { + pname = "gamja-override"; + + fixupPhase = '' + sed -i 's:</head>:${faviconHtml}</head>:g' $out/index.html + cp ${../../assets/favicon.png} $out/favicon.png + ''; + }; + in + gamja-override.override { inherit gamjaConfig; }; + +in +{ + # gamja is tailnet interal + services.nginx.virtualHosts.renard.locations = { + "/gamja" = { + return = "301 $scheme://$host$request_uri/"; + }; + "/gamja/" = { + alias = "${gamja}/"; + }; + + "/gamja/socket" = { + proxyPass = "http://${me.tailscale.ip}:${socketPort}"; + proxyWebsockets = true; + recommendedProxySettings = true; + }; + }; +} diff --git a/services/irc/soju.nix b/services/irc/soju.nix new file mode 100644 index 0000000..75adfaa --- /dev/null +++ b/services/irc/soju.nix @@ -0,0 +1,44 @@ +{ me, pkgs, auxiliaryPkgs, ... }: + +let + inherit (pkgs) dockerTools soju; + inherit (auxiliaryPkgs) common; + + ircPort = "6667"; + socketPort = "3030"; + sojuDir = "/srv/soju"; + + sojuImage = dockerTools.buildLayeredImage { + name = soju.pname; + tag = soju.version; + fromImage = common.alpine.base; + + contents = [ soju ]; + + extraCommands = '' + mkdir -p ./run/soju + ''; + }; + +in +{ + virtualisation.oci-containers.containers = { + soju = { + imageFile = sojuImage; + image = "soju:${soju.version}"; + ports = [ + "${me.tailscale.ip}:${ircPort}:${ircPort}" + "${me.tailscale.ip}:${socketPort}:${socketPort}" + ]; + + volumes = [ + "${sojuDir}/config.in:/etc/soju/config.in" + "${sojuDir}/soju.db:/var/lib/soju/soju.db" + "${sojuDir}/logs:/var/lib/soju/logs" + ]; + + entrypoint = "${soju}/bin/soju"; + cmd = [ "-config" "/etc/soju/config.in" ]; + }; + }; +} |
