feat: update topology
3
.github/README.md
vendored
|
|
@ -109,8 +109,7 @@
|
||||||
<details>
|
<details>
|
||||||
<summary>Click here for a summary of my infrastructure</summary>
|
<summary>Click here for a summary of my infrastructure</summary>
|
||||||
|
|
||||||
<img width="3854" height="7060" alt="topology" src="https://github.com/user-attachments/assets/fc557fdb-b779-4530-ae19-93ff019a2b29" />
|
<img width="4176" height="8367" alt="topology" src="https://github.com/user-attachments/assets/8b7f148d-8e49-4788-ba0f-4487482a483b" />
|
||||||
|
|
||||||
|
|
||||||
### Programs
|
### Programs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2662,7 +2662,8 @@ Another note concerning [[https://flake.parts/][flake-parts]]:
|
||||||
|
|
||||||
ender3 = mkDevice "Ender 3" {
|
ender3 = mkDevice "Ender 3" {
|
||||||
info = "SKR V1.3, TMC2209 (Dual), TFT35";
|
info = "SKR V1.3, TMC2209 (Dual), TFT35";
|
||||||
image = "${self}/files/topology-images/ender3.png";
|
deviceIcon = "${self}/files/topology-images/ender3.png";
|
||||||
|
icon = "${self}/files/topology-images/raspi.png";
|
||||||
interfaces.eth1 = { };
|
interfaces.eth1 = { };
|
||||||
services = {
|
services = {
|
||||||
octoprint = {
|
octoprint = {
|
||||||
|
|
@ -6207,7 +6208,7 @@ This machine mainly acts as my proxy server to stand before my local machines.
|
||||||
};
|
};
|
||||||
restic.targets = {
|
restic.targets = {
|
||||||
SwarselMoonside = {
|
SwarselMoonside = {
|
||||||
repository = config.repo.secrets.local.resticRepoState;
|
repository = config.repo.secrets.local.resticRepo;
|
||||||
paths = [
|
paths = [
|
||||||
"/persist/opt/minecraft"
|
"/persist/opt/minecraft"
|
||||||
];
|
];
|
||||||
|
|
@ -12727,11 +12728,7 @@ This is the configuration to make [[#h:58c7563e-6954-42e6-a622-9d06523e8e24][Hin
|
||||||
sops.secrets.kavita-token = { inherit sopsFile; owner = serviceUser; };
|
sops.secrets.kavita-token = { inherit sopsFile; owner = serviceUser; };
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ servicePort ];
|
# networking.firewall.allowedTCPPorts = [ servicePort ];
|
||||||
topology.self.services.${serviceName} = {
|
topology.self.services.${serviceName}.info = "https://${serviceDomain}";
|
||||||
name = "Kavita";
|
|
||||||
info = "https://${serviceDomain}";
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
||||||
directories = [{ directory = "/var/lib/${serviceName}"; user = serviceUser; group = serviceGroup; }];
|
directories = [{ directory = "/var/lib/${serviceName}"; user = serviceUser; group = serviceGroup; }];
|
||||||
|
|
@ -13148,11 +13145,7 @@ This is the configuration to make [[#h:58c7563e-6954-42e6-a622-9d06523e8e24][Hin
|
||||||
mpv
|
mpv
|
||||||
];
|
];
|
||||||
|
|
||||||
topology.self.services.${serviceName} = {
|
topology.self.services.${serviceName}.info = "http://localhost:${builtins.toString servicePort}";
|
||||||
name = lib.toUpper serviceName;
|
|
||||||
info = "http://localhost:${builtins.toString servicePort}";
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
||||||
directories = [{ directory = "/var/lib/${serviceName}"; user = "mpd"; group = "mpd"; }];
|
directories = [{ directory = "/var/lib/${serviceName}"; user = "mpd"; group = "mpd"; }];
|
||||||
|
|
@ -13234,13 +13227,6 @@ This is the configuration to make [[#h:58c7563e-6954-42e6-a622-9d06523e8e24][Hin
|
||||||
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
||||||
config = lib.mkIf config.swarselmodules.server.${serviceName} {
|
config = lib.mkIf config.swarselmodules.server.${serviceName} {
|
||||||
|
|
||||||
topology.self.services = {
|
|
||||||
${serviceName} = {
|
|
||||||
name = lib.swarselsystems.toCapitalized serviceName;
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -13388,19 +13374,13 @@ This is the configuration to make [[#h:58c7563e-6954-42e6-a622-9d06523e8e24][Hin
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ servicePort federationPort ];
|
# networking.firewall.allowedTCPPorts = [ servicePort federationPort ];
|
||||||
|
|
||||||
topology.self.services = {
|
topology.self.services = lib.listToAttrs (map
|
||||||
${serviceName} = {
|
|
||||||
name = lib.swarselsystems.toCapitalized serviceName;
|
|
||||||
info = "https://${serviceDomain}";
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
} // (lib.listToAttrs (map
|
|
||||||
(service:
|
(service:
|
||||||
lib.nameValuePair "mautrix-${service}" {
|
lib.nameValuePair "mautrix-${service}" {
|
||||||
name = "mautrix-${service}";
|
name = "mautrix-${service}";
|
||||||
icon = "${self}/files/topology-images/mautrix.png";
|
icon = "${self}/files/topology-images/mautrix.png";
|
||||||
})
|
})
|
||||||
[ "whatsapp" "signal" "telegram" ]));
|
[ "whatsapp" "signal" "telegram" ]);
|
||||||
|
|
||||||
systemd = {
|
systemd = {
|
||||||
timers."restart-bridges" = {
|
timers."restart-bridges" = {
|
||||||
|
|
@ -37573,8 +37553,7 @@ Here lies defined the readme for GitHub and Forgejo:
|
||||||
<details>
|
<details>
|
||||||
<summary>Click here for a summary of my infrastructure</summary>
|
<summary>Click here for a summary of my infrastructure</summary>
|
||||||
|
|
||||||
<img width="3854" height="7060" alt="topology" src="https://github.com/user-attachments/assets/fc557fdb-b779-4530-ae19-93ff019a2b29" />
|
<img width="4176" height="8367" alt="topology" src="https://github.com/user-attachments/assets/8b7f148d-8e49-4788-ba0f-4487482a483b" />
|
||||||
|
|
||||||
|
|
||||||
### Programs
|
### Programs
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 870 KiB After Width: | Height: | Size: 379 KiB |
|
Before Width: | Height: | Size: 870 KiB |
BIN
files/topology-images/raspi.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 3 MiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 147 KiB |
6
flake.lock
generated
|
|
@ -1616,11 +1616,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-dev": {
|
"nixpkgs-dev": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767131767,
|
"lastModified": 1768915681,
|
||||||
"narHash": "sha256-APHjXWyLmNKFNXoVU7Z82L8zUeSpR1/owKFryitWSsg=",
|
"narHash": "sha256-/eIZP//Ey3HLNlZj8ucVXnzv+qO8RkGvUHWmFL58PzY=",
|
||||||
"owner": "Swarsel",
|
"owner": "Swarsel",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "449fa265ea9c67c1ea9b1c3d8121959e2ce348d3",
|
"rev": "5f51dc7790416d9122723da3b4843ba8b49955d4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ in
|
||||||
};
|
};
|
||||||
restic.targets = {
|
restic.targets = {
|
||||||
SwarselMoonside = {
|
SwarselMoonside = {
|
||||||
repository = config.repo.secrets.local.resticRepoState;
|
repository = config.repo.secrets.local.resticRepo;
|
||||||
paths = [
|
paths = [
|
||||||
"/persist/opt/minecraft"
|
"/persist/opt/minecraft"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,7 @@ in
|
||||||
sops.secrets.kavita-token = { inherit sopsFile; owner = serviceUser; };
|
sops.secrets.kavita-token = { inherit sopsFile; owner = serviceUser; };
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ servicePort ];
|
# networking.firewall.allowedTCPPorts = [ servicePort ];
|
||||||
topology.self.services.${serviceName} = {
|
topology.self.services.${serviceName}.info = "https://${serviceDomain}";
|
||||||
name = "Kavita";
|
|
||||||
info = "https://${serviceDomain}";
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
||||||
directories = [{ directory = "/var/lib/${serviceName}"; user = serviceUser; group = serviceGroup; }];
|
directories = [{ directory = "/var/lib/${serviceName}"; user = serviceUser; group = serviceGroup; }];
|
||||||
|
|
|
||||||
|
|
@ -63,19 +63,13 @@ in
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ servicePort federationPort ];
|
# networking.firewall.allowedTCPPorts = [ servicePort federationPort ];
|
||||||
|
|
||||||
topology.self.services = {
|
topology.self.services = lib.listToAttrs (map
|
||||||
${serviceName} = {
|
|
||||||
name = lib.swarselsystems.toCapitalized serviceName;
|
|
||||||
info = "https://${serviceDomain}";
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
} // (lib.listToAttrs (map
|
|
||||||
(service:
|
(service:
|
||||||
lib.nameValuePair "mautrix-${service}" {
|
lib.nameValuePair "mautrix-${service}" {
|
||||||
name = "mautrix-${service}";
|
name = "mautrix-${service}";
|
||||||
icon = "${self}/files/topology-images/mautrix.png";
|
icon = "${self}/files/topology-images/mautrix.png";
|
||||||
})
|
})
|
||||||
[ "whatsapp" "signal" "telegram" ]));
|
[ "whatsapp" "signal" "telegram" ]);
|
||||||
|
|
||||||
systemd = {
|
systemd = {
|
||||||
timers."restart-bridges" = {
|
timers."restart-bridges" = {
|
||||||
|
|
|
||||||
|
|
@ -30,11 +30,7 @@ in
|
||||||
mpv
|
mpv
|
||||||
];
|
];
|
||||||
|
|
||||||
topology.self.services.${serviceName} = {
|
topology.self.services.${serviceName}.info = "http://localhost:${builtins.toString servicePort}";
|
||||||
name = lib.toUpper serviceName;
|
|
||||||
info = "http://localhost:${builtins.toString servicePort}";
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
environment.persistence."/state" = lib.mkIf config.swarselsystems.isMicroVM {
|
||||||
directories = [{ directory = "/var/lib/${serviceName}"; user = "mpd"; group = "mpd"; }];
|
directories = [{ directory = "/var/lib/${serviceName}"; user = "mpd"; group = "mpd"; }];
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,6 @@ in
|
||||||
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
||||||
config = lib.mkIf config.swarselmodules.server.${serviceName} {
|
config = lib.mkIf config.swarselmodules.server.${serviceName} {
|
||||||
|
|
||||||
topology.self.services = {
|
|
||||||
${serviceName} = {
|
|
||||||
name = lib.swarselsystems.toCapitalized serviceName;
|
|
||||||
icon = "${self}/files/topology-images/${serviceName}.png";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,8 @@
|
||||||
|
|
||||||
ender3 = mkDevice "Ender 3" {
|
ender3 = mkDevice "Ender 3" {
|
||||||
info = "SKR V1.3, TMC2209 (Dual), TFT35";
|
info = "SKR V1.3, TMC2209 (Dual), TFT35";
|
||||||
image = "${self}/files/topology-images/ender3.png";
|
deviceIcon = "${self}/files/topology-images/ender3.png";
|
||||||
|
icon = "${self}/files/topology-images/raspi.png";
|
||||||
interfaces.eth1 = { };
|
interfaces.eth1 = { };
|
||||||
services = {
|
services = {
|
||||||
octoprint = {
|
octoprint = {
|
||||||
|
|
|
||||||