nix-config/hosts/franz/arion/signal/arion-compose.nix
2024-12-09 12:56:37 +01:00

53 lines
1.8 KiB
Nix

{pkgs, ...}: {
project.name = "signal";
networks.dmz = {
name = "dmz";
external = true;
};
services = {
mollysocket.service = {
image = "ghcr.io/mollyim/mollysocket:1.5.4";
container_name = "mollysocket";
useHostStore = true;
ports = [
"8020:8020"
];
command = "server";
working_dir = "/data";
labels = {
"traefik.enable" = "true";
"traefik.http.routers.mollysocket.rule" = "Host(`signal.ghoscht.com`)";
"traefik.http.routers.mollysocket.service" = "mollysocket";
"traefik.http.routers.mollysocket.entrypoints" = "websecure";
"traefik.http.services.mollysocket.loadbalancer.server.port" = "8020";
"traefik.http.routers.mollysocket.tls" = "true";
"traefik.http.routers.mollysocket.tls.certresolver" = "letsencrypt";
"traefik.http.services.mollysocket-external.loadbalancer.server.port" = "8020";
"traefik.http.routers.mollysocket-external.service" = "mollysocket-external";
"traefik.http.routers.mollysocket-external.rule" = "Host(`signal.ghoscht.com`)";
"traefik.http.routers.mollysocket-external.entrypoints" = "websecure-external";
"traefik.http.routers.mollysocket-external.tls" = "true";
"traefik.http.routers.mollysocket-external.tls.certresolver" = "letsencrypt";
};
environment = {
MOLLY_DB = "/data/mollysocket.db";
MOLLY_ALLOWED_ENDPOINTS = "[\"https://push.ghoscht.com\",\"*\"]";
MOLLY_ALLOWED_UUIDS = "[\"*\"]";
MOLLY_HOST = "0.0.0.0";
MOLLY_PORT = 8020;
RUST_LOG = "info";
};
env_file = [
"/home/ghoscht/.docker/signal/mollysocket.env"
];
restart = "always";
networks = [
"dmz"
];
};
};
}