diff --git a/modules/server/containers/apps/drawio.nix b/modules/server/containers/apps/drawio.nix new file mode 100644 index 0000000..12be21b --- /dev/null +++ b/modules/server/containers/apps/drawio.nix @@ -0,0 +1,55 @@ +{ config, containerCfg, pkgs, lib, builder, name, ... }: +let + version = "latest"; + serverCfg = config.syscfg.server; +in +{ + runtime = { + paths = [ + { + path = "${serverCfg.path.data.path}/drawio/"; + owner = "root:root"; + mode = "0777"; + } + ]; + + containers = { + server = builder.mkContainer { + subdomain = containerCfg.subdomain; + image = "jgraph/drawio:${version}"; + port = 8080; + extraEnv = { + VIRTUAL_HOST = "${containerCfg.subdomain}.${serverCfg.domain}"; + VIRTUAL_PORT = "8080"; + LETS_ENCRYPT_ENABLED = "false"; + DRAWIO_SERVER_URL = "https://${containerCfg.subdomain}.${serverCfg.domain}"; + DRAWIO_SELF_CONTAINED = "1"; + EXPORT_URL = "http://drawio-exporter:8000/"; + DRAWIO_CONFIG = '' + { + "defaultFonts": [ + "Helvetica", "Arial", "Verdana", + "IBM Plex Mono", + "IBM Plex Sans", + "Noto Sans", + "Latin Modern Math" + ] + } + ''; + }; + overrides = { + ports = ["8080:8080"]; + }; + }; + exporter = builder.mkContainer { + image = "jgraph/export-server:${version}"; + extraEnv = { + DRAWIO_SERVER_URL = "https://${containerCfg.subdomain}.${serverCfg.domain}"; + }; + overrides = { + volumes = ["/run/current-system/sw/share/X11/fonts:/usr/share/fonts/drawio:ro" "/nix/store:/nix/store:ro"]; + }; + }; + }; + }; +}