From 6583cffeb892dca92d386bc3a3cd55bda980ba73 Mon Sep 17 00:00:00 2001 From: Drew Haven Date: Mon, 21 Sep 2026 15:18:57 -0700 Subject: [PATCH] [matrix.havenisms.com] Sets up Continuwuity for a migration, but migration failed so disabled --- secrets/mcp.yaml | 6 +- .../containers/havenisms.com/chat-beta.nix | 56 +++++++++++++++++++ .../mcp/containers/havenisms.com/chat.nix | 28 +++++----- .../mcp/containers/havenisms.com/default.nix | 2 + 4 files changed, 76 insertions(+), 16 deletions(-) create mode 100644 system/hosts/mcp/containers/havenisms.com/chat-beta.nix diff --git a/secrets/mcp.yaml b/secrets/mcp.yaml index 9b6453c..70fedbb 100644 --- a/secrets/mcp.yaml +++ b/secrets/mcp.yaml @@ -23,6 +23,8 @@ matrix: db-password: ENC[AES256_GCM,data:N/IO0k/2BZpmaDTbKZmSgZNzmdk=,iv:p0jGjJ9mTCh5FPM/Oe1vxusYvlyg14UeggE5ynpDVL8=,tag:tZbddwxJf6wSH6L1QRUQVg==,type:str] secret: ENC[AES256_GCM,data:KZjYxjUxGgkY1I5jGF7XMEhkHK+khDaQzxugoKxpLsROmVs722tFfbUAxhp71llam55gy9+eUWGxIPlmvOySlw==,iv:OoThGcT08Z11kpnAMQ7w59wj5JheNFGEk1jfFENsmy0=,tag:8EeKT7dh2/a52Amf6LsL1w==,type:str] blazestar-registration-token: ENC[AES256_GCM,data:TB3bR+E4H4c2l9pRcEOAZr35+vBVaJUcuCs9K0Pjd0aW+M35x5LgZ8+F99Y=,iv:e28sie6LSI5UX41BPb+yN+3n+Yw9Ssfsqe4zppwbPkU=,tag:cQPgZcRFbYSiZnmPVtZxHg==,type:str] + matrix-havenisms-com: + registration-token: ENC[AES256_GCM,data:AzTsGsz3pCzOarBH/tXy0yFd6GkGcAcN3OEIjtdMxkdb1qqLNcGYuI7BkDA=,iv:4wJNqcioZ1VBChna9QStGSGjUhwPogLeoqf17Zd2NLs=,tag:BXWm5Y37xi/cAttLNu7aOw==,type:str] tandoor: secret_key: ENC[AES256_GCM,data:nl7S2fS1wENrT5k2iZfLEAGc99lCUktgwR5L5KklF69BNVKQkW1rUgb3aIv50VpXZa+3OxV/vdPmG9NhKMy96I5+Dno=,iv:FFyGQBARz0B5zrONZELzUMsOIn8TWrDNTKGsAHPlS7w=,tag:/c4MnDfLXQpBZDqVxZ0DTg==,type:str] immich: @@ -65,7 +67,7 @@ sops: dvKJPDYvGb/8JXSkZNkLlWvHEVnsAJ1mJFb1idenYzeQvJlsX07rYA== -----END AGE ENCRYPTED FILE----- recipient: age1jrk4h7x4qzhr6z5m4d099mlfyjc4n5n9s52r4gfsdz0slnqlqa9sss735v - lastmodified: "2026-09-06T18:47:12Z" - mac: ENC[AES256_GCM,data:Y/I0EDZsjYYEJisPiEa/gS8d+vc9ksmwH87fAPn1bDzJq+reIiwg+ESkGik8VYcQL8NO6YF3ZU8nyuqIT62ZnWDUU1RZaYwoSkCpEylWmH4xq4ShJTm2Fkqj9f0wtkrCw6uOW5wlio+BlWp6gkYuC9Zp2u29ms73Z0HLU5LPTIg=,iv:h6i4UqFqA3Q3agCP4YWltMe+59VU+tuxG13jw7NO+yI=,tag:BP+7JhgYFoeOuNeUUeLOLg==,type:str] + lastmodified: "2026-09-18T00:15:53Z" + mac: ENC[AES256_GCM,data:BkZiWsKlgUSSFgcA0th/KFHliqDY1LmHxCBi7HCZeizcRk9AMQ2SdFXeJwdvULo5UtCYvP8soLt0lyGw50uiL9XVlYLncllNu9EgwGEQkRJCHwyoyaio0GDWjCMOizPKw5c5tWqSGnSR3XLT7qzPVDcEztU9lzFJXUyxMpBZlhM=,iv:vlW1HqKinfu1//GjGCzpQXmDqyFKUtBKn+Whwh+/S4k=,tag:mAt+a9rrS2EezSwuEfWr8w==,type:str] unencrypted_suffix: _unencrypted version: 3.13.3 diff --git a/system/hosts/mcp/containers/havenisms.com/chat-beta.nix b/system/hosts/mcp/containers/havenisms.com/chat-beta.nix new file mode 100644 index 0000000..43f8f71 --- /dev/null +++ b/system/hosts/mcp/containers/havenisms.com/chat-beta.nix @@ -0,0 +1,56 @@ +{ config, ... }: +let + inherit (import ../lib.nix config) havenisms; + matrixHost = "matrix"; + serviceName = "matrix-havenisms-com"; + dbPath = "/var/lib/matrix"; + port = 8448; +in +{ + sops.secrets = { + "matrix/${serviceName}/registration-token" = { + restartUnits = [ "${config.local.container-backend}-${serviceName}.service" ]; + }; + }; + + sops.templates."${serviceName}.env".content = '' + CONTINUWUITY_REGISTRATION_TOKEN=${ + config.sops.placeholder."matrix/${serviceName}/registration-token" + } + CONTINUWUITY_ADDRESS=0.0.0.0 + CONTINUWUITY_SERVER_NAME=havenisms.com + CONTINUWUITY_ALLOW_REGISTRATION=false + CONTINUWUITY_ALLOW_CHECK_FOR_UPDATES=true + CONTINUWUITY_ALLOW_FEDERATION=true + CONTINUWUITY_DATABASE_BACKEND=rocksdb + CONTINUWUITY_DATABASE_PATH=${dbPath} + CONTINUWUITY_WELL_KNOWN={ server=${matrixHost}.havenisms.com:443 } + CONTINUWUITY_TRUSTED_SERVERS=["matrix.org", "chat.havenisms.com", "matrix.blazestar.net"] + ''; + + # This isn't using any of my usual helpers because I wanted to set a custom + # serviceName in Traefik that is different from the hostname + virtualisation.web-containers.containers."${serviceName}" = { + image = "forgejo.ellis.link/continuwuation/continuwuity:latest"; + port = port; + hostname = matrixHost; + domain = havenisms; + volumes = [ + "/tank/matrix/home:${dbPath}" + ]; + environment = { + CONTINUWUITY_PORT = toString port; + }; + environmentFiles = [ + config.sops.templates."${serviceName}.env".path + ]; + extraLabels = { + # Redirect well-known requests to this host. + "traefik.http.routers.${serviceName}-well-known.rule" = + "Host(`${havenisms}`) && PathPrefix(`/.well-known/matrix`)"; + "traefik.http.routers.${serviceName}-well-known.service" = serviceName; + # Increase the priority so that this will override other routers for the host. + "traefik.http.routers.${serviceName}-well-known.priority" = "1000"; + }; + }; +} diff --git a/system/hosts/mcp/containers/havenisms.com/chat.nix b/system/hosts/mcp/containers/havenisms.com/chat.nix index 87af437..0e3abe3 100644 --- a/system/hosts/mcp/containers/havenisms.com/chat.nix +++ b/system/hosts/mcp/containers/havenisms.com/chat.nix @@ -66,19 +66,19 @@ in }; # This server helps to serve the .well-known files that are required by clients to find the sync server. - matrix-well-known = { - image = "nginx"; - dependsOn = [ "synapse" ]; - volumes = [ - "/tank/config/synapse/static-files:/usr/share/nginx/html:ro" - ]; - extraOptions = [ - "-l=traefik.enable=true" - "-l=traefik.http.middlewares.strip-well-known.stripprefix.prefixes=/.well-known" - "-l=traefik.http.routers.matrix-well-known.rule=${wellKnownRule}" - "-l=traefik.http.routers.matrix-well-known.middlewares=strip-well-known" - "-l=traefik.http.services.matrix-well-known.loadbalancer.server.port=80" - ]; - }; + # matrix-well-known = { + # image = "nginx"; + # dependsOn = [ "synapse" ]; + # volumes = [ + # "/tank/config/synapse/static-files:/usr/share/nginx/html:ro" + # ]; + # extraOptions = [ + # "-l=traefik.enable=true" + # "-l=traefik.http.middlewares.strip-well-known.stripprefix.prefixes=/.well-known" + # "-l=traefik.http.routers.matrix-well-known.rule=${wellKnownRule}" + # "-l=traefik.http.routers.matrix-well-known.middlewares=strip-well-known" + # "-l=traefik.http.services.matrix-well-known.loadbalancer.server.port=80" + # ]; + # }; }; } diff --git a/system/hosts/mcp/containers/havenisms.com/default.nix b/system/hosts/mcp/containers/havenisms.com/default.nix index ecbecab..e1e540a 100644 --- a/system/hosts/mcp/containers/havenisms.com/default.nix +++ b/system/hosts/mcp/containers/havenisms.com/default.nix @@ -2,6 +2,8 @@ { imports = [ ./chat.nix + # Migration paused + # ./chat-beta.nix # Currently disabled because it doesn't start up properly # ./immich.nix ./storyden.nix