Compare commits

...

2 commits

Author SHA1 Message Date
Jo
8edd189f07 Add packettracer home module
Some checks failed
Trufflehog: check for exposed secrets / Run trufflehog (push) Has been cancelled
Nix: check for unused code / Run deadnix (push) Has been cancelled
Nix: validate flake / Validate x86_64-linux (push) Has been cancelled
2025-09-04 14:20:41 +02:00
Jo
1e94d11ce0 📝 Improve README readability and completeness 2025-09-04 14:19:17 +02:00
4 changed files with 41 additions and 5 deletions

View file

@ -43,6 +43,7 @@ Secrets are managed by the [sops-nix](https://github.com/Mic92/sops-nix) nixos/h
- General secrets are stored within the `secrets` directory.
- System specific secrets are stored within their respective `systems/<system_type>/<system_name>/secrets` directory.
- User secrets are stored within their respective `homes/<system_type>/<user_name>/secrets` directory.
The following command may be used to convert the SSH host key of a new machine to an age key:
@ -66,7 +67,7 @@ You may also encrypt arbitrary binary formats, like .cfg, using the following co
nix-shell -p sops --run "sops -e original_file.cfg > secrets/encrypted_file.cfg"
```
Lastly, when adding new systems, make sure to update any required secret files with the following command:
Finally, when adding new systems, make sure to update any required secret files with the following command:
```sh
nix-shell -p sops --run "sops updatekeys secrets/example.yaml"
@ -117,7 +118,7 @@ Some of my future goals for this flake are:
- Further refining my usage of the Nix language, through language best-practices and CLI dev tools.
## 🏗️ Structure
The structure this flake aims to build on is relatively simple to grasp.
This flake follows an opinionated directory structure, described below.
```
flake.nix --> The flake.

View file

@ -0,0 +1,9 @@
{
...
}:
{
puzzlevision.apps.packettracer = {
enable = true;
binaryPath = ./Packet_Tracer822_amd64_signed.deb;
};
}

View file

@ -8,6 +8,7 @@
./apps/discord
./apps/firefox
./apps/vicinae
./apps/packettracer
];
puzzlevision = {
@ -28,9 +29,6 @@
};
};
# Notify on systembus events
services.systembus-notify.enable = true;
sops.secrets.wakatime-cfg = {
format = "binary";
sopsFile = ./secrets/wakatime.cfg;

View file

@ -0,0 +1,28 @@
{
config,
self,
pkgs,
lib,
...
}:
let
inherit (self) namespace;
inherit (self.lib) mkOpt;
inherit (lib) mkEnableOption types mkIf;
cfg = config.${namespace}.apps.packettracer;
in
{
options.${namespace}.apps.packettracer = {
enable = mkEnableOption "the Cisco Packettracer application, a network emulator.";
binaryPath =
mkOpt types.path null
"The path of the Packettracer binary. Has to be downloaded from Cisco Netacad";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
(ciscoPacketTracer8.override { packetTracerSource = cfg.binaryPath; })
];
};
}