{ me, pkgs, ... }: let inherit (pkgs) dockerTools soju; ircPort = "6667"; socketPort = "3030"; sojuDir = "/srv/soju"; # TODO: move this outside. baseImage = dockerTools.pullImage { imageName = "alpine"; imageDigest = "sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d"; sha256 = "0fzqhqvvb0pzkwvjwyqjfv3rw2w8006xz4mhk0dk5clmyb08hqwc"; finalImageName = "alpine"; finalImageTag = "3.20.3"; }; sojuImage = dockerTools.buildLayeredImage { name = soju.pname; tag = soju.version; fromImage = baseImage; 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" ]; }; }; }