From 3263d72b59e15581747abce4758483993d10406c Mon Sep 17 00:00:00 2001 From: imxyy_soope_ Date: Tue, 22 Jul 2025 12:55:23 +0800 Subject: [PATCH] feat(server): memos --- config/hosts/imxyy-nix-server/code.nix | 34 +++++------ config/hosts/imxyy-nix-server/homepage.nix | 16 ++--- config/hosts/imxyy-nix-server/net.nix | 53 ++++++++++------- config/hosts/imxyy-nix-server/note.nix | 68 +++++++++++++--------- 4 files changed, 92 insertions(+), 79 deletions(-) diff --git a/config/hosts/imxyy-nix-server/code.nix b/config/hosts/imxyy-nix-server/code.nix index 4f93786..cee2d66 100644 --- a/config/hosts/imxyy-nix-server/code.nix +++ b/config/hosts/imxyy-nix-server/code.nix @@ -7,26 +7,22 @@ } ]; services.postgresql.ensureDatabases = [ "coder" ]; - virtualisation.oci-containers = { - containers = { - coder = { - image = "ghcr.io/coder/coder:latest"; - environment = { - CODER_ACCESS_URL = "https://coder.imxyy.top"; - CODER_HTTP_ADDRESS = "0.0.0.0:8086"; - CODER_PG_CONNECTION_URL = "postgresql://coder:coderdatabase@127.0.0.1/coder?sslmode=disable"; - }; - extraOptions = [ - "--network=host" - "--group-add=${toString config.users.groups.podman.gid}" - ]; - volumes = [ - "/var/lib/coder:/home/coder/.config" - "/var/run/docker.sock:/var/run/docker.sock" - ]; - ports = [ "8086:8086" ]; - }; + virtualisation.oci-containers.containers.coder = { + image = "ghcr.io/coder/coder:latest"; + environment = { + CODER_ACCESS_URL = "https://coder.imxyy.top"; + CODER_HTTP_ADDRESS = "0.0.0.0:8086"; + CODER_PG_CONNECTION_URL = "postgresql://coder:coderdatabase@127.0.0.1/coder?sslmode=disable"; }; + extraOptions = [ + "--network=host" + "--group-add=${toString config.users.groups.podman.gid}" + ]; + volumes = [ + "/var/lib/coder:/home/coder/.config" + "/var/run/docker.sock:/var/run/docker.sock" + ]; + ports = [ "8086:8086" ]; }; services.caddy.virtualHosts."coder.imxyy.top" = { extraConfig = '' diff --git a/config/hosts/imxyy-nix-server/homepage.nix b/config/hosts/imxyy-nix-server/homepage.nix index bc93273..5c8cc64 100644 --- a/config/hosts/imxyy-nix-server/homepage.nix +++ b/config/hosts/imxyy-nix-server/homepage.nix @@ -1,14 +1,10 @@ { - virtualisation.oci-containers = { - containers = { - sun-panel = { - image = "hslr/sun-panel:latest"; - volumes = [ - "/var/lib/sun-panel:/app/conf" - ]; - ports = [ "8085:3002" ]; - }; - }; + virtualisation.oci-containers.containers.sun-panel = { + image = "hslr/sun-panel:latest"; + volumes = [ + "/var/lib/sun-panel:/app/conf" + ]; + ports = [ "8085:3002" ]; }; services.caddy.virtualHosts."home.imxyy.top" = { extraConfig = '' diff --git a/config/hosts/imxyy-nix-server/net.nix b/config/hosts/imxyy-nix-server/net.nix index 3688d9b..0c290a6 100644 --- a/config/hosts/imxyy-nix-server/net.nix +++ b/config/hosts/imxyy-nix-server/net.nix @@ -409,6 +409,21 @@ customDomains = [ "immich.imxyy.top" ]; } + { + name = "memo-http"; + type = "http"; + localIP = "127.0.0.1"; + localPort = 80; + customDomains = [ "memo.imxyy.top" ]; + } + { + name = "memo-https"; + type = "https"; + localIP = "127.0.0.1"; + localPort = 443; + customDomains = [ "memo.imxyy.top" ]; + } + { name = "minecraft"; type = "tcp"; @@ -479,27 +494,23 @@ ]; }; - virtualisation.oci-containers = { - containers = { - obligator = { - image = "anderspitman/obligator:latest"; - volumes = [ - "/var/lib/obligator:/data" - "/var/lib/obligator:/api" - ]; - ports = [ "8081:1616" ]; - cmd = [ - "-storage-dir" - "/data" - "-api-socket-dir" - "/api" - "-root-uri" - "https://oidc.imxyy.top" - "-port" - "1616" - ]; - }; - }; + virtualisation.oci-containers.containers.obligator = { + image = "anderspitman/obligator:latest"; + volumes = [ + "/var/lib/obligator:/data" + "/var/lib/obligator:/api" + ]; + ports = [ "8081:1616" ]; + cmd = [ + "-storage-dir" + "/data" + "-api-socket-dir" + "/api" + "-root-uri" + "https://oidc.imxyy.top" + "-port" + "1616" + ]; }; services.caddy.virtualHosts."headscale.imxyy.top" = { extraConfig = '' diff --git a/config/hosts/imxyy-nix-server/note.nix b/config/hosts/imxyy-nix-server/note.nix index 10949a3..6c73d85 100644 --- a/config/hosts/imxyy-nix-server/note.nix +++ b/config/hosts/imxyy-nix-server/note.nix @@ -14,36 +14,41 @@ format = "dotenv"; }; }; - virtualisation.oci-containers = { - containers = { - flatnotes = { - image = "dullage/flatnotes:latest"; - volumes = [ - "/mnt/nas/flatnotes/data:/data" - ]; - environmentFiles = [ - "${config.sops.secrets.flatnote-env.path}" - ]; - ports = [ "8093:8080" ]; - }; - siyuan = { - image = "apkdv/siyuan-unlock:v3.1.30"; - volumes = [ - "/mnt/nas/siyuan/workspace:/workspace" - "/mnt/nas/siyuan:/home/siyuan" - ]; - cmd = [ - "--workspace=/workspace" - ]; - environment = { - PUID = "0"; - PGID = "0"; - }; - environmentFiles = [ - "${config.sops.secrets.siyuan-env.path}" - ]; - ports = [ "8095:6806" ]; + virtualisation.oci-containers.containers = { + flatnotes = { + image = "dullage/flatnotes:latest"; + volumes = [ + "/mnt/nas/flatnotes/data:/data" + ]; + environmentFiles = [ + "${config.sops.secrets.flatnote-env.path}" + ]; + ports = [ "8093:8080" ]; + }; + siyuan = { + image = "apkdv/siyuan-unlock:v3.1.30"; + volumes = [ + "/mnt/nas/siyuan/workspace:/workspace" + "/mnt/nas/siyuan:/home/siyuan" + ]; + cmd = [ + "--workspace=/workspace" + ]; + environment = { + PUID = "0"; + PGID = "0"; }; + environmentFiles = [ + "${config.sops.secrets.siyuan-env.path}" + ]; + ports = [ "8095:6806" ]; + }; + memos = { + image = "neosmemo/memos:stable"; + volumes = [ + "/mnt/nas/memos:/var/opt/memos" + ]; + ports = [ "8097:5230" ]; }; }; services.caddy.virtualHosts = { @@ -57,5 +62,10 @@ reverse_proxy :8095 ''; }; + "memo.imxyy.top" = { + extraConfig = '' + reverse_proxy :8097 + ''; + }; }; }