Migrate heisenbridge from clanModule to clanService

This commit is contained in:
pinpox
2025-06-04 02:17:18 +02:00
parent 49425775eb
commit 1ec71dcdd1
9 changed files with 117 additions and 2 deletions

View File

@@ -47,6 +47,9 @@ in
# Garage test # Garage test
garage = import ./garage nixosTestArgs; garage = import ./garage nixosTestArgs;
# Heisenbridge test
heisenbridge = import ./heisenbridge nixosTestArgs;
# Base Tests # Base Tests
secrets = self.clanLib.test.baseTest ./secrets nixosTestArgs; secrets = self.clanLib.test.baseTest ./secrets nixosTestArgs;
borgbackup-legacy = self.clanLib.test.baseTest ./borgbackup-legacy nixosTestArgs; borgbackup-legacy = self.clanLib.test.baseTest ./borgbackup-legacy nixosTestArgs;

View File

@@ -0,0 +1,65 @@
{
pkgs,
nixosLib,
clan-core,
...
}:
nixosLib.runTest (
{ ... }:
{
imports = [
clan-core.modules.nixosVmTest.clanTest
];
hostPkgs = pkgs;
name = "heisenbridge";
clan = {
directory = ./.;
modules."@clan/heisenbridge" = ../../clanServices/heisenbridge/default.nix;
inventory = {
machines.server = { };
instances = {
heisenbridge-test = {
module.name = "@clan/heisenbridge";
roles.default.machines."server".settings = {
homeserver = "http://127.0.0.1:8008";
};
};
};
};
};
nodes = {
server = {
# Setup a minimal matrix-synapse to test with
services.matrix-synapse = {
enable = true;
settings.server_name = "example.com";
settings.database = {
name = "sqlite3";
};
};
};
};
testScript = ''
start_all()
server.wait_for_unit("matrix-synapse")
server.wait_for_unit("heisenbridge")
# Check that heisenbridge is running
server.succeed("systemctl status heisenbridge")
# Wait for the bridge to initialize
server.wait_until_succeeds("journalctl -u heisenbridge | grep -q 'bridge is now running'")
# Check that heisenbridge is listening on the default port
server.succeed("${pkgs.netcat}/bin/nc -z -v 127.0.0.1 9898")
'';
}
)

View File

@@ -0,0 +1,4 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -1,4 +1,5 @@
--- ---
description = "A matrix bridge to communicate with IRC" description = "A matrix bridge to communicate with IRC"
categories = ["Social"]
features = [ "inventory", "deprecated" ]
--- ---

View File

@@ -1,5 +1,4 @@
{ {
config,
lib, lib,
... ...
}: }:

View File

@@ -5,6 +5,7 @@
./deltachat/flake-module.nix ./deltachat/flake-module.nix
./ergochat/flake-module.nix ./ergochat/flake-module.nix
./garage/flake-module.nix ./garage/flake-module.nix
./heisenbridge/flake-module.nix
./auto-upgrade/flake-module.nix ./auto-upgrade/flake-module.nix
./hello-world/flake-module.nix ./hello-world/flake-module.nix
./wifi/flake-module.nix ./wifi/flake-module.nix

View File

@@ -0,0 +1,35 @@
{ ... }:
{
_class = "clan.service";
manifest.name = "clan-core/heisenbridge";
manifest.description = "A matrix bridge to communicate with IRC";
manifest.categories = [ "Social" ];
roles.default = {
interface =
{ lib, ... }:
{
options.homeserver = lib.mkOption {
type = lib.types.str;
default = "http://localhost:8008";
description = "URL of the Matrix homeserver";
};
};
perInstance =
{ settings, ... }:
{
nixosModule = {
services.heisenbridge = {
enable = true;
homeserver = settings.homeserver;
};
services.matrix-synapse.settings.app_service_config_files = [
"/var/lib/heisenbridge/registration.yml"
];
};
};
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }:
{
clan.modules = {
heisenbridge = lib.modules.importApply ./default.nix { };
};
}

View File

@@ -88,6 +88,7 @@ nav:
- reference/clanServices/deltachat.md - reference/clanServices/deltachat.md
- reference/clanServices/ergochat.md - reference/clanServices/ergochat.md
- reference/clanServices/garage.md - reference/clanServices/garage.md
- reference/clanServices/heisenbridge.md
- reference/clanServices/hello-world.md - reference/clanServices/hello-world.md
- reference/clanServices/wifi.md - reference/clanServices/wifi.md
- Clan Modules: - Clan Modules: