Compare commits

...

2 commits

Author SHA1 Message Date
Leon Schwarzäugl
4fad38afdb
chore: update topology
Some checks failed
Flake check / Check flake (push) Has been cancelled
2025-07-23 01:16:34 +02:00
Leon Schwarzäugl
99586839c8
docs: host images on github 2025-07-23 01:15:25 +02:00
14 changed files with 353 additions and 285 deletions

6
.github/README.md vendored
View file

@ -9,8 +9,8 @@ That being said, there is a lot of general configuration that you *probably* can
# \~SwarselSystems\~ # \~SwarselSystems\~
<p align="center"> <p align="center">
<img src="https://i.imgur.com/bmgLNcu.png" width="49%" title="Tiling"> <img width="49%" title="Tiling" alt="swarselsystems_preview1" src="https://github.com/user-attachments/assets/f6021ab9-6289-497d-8747-28f5d526b75a" />
<img src="https://i.imgur.com/0G7Be6e.png" width="49%" title="Waybar"> <img width="49%" title="Waybar" alt="swarselsystems_preview2" src="https://github.com/user-attachments/assets/1160d9f7-710c-4046-8fcf-476bb4a0be84" />
</p> </p>
## Overview ## Overview
@ -104,6 +104,8 @@ Alternatively, to install this from any NixOS live ISO, run `nix run --experimen
<details> <details>
<summary>Click here for a summary of my infrastructure</summary> <summary>Click here for a summary of my infrastructure</summary>
<img width="2202" height="2947" alt="topology" src="https://github.com/user-attachments/assets/0eb37288-47a8-40e3-9211-648eee0ed408" />
### Programs ### Programs
| Topic | Program | | Topic | Program |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 MiB

View file

@ -967,6 +967,7 @@ Another note concerning [[https://flake.parts/][flake-parts]]:
(mkConnection "moonside" "wan") (mkConnection "moonside" "wan")
(mkConnection "pfsense" "wan") (mkConnection "pfsense" "wan")
(mkConnection "milkywell" "wan") (mkConnection "milkywell" "wan")
(mkConnection "magicant" "wifi")
(mkConnection "toto" "bootstrapper") (mkConnection "toto" "bootstrapper")
(mkConnection "chaostheatre" "demo host") (mkConnection "chaostheatre" "demo host")
]; ];
@ -1025,6 +1026,10 @@ Another note concerning [[https://flake.parts/][flake-parts]]:
}; };
winters.interfaces."eth1" = { }; winters.interfaces."eth1" = { };
bakery.interfaces = {
"eth1" = { };
"wifi" = { };
};
wifi-ap = mkSwitch "Wi-Fi AP" { wifi-ap = mkSwitch "Wi-Fi AP" {
info = "Huawei"; info = "Huawei";
@ -1035,6 +1040,9 @@ Another note concerning [[https://flake.parts/][flake-parts]]:
"wifi" "wifi"
] ]
]; ];
connections = {
wifi = mkConnection "bakery" "wifi";
};
}; };
switch-livingroom = mkSwitch "Switch Livingroom" { switch-livingroom = mkSwitch "Switch Livingroom" {
@ -1065,6 +1073,19 @@ Another note concerning [[https://flake.parts/][flake-parts]]:
interfaces.eth1 = { }; interfaces.eth1 = { };
}; };
magicant = mkDevice "magicant" {
icon = "${self}/files/topology-images/phone.png";
info = "Samsung Z Flip 6";
image = "${self}/files/topology-images/zflip6.png";
interfaces.wifi = { };
};
machpizza = mkDevice "machpizza" {
info = "MacBook Pro 2016";
icon = "${self}/files/topology-images/mac.png";
interfaces."eth1" = { };
};
pc = mkDevice "Windows Gaming Server" { pc = mkDevice "Windows Gaming Server" {
info = "i7-4790k, GTX970, 32GB RAM"; info = "i7-4790k, GTX970, 32GB RAM";
image = "${self}/files/topology-images/pc.png"; image = "${self}/files/topology-images/pc.png";
@ -1086,6 +1107,7 @@ Another note concerning [[https://flake.parts/][flake-parts]]:
] ]
]; ];
connections.eth2 = mkConnection "printer" "eth1"; connections.eth2 = mkConnection "printer" "eth1";
connections.eth3 = mkConnection "machpizza" "eth1";
}; };
printer = mkDevice "Printer" { printer = mkDevice "Printer" {
@ -2059,7 +2081,7 @@ My personal laptop.
lowResolution = "1280x800"; lowResolution = "1280x800";
highResolution = "1920x1080"; highResolution = "1920x1080";
sharescreen = "eDP-1"; sharescreen = "eDP-1";
info = "Lenovo ThinkPad"; info = "Lenovo Ideapad 720S-13IKB";
firewall = lib.mkForce true; firewall = lib.mkForce true;
wallpaper = self + /files/wallpaper/lenovowp.png; wallpaper = self + /files/wallpaper/lenovowp.png;
hasBluetooth = true; hasBluetooth = true;
@ -2496,6 +2518,10 @@ This machine mainly acts as an external sync helper. It manages the following th
domain = "subnet03112148.vcn03112148.oraclevcn.com"; domain = "subnet03112148.vcn03112148.oraclevcn.com";
}; };
topology.self = {
icon = "devices.cloud-server";
};
hardware = { hardware = {
enableAllFirmware = lib.mkForce false; enableAllFirmware = lib.mkForce false;
}; };
@ -2694,12 +2720,15 @@ This machine mainly acts as an external sync helper. It manages the following th
etc."issue".text = "\4"; etc."issue".text = "\4";
}; };
topology.self.interfaces.wg = { topology.self = {
icon = "devices.cloud-server";
interfaces.wg = {
addresses = [ "192.168.3.4" ]; addresses = [ "192.168.3.4" ];
renderer.hidePhysicalConnections = true; renderer.hidePhysicalConnections = true;
virtual = true; virtual = true;
type = "wireguard"; type = "wireguard";
}; };
};
networking = { networking = {
nftables.enable = lib.mkForce false; nftables.enable = lib.mkForce false;
@ -11104,16 +11133,17 @@ Sets environment variables. Here I am only setting the EDITOR variable, most var
in in
{ {
options.swarselmodules.env = lib.mkEnableOption "env settings"; options.swarselmodules.env = lib.mkEnableOption "env settings";
config = lib.mkIf config.swarselmodules.env { config =z lib.mkIf config.swarselmodules.env {
home.sessionVariables = { home.sessionVariables = {
EDITOR = "e -w"; EDITOR = "e -w";
DISPLAY = ":0"; DISPLAY = ":0";
SWARSEL_LO_RES = config.swarselsystems.lowResolution; SWARSEL_LO_RES = config.swarselsystems.lowResolution;
SWARSEL_HI_RES = config.swarselsystems.highResolution; SWARSEL_HI_RES = config.swarselsystems.highResolution;
CROC_RELAY = lib.mkIf (!isPublic) crocDomain; } // (lib.optionalAttrs (!isPublic) {
}; CROC_RELAY = crocDomain;
systemd.user.sessionVariables = lib.mkIf (!isPublic) {
GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path; GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path;
});
systemd.user.sessionVariables = lib.mkIf (!isPublic) {
SWARSEL_MAIL1 = address1; SWARSEL_MAIL1 = address1;
SWARSEL_MAIL2 = address2; SWARSEL_MAIL2 = address2;
SWARSEL_MAIL3 = address3; SWARSEL_MAIL3 = address3;
@ -11631,6 +11661,8 @@ Currently I only use it as before with =initExtra= though.
boot-diff = "nix store diff-closures /run/*-system"; boot-diff = "nix store diff-closures /run/*-system";
gen-diff = "nix profile diff-closures --profile /nix/var/nix/profiles/system"; gen-diff = "nix profile diff-closures --profile /nix/var/nix/profiles/system";
cc = "wl-copy"; cc = "wl-copy";
topology = "nix build .#topology.x86_64-linux.config.output";
iso = "nix build --print-out-paths .#live-iso";
} }
config.swarselsystems.shellAliases; config.swarselsystems.shellAliases;
autosuggestion.enable = true; autosuggestion.enable = true;
@ -22607,8 +22639,8 @@ Here lies defined the readme for GitHub and Forgejo:
# \~SwarselSystems\~ # \~SwarselSystems\~
<p align="center"> <p align="center">
<img src="https://i.imgur.com/bmgLNcu.png" width="49%" title="Tiling"> <img width="49%" title="Tiling" alt="swarselsystems_preview1" src="https://github.com/user-attachments/assets/f6021ab9-6289-497d-8747-28f5d526b75a" />
<img src="https://i.imgur.com/0G7Be6e.png" width="49%" title="Waybar"> <img width="49%" title="Waybar" alt="swarselsystems_preview2" src="https://github.com/user-attachments/assets/1160d9f7-710c-4046-8fcf-476bb4a0be84" />
</p> </p>
## Overview ## Overview
@ -22702,6 +22734,8 @@ 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="2202" height="2947" alt="topology" src="https://github.com/user-attachments/assets/0eb37288-47a8-40e3-9211-648eee0ed408" />
### Programs ### Programs
<<programs>> <<programs>>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 209 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View file

@ -27,7 +27,7 @@ in
lowResolution = "1280x800"; lowResolution = "1280x800";
highResolution = "1920x1080"; highResolution = "1920x1080";
sharescreen = "eDP-1"; sharescreen = "eDP-1";
info = "Lenovo ThinkPad"; info = "Lenovo Ideapad 720S-13IKB";
firewall = lib.mkForce true; firewall = lib.mkForce true;
wallpaper = self + /files/wallpaper/lenovowp.png; wallpaper = self + /files/wallpaper/lenovowp.png;
hasBluetooth = true; hasBluetooth = true;

View file

@ -17,6 +17,10 @@
domain = "subnet03112148.vcn03112148.oraclevcn.com"; domain = "subnet03112148.vcn03112148.oraclevcn.com";
}; };
topology.self = {
icon = "devices.cloud-server";
};
hardware = { hardware = {
enableAllFirmware = lib.mkForce false; enableAllFirmware = lib.mkForce false;
}; };

View file

@ -26,12 +26,15 @@ in
etc."issue".text = "\4"; etc."issue".text = "\4";
}; };
topology.self.interfaces.wg = { topology.self = {
icon = "devices.cloud-server";
interfaces.wg = {
addresses = [ "192.168.3.4" ]; addresses = [ "192.168.3.4" ];
renderer.hidePhysicalConnections = true; renderer.hidePhysicalConnections = true;
virtual = true; virtual = true;
type = "wireguard"; type = "wireguard";
}; };
};
networking = { networking = {
nftables.enable = lib.mkForce false; nftables.enable = lib.mkForce false;

View file

@ -8,16 +8,17 @@ let
in in
{ {
options.swarselmodules.env = lib.mkEnableOption "env settings"; options.swarselmodules.env = lib.mkEnableOption "env settings";
config = lib.mkIf config.swarselmodules.env { config = z lib.mkIf config.swarselmodules.env {
home.sessionVariables = { home.sessionVariables = {
EDITOR = "e -w"; EDITOR = "e -w";
DISPLAY = ":0"; DISPLAY = ":0";
SWARSEL_LO_RES = config.swarselsystems.lowResolution; SWARSEL_LO_RES = config.swarselsystems.lowResolution;
SWARSEL_HI_RES = config.swarselsystems.highResolution; SWARSEL_HI_RES = config.swarselsystems.highResolution;
CROC_RELAY = lib.mkIf (!isPublic) crocDomain; } // (lib.optionalAttrs (!isPublic) {
}; CROC_RELAY = crocDomain;
systemd.user.sessionVariables = lib.mkIf (!isPublic) {
GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path; GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path;
});
systemd.user.sessionVariables = lib.mkIf (!isPublic) {
SWARSEL_MAIL1 = address1; SWARSEL_MAIL1 = address1;
SWARSEL_MAIL2 = address2; SWARSEL_MAIL2 = address2;
SWARSEL_MAIL3 = address3; SWARSEL_MAIL3 = address3;

View file

@ -49,6 +49,8 @@ in
boot-diff = "nix store diff-closures /run/*-system"; boot-diff = "nix store diff-closures /run/*-system";
gen-diff = "nix profile diff-closures --profile /nix/var/nix/profiles/system"; gen-diff = "nix profile diff-closures --profile /nix/var/nix/profiles/system";
cc = "wl-copy"; cc = "wl-copy";
topology = "nix build .#topology.x86_64-linux.config.output";
iso = "nix build --print-out-paths .#live-iso";
} }
config.swarselsystems.shellAliases; config.swarselsystems.shellAliases;
autosuggestion.enable = true; autosuggestion.enable = true;

View file

@ -35,6 +35,7 @@
(mkConnection "moonside" "wan") (mkConnection "moonside" "wan")
(mkConnection "pfsense" "wan") (mkConnection "pfsense" "wan")
(mkConnection "milkywell" "wan") (mkConnection "milkywell" "wan")
(mkConnection "magicant" "wifi")
(mkConnection "toto" "bootstrapper") (mkConnection "toto" "bootstrapper")
(mkConnection "chaostheatre" "demo host") (mkConnection "chaostheatre" "demo host")
]; ];
@ -93,6 +94,10 @@
}; };
winters.interfaces."eth1" = { }; winters.interfaces."eth1" = { };
bakery.interfaces = {
"eth1" = { };
"wifi" = { };
};
wifi-ap = mkSwitch "Wi-Fi AP" { wifi-ap = mkSwitch "Wi-Fi AP" {
info = "Huawei"; info = "Huawei";
@ -103,6 +108,9 @@
"wifi" "wifi"
] ]
]; ];
connections = {
wifi = mkConnection "bakery" "wifi";
};
}; };
switch-livingroom = mkSwitch "Switch Livingroom" { switch-livingroom = mkSwitch "Switch Livingroom" {
@ -133,6 +141,19 @@
interfaces.eth1 = { }; interfaces.eth1 = { };
}; };
magicant = mkDevice "magicant" {
icon = "${self}/files/topology-images/phone.png";
info = "Samsung Z Flip 6";
image = "${self}/files/topology-images/zflip6.png";
interfaces.wifi = { };
};
machpizza = mkDevice "machpizza" {
info = "MacBook Pro 2016";
icon = "${self}/files/topology-images/mac.png";
interfaces."eth1" = { };
};
pc = mkDevice "Windows Gaming Server" { pc = mkDevice "Windows Gaming Server" {
info = "i7-4790k, GTX970, 32GB RAM"; info = "i7-4790k, GTX970, 32GB RAM";
image = "${self}/files/topology-images/pc.png"; image = "${self}/files/topology-images/pc.png";
@ -154,6 +175,7 @@
] ]
]; ];
connections.eth2 = mkConnection "printer" "eth1"; connections.eth2 = mkConnection "printer" "eth1";
connections.eth3 = mkConnection "machpizza" "eth1";
}; };
printer = mkDevice "Printer" { printer = mkDevice "Printer" {