From 1e9efb408119dcf8211c3ea8e1a7ca0a44d53856 Mon Sep 17 00:00:00 2001 From: Tigor Hutasuhut Date: Fri, 9 Aug 2024 22:10:25 +0700 Subject: [PATCH] podman: added podman morphos service --- options/podman.nix | 1 + profiles/homeserver.nix | 1 + system/podman/default.nix | 1 + system/podman/morphos.nix | 40 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 system/podman/morphos.nix diff --git a/options/podman.nix b/options/podman.nix index 6d818d3..e55b9b5 100644 --- a/options/podman.nix +++ b/options/podman.nix @@ -15,6 +15,7 @@ in openobserve.enable = lib.mkEnableOption "openobserve podman"; minecraft.enable = mkEnableOption "minecraft server podman"; memos.enable = mkEnableOption "memos podman"; + morphos.enable = mkEnableOption "morphos podman"; servarr = { enable = mkEnableOption "servarr group"; diff --git a/profiles/homeserver.nix b/profiles/homeserver.nix index 4e69aba..5722640 100644 --- a/profiles/homeserver.nix +++ b/profiles/homeserver.nix @@ -39,6 +39,7 @@ openobserve.enable = true; minecraft.enable = true; memos.enable = true; + morphos.enable = true; }; docker = { diff --git a/system/podman/default.nix b/system/podman/default.nix index e3d81fd..1175063 100644 --- a/system/podman/default.nix +++ b/system/podman/default.nix @@ -43,6 +43,7 @@ in imports = [ ./memos.nix ./minecraft.nix + ./morphos.nix ./openobserve.nix ./pihole.nix ./qbittorrent.nix diff --git a/system/podman/morphos.nix b/system/podman/morphos.nix new file mode 100644 index 0000000..e0bb9c6 --- /dev/null +++ b/system/podman/morphos.nix @@ -0,0 +1,40 @@ +{ config, lib, ... }: +let + name = "morphos"; + podman = config.profile.podman; + inherit (lib) mkIf; + ip = "10.88.88.2"; + image = "ghcr.io/danvergara/morphos-server:latest"; + domain = "${name}.tigor.web.id"; + user = config.profile.user; + uid = toString user.uid; + gid = toString user.gid; +in +{ + config = mkIf (podman.enable && podman.${name}.enable) { + services.caddy.virtualHosts.${domain}.extraConfig = '' + reverse_proxy ${ip}:8080 + ''; + + virtualisation.oci-containers.containers.${name} = { + inherit image; + hostname = name; + autoStart = true; + user = "${uid}:${gid}"; + environment = { + TZ = "Asia/Jakarta"; + }; + volumes = [ + "/tmp:/tmp" + ]; + extraOptions = [ + "--network=podman" + "--ip=${ip}" + ]; + labels = { + "io.containers.autoupdate" = "registry"; + }; + }; + }; + +}