14 Commits

Author SHA1 Message Date
bdb52de343 mob next [ci-skip] [ci skip] [skip ci]
lastFile:inventories/default.nix
2025-10-17 14:29:40 +07:00
198c9a8c11 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/default.nix
2025-10-17 14:22:36 +07:00
c497a1ba86 Update vars via generator yggdrasil for machine b4l 2025-10-17 14:22:09 +07:00
43b8bf0ffe mob next [ci-skip] [ci skip] [skip ci]
lastFile:inventories/default.nix
2025-10-17 13:15:08 +07:00
e1114189f2 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/default.nix
2025-10-17 12:42:02 +07:00
ad1c98be75 mob next [ci-skip] [ci skip] [skip ci]
lastFile:inventories/default.nix
2025-10-17 12:11:58 +07:00
da33b3935e mob next [ci-skip] [ci skip] [skip ci]
lastFile:inventories/default.nix
2025-10-17 12:08:01 +07:00
a02f64a615 Update vars via generator yggdrasil for machine b4l 2025-10-17 11:29:35 +07:00
2ab9fc4ad8 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/default.nix
2025-10-17 11:25:54 +07:00
16a2fa0526 Update vars via generator yggdrasil for machine b4l 2025-10-17 11:25:02 +07:00
b8dc4757ed mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/default.nix
2025-10-16 19:07:45 +07:00
79fa8eef01 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/tests/vm/default.nix
2025-10-16 18:01:00 +07:00
ac731c2f38 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/tests/vm/default.nix
2025-10-16 17:22:45 +07:00
c9f23f4c0a mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/yggdrasil/default.nix
2025-10-16 17:19:09 +07:00
8 changed files with 19 additions and 147 deletions

View File

@@ -5,6 +5,7 @@
tags = {
glom = [ "vega" ];
b4l = [ "rigel" ];
fax-bridge = [ ];
};
@@ -55,6 +56,7 @@
input = "self";
};
roles.default.tags."fax-bridge" = { };
roles.default.machines."rigel" = { };
};
pocket-id = {
@@ -62,63 +64,54 @@
name = "pocket-id";
input = "self";
};
roles.default.machines.b4l = { };
};
nextcloud = {
module = {
name = "nextcloud";
input = "self";
};
roles.default.machines.b4l = { };
};
stirling-pdf = {
module = {
name = "stirling-pdf";
input = "self";
};
roles.default.machines.b4l = { };
};
actual-budget = {
module = {
name = "actual-budget";
input = "self";
};
roles.default.machines.b4l = { };
};
victoriametrics = {
module = {
name = "victoriametrics";
input = "self";
};
roles.default.machines.b4l = { };
};
vikunja = {
module = {
name = "vikunja";
input = "self";
};
roles.default.machines.b4l = { };
};
grafana = {
module = {
name = "grafana";
input = "self";
};
roles.default.machines.b4l = { };
};
pingvin = {
module = {
name = "pingvin";
input = "self";
};
roles.default.machines.b4l = { };
};
paperless = {
module = {
name = "paperless";
input = "self";
};
roles.default.machines.b4l = { };
};
};
};

View File

@@ -1,7 +1,7 @@
{ inputs, config, ... }:
{
imports = [
(inputs.import-tree ./services)
# (inputs.import-tree ./services)
];
nixpkgs.hostPlatform = {
system = "x86_64-linux";

View File

@@ -1,64 +0,0 @@
{ ... }:
{
_class = "clan.service";
manifest.name = "asterisk";
manifest.description = "Asterisk PBX server";
manifest.categories = [ "System" ];
roles.default = {
perInstance.nixosModule =
{
lib,
config,
...
}:
{
services.asterisk = {
enable = lib.mkDefault true;
confFiles = {
"extensions.conf" = ''
[tests]
; Dial 100 for "hello, world"
exten => 100,1,Answer()
same => n,Wait(1)
same => n,Playback(hello-world)
same => n,Hangup()
[softphones]
include => tests
[unauthorized]
'';
"sip.conf" = ''
[general]
allowguest=no ; Require authentication
context=unauthorized ; Send unauthorized users to /dev/null
srvlookup=no ; Don't do DNS lookup
udpbindaddr=0.0.0.0 ; Listen on all interfaces
nat=force_rport,comedia ; Assume device is behind NAT
[softphone](!)
type=friend ; Match on username first, IP second
context=softphones ; Send to softphones context in
; extensions.conf file
host=dynamic ; Device will register with asterisk
disallow=all ; Manually specify codecs to allow
allow=g722
allow=ulaw
allow=alaw
[myphone](softphone)
secret=GhoshevFew ; Change this password!
'';
"logger.conf" = ''
[general]
[logfiles]
; Add debug output to log
syslog.local0 => notice,warning,error,debug
'';
};
};
};
};
}

View File

@@ -1,18 +0,0 @@
{ lib, ... }:
let
module = lib.modules.importApply ./default.nix { };
in
{
clan.modules = {
asterisk = module;
};
perSystem =
{ ... }:
{
clan.nixosTests.asterisk = {
imports = [ ./tests/vm/default.nix ];
clan.modules."@clan/asterisk" = module;
};
};
}

View File

@@ -1,39 +0,0 @@
{
pkgs,
...
}:
{
name = "service-asterisk";
clan = {
directory = ./.;
inventory = {
machines.server = { };
instances = {
asterisk-test = {
module.name = "@clan/asterisk";
module.input = "self";
roles.default.machines."server".settings = { };
};
};
};
};
nodes = {
server = {
services.asterisk = {
};
};
};
testScript = ''
start_all()
server.wait_for_unit("asterisk")
# Check that garage is running
server.succeed("systemctl status asterisk")
'';
}

View File

@@ -13,16 +13,18 @@
pkgs,
...
}:
let
user = "yggdrasil";
in
{
clan.core.vars.generators.yggdrasil = {
files = {
yggdrasil-secret = {
secret = true;
owner = user;
group = user;
};
yggdrasil-ip = {
secret = false;
};
yggdrasil-subnet.secret = false;
yggdrasil-ip.secret = false;
};
runtimeInputs = with pkgs; [
yggdrasil
@@ -31,7 +33,6 @@
script = ''
yggdrasil -genconf -json | jq {PrivateKey} > $out/yggdrasil-secret
cat $out/yggdrasil-secret | yggdrasil -useconf -address | tr -d "\n" > $out/yggdrasil-ip
yggdrasil -useconffile $out/yggdrasil-secret -subnet | tr -d "\n" > $out/yggdrasil-subnet
'';
};

View File

@@ -1,9 +1,4 @@
{
lib,
inputs,
self,
...
}:
{ lib, ... }:
let
module = lib.modules.importApply ./default.nix { };
in
@@ -14,10 +9,10 @@ in
perSystem =
{ ... }:
{
# clan.nixosTests.yggdrasil = {
# imports = [ ./tests/vm/default.nix ];
#
# clan.modules."@clan/yggdrasil" = module;
# };
clan.nixosTests.yggdrasil = {
imports = [ ./tests/vm/default.nix ];
clan.modules."@clan/yggdrasil" = module;
};
};
}

View File

@@ -1,4 +1,5 @@
{
pkgs,
...
}:
{
@@ -33,5 +34,8 @@
# Check that garage is running
server.succeed("systemctl status yggdrasil")
'';
}