1
0
Fork 0
dotfiles/container/matrix/default.nix

76 lines
1.9 KiB
Nix

{ config, lib, ... }:
{
virtualisation.oci-containers.containers = {
# https://gitlab.com/signald/signald
signald = {
image = "registry.gitlab.com/signald/signald:0.23.2";
environmentFiles = [ config.age.secrets.signald-environment.path ];
volumes = [
"/etc/container-matrix/signald:/signald"
];
};
# https://mau.dev/mautrix/signal
matrix-signal = {
image = "dock.mau.dev/mautrix/signal:v0.4.2";
dependsOn = [ "signald" ];
ports = [ "127.0.0.1:29328:29328" ];
volumes = [
"/etc/container-matrix/signal:/data"
"/etc/container-matrix/signald:/signald"
];
};
# https://mau.dev/mautrix/whatsapp
matrix-whatsapp = {
image = "dock.mau.dev/mautrix/whatsapp:v0.8.4";
ports = [ "127.0.0.1:29318:29318" ];
volumes = [
"/etc/container-matrix/whatsapp:/data"
];
};
};
systemd.services.podman-signald.serviceConfig = {
TimeoutStopSec = lib.mkForce 5;
};
systemd.services.podman-matrix-signal.serviceConfig = {
TimeoutStopSec = lib.mkForce 5;
};
systemd.services.podman-matrix-whatsapp.serviceConfig = {
TimeoutStopSec = lib.mkForce 5;
};
networking.firewall.interfaces."podman+" = {
allowedUDPPorts = [ 443 ];
allowedTCPPorts = [ 443 ];
};
systemd.tmpfiles.rules = [
"d /etc/container-matrix/signald 0775 0 0"
"d /etc/container-matrix/signal 0775 1337 1337"
"d /etc/container-matrix/whatsapp 0775 1337 1337"
];
# Matrix: Signal
environment.etc."container-matrix/signal/config.yaml" = {
source = ../../secret/container/matrix/config/signal.yaml;
mode = "0640";
uid = 1337;
gid = 1337;
};
# Matrix: WhatsApp
environment.etc."container-matrix/whatsapp/config.yaml" = {
source = ../../secret/container/matrix/config/whatsapp.yaml;
mode = "0640";
uid = 1337;
gid = 1337;
};
}