Compare commits

...

15 Commits

Author SHA1 Message Date
Random936
5491cfc0a2 Some pinentry setup; updated mnemosyne disk to use labels 2026-05-18 09:42:06 -04:00
Random936
dd1d998fdf Updates to bash-scripts; updating flake.lock 2026-05-18 09:23:34 -04:00
Random936
bafb77726c Moved keyring setup to shared; added mwdblib to mnemosyne 2026-05-07 22:04:23 -04:00
Random936
50a1694767 Keyring setup; some general fixes; bash scripts update 2026-05-07 21:59:33 -04:00
Random936
0109b80871 Added llama-cpp to system packages 2026-05-04 12:00:00 -04:00
Random936
3849ccdf8f Disabled ZSH syntax highlighting; updated ollama host to be wildcard 2026-04-26 13:04:37 -04:00
Random936
0c0fbb5e02 Updated development home module to contain AI tools 2026-04-26 09:31:50 -04:00
Random936
0f9900c878 Fixed bug with atuin daemon 2026-04-25 18:27:55 -04:00
Random936
8ecb4d3962 Updated AI host to use 2 HDDs 2026-04-25 18:18:00 -04:00
Random936
f8fb28d560 Updated zsh config to make terminal more performant 2026-04-25 18:16:53 -04:00
Random936
b6a10bebc4 Removing HDD from mnemosyne hardware config 2026-04-25 12:39:38 -04:00
Random936
9ec14ce9fa Updates to config following flake.lock update 2026-04-25 10:33:01 -04:00
Random936
76e69f0bc8 Switching to .lan from .local to prevent mDNS issues 2026-04-24 20:10:17 -04:00
Random936
75d6d62271 Adding some AI packages to mindforge 2026-04-24 19:39:05 -04:00
Random936
90743455c9 Updated flake.nix 2026-04-20 12:22:06 -04:00
17 changed files with 113 additions and 90 deletions

View File

@@ -37,15 +37,18 @@
services.ollama = { services.ollama = {
enable = true; enable = true;
host = "0.0.0.0";
openFirewall = true;
# Make sure this path is created and has the permissions of ollama:ollama.
models = "/mnt/storage/models";
environmentVariables = {
OLLAMA_CONTEXT_LENGTH = "8192";
};
package = pkgs.ollama-cuda.override { package = pkgs.ollama-cuda.override {
cudaArches = [ cudaArches = [
"61" "61"
]; ];
}; };
openFirewall = true;
environmentVariables = {
OLLAMA_CONTEXT_LENGTH = "8192";
};
}; };
# NGINX Reverse Proxy Setup # NGINX Reverse Proxy Setup
@@ -54,7 +57,7 @@
enable = true; enable = true;
virtualHosts = { virtualHosts = {
# Jellyfin # Jellyfin
"mindforge.randomctf.local" = { "mindforge.randomctf.lan" = {
extraConfig = '' extraConfig = ''
access_log /var/log/nginx/access.mindforge.log; access_log /var/log/nginx/access.mindforge.log;
''; '';
@@ -77,4 +80,8 @@
}; };
}; };
}; };
environment.systemPackages = with pkgs; [
(llama-cpp.override { cudaSupport = true; })
];
} }

View File

@@ -23,7 +23,7 @@
settings.server = { settings.server = {
http_addr = "127.0.0.1"; http_addr = "127.0.0.1";
http_port = 3000; http_port = 3000;
domain = "grafana.randomctf.local"; domain = "grafana.randomctf.lan";
}; };
}; };
@@ -31,19 +31,19 @@
enable = true; enable = true;
virtualHosts = { virtualHosts = {
# Grafana # Grafana
"grafana.randomctf.local" = { "grafana.randomctf.lan" = {
extraConfig = '' extraConfig = ''
access_log /var/log/nginx/access.grafana.log; access_log /var/log/nginx/access.grafana.log;
''; '';
locations."/".extraConfig = '' locations."/".extraConfig = ''
proxy_set_header Host grafana.randomctf.local; proxy_set_header Host grafana.randomctf.lan;
proxy_pass http://localhost:3000/; proxy_pass http://localhost:3000/;
''; '';
}; };
# Prometheus # Prometheus
"prometheus.randomctf.local" = { "prometheus.randomctf.lan" = {
extraConfig = '' extraConfig = ''
access_log /var/log/nginx/access.prometheus.log; access_log /var/log/nginx/access.prometheus.log;
''; '';

View File

@@ -12,4 +12,8 @@
]; ];
users.users.mnemosyne = import ./user.nix; users.users.mnemosyne = import ./user.nix;
environment.systemPackages = with pkgs; [
python313Packages.mwdblib
];
} }

View File

@@ -1,28 +1,30 @@
{ ip_address, hostname, open_ports, lib }: let { ip_address, hostname, open_ports, lib, }: let
gateway_ip = "192.168.100.1"; gateway_ip = "192.168.100.1";
in { in {
# Configure hostname. # Configure hostname.
networking.hostName = hostname; networking.hostName = hostname;
# Bug fix
systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false;
# DNS config
networking.nameservers = [ gateway_ip ];
# Allowed Ports
networking.firewall.allowedTCPPorts = open_ports;
# Conigure a static IP address. # Conigure a static IP address.
networking.useDHCP = false; networking.useDHCP = false;
networking.useNetworkd = true; networking.useNetworkd = true;
networking.enableIPv6 = false; networking.enableIPv6 = false;
# Bug fix
systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false;
networking.defaultGateway = {
address = gateway_ip;
interface = "enp6s18";
};
networking.nameservers = [ gateway_ip ];
networking.firewall.allowedTCPPorts = open_ports;
networking.interfaces.enp6s18.ipv4.addresses = [ networking.interfaces.enp6s18.ipv4.addresses = [
{ {
address = ip_address; address = ip_address;
prefixLength = 24; prefixLength = 24;
} }
]; ];
networking.defaultGateway = {
address = gateway_ip;
interface = "enp6s18";
};
} }

View File

@@ -50,7 +50,7 @@
environment.variables.GDK_SCALE = "0.5"; environment.variables.GDK_SCALE = "0.5";
# Ignore laptop lid closing when connected to power. # Ignore laptop lid closing when connected to power.
services.logind.lidSwitchExternalPower = "ignore"; services.logind.settings.Login.HandleLidSwitchExternalPower = "ignore";
# Enable bluetooth # Enable bluetooth
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@@ -71,13 +71,6 @@
# For RTL-SDR # For RTL-SDR
hardware.rtl-sdr.enable = true; hardware.rtl-sdr.enable = true;
# Setup Pinentry
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gtk2;
enableSSHSupport = true;
};
# Setup protonmail bridge # Setup protonmail bridge
systemd.user.services.protonmail-bridge = { systemd.user.services.protonmail-bridge = {
description = "Protonmail Bridge"; description = "Protonmail Bridge";
@@ -107,19 +100,19 @@
zlib zlib
dbus dbus
python3 python3
xorg.libX11 libx11
xorg.libXext libxext
xorg.libXrender libxrender
xorg.libXrandr libxrandr
xorg.libXcursor libxcursor
xorg.libXi libxi
xorg.libxcb libxcb
xorg.xcbutilwm libxcb-wm
xorg.xcbutil libxcb-util
xorg.xcbutilimage libxcb-image
xorg.xcbutilkeysyms libxcb-keysyms
xorg.xcbutilrenderutil libxcb-render-util
xorg.xcbutilcursor libxcb-cursor
]; ];
}; };
} }

View File

@@ -53,6 +53,17 @@
})) }))
]; ];
# Setup Pinentry
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gtk2;
enableSSHSupport = true;
};
# Keyring Setup
services.gnome.gnome-keyring.enable = true;
security.pam.services.login.enableGnomeKeyring = true;
# Enable services. # Enable services.
services.openssh.enable = true; services.openssh.enable = true;
services.tailscale.enable = true; services.tailscale.enable = true;
@@ -62,7 +73,6 @@
services.gvfs.enable = true; services.gvfs.enable = true;
services.tumbler.enable = true; services.tumbler.enable = true;
# Enable docker service. # Enable docker service.
virtualisation.docker.enable = true; virtualisation.docker.enable = true;

30
flake.lock generated
View File

@@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775077333, "lastModified": 1778905220,
"narHash": "sha256-OXcxobt7lBkh1B8AjwreU+24myhtKpqeLfAeIyNLFY8=", "narHash": "sha256-ox/5IHc8uwy6UTw6N7Shp6uCHIgu/S2PsWeuXsOHSo8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "49ca96b2714c5931e17401eff87f3edd42d2b0f2", "rev": "d1686dc7d36cbd1234cb226ad6ef97e882716acb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775360939, "lastModified": 1778937626,
"narHash": "sha256-XUBlSgUFdvTh6+K5LcI5mJu5F5L8scmJDMRiZM484TM=", "narHash": "sha256-OzLAT0G96WlT/WWaNdkTvQ7E9ohq9h0xQTdL1oe3gm0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2097a5c82bdc099c6135eae4b111b78124604554", "rev": "d5ece85b6d3d6b5ab5a514b2785fb952b629bfea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -48,11 +48,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775365369, "lastModified": 1778393439,
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=", "narHash": "sha256-mOtQxUjtKaPHLeoLOY/YEDctmud1X9KwJr4kE1MJ3Wc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3", "rev": "01466c414c7357ae2ce32be4a272a7c69e94ab5f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -63,11 +63,11 @@
}, },
"nix-unstable": { "nix-unstable": {
"locked": { "locked": {
"lastModified": 1775036866, "lastModified": 1778443072,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -79,11 +79,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1775421654, "lastModified": 1778937455,
"narHash": "sha256-VmXMI4BdI3arAn55/tDCB5gDcRk3JWF3JRp6tMi7i10=", "narHash": "sha256-1QMHzgrJfnMh4Bg6NgkZejexiTtuV+jpZT9sohuqLB4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "05a5d2344a57fc43b71b4ae721cabea056081d70", "rev": "534de2b33df9f73253082221de221bd68c5a77c2",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -79,14 +79,19 @@
./home/modules/hacking.nix ./home/modules/hacking.nix
]; ];
mindforge = mkHomeUnstableConfig "mindforge" [
./home/headless-nixos.nix
./home/modules/development.nix
];
mnemosyne = mkHomeConfig "mnemosyne" [ mnemosyne = mkHomeConfig "mnemosyne" [
./home/headless-nixos.nix ./home/headless-nixos.nix
./home/modules/development.nix ./home/modules/development.nix
]; ];
media = mkHomeConfig "media" [ ./home/headless-nixos.nix ]; media = mkHomeConfig "media" [ ./home/headless-nixos.nix ];
logging = mkHomeConfig "logging" [ ./home/headless-nixos.nix ]; logging = mkHomeConfig "logging" [ ./home/headless-nixos.nix ];
mindforge = mkHomeConfig "mindforge" [ ./home/headless-nixos.nix ];
}; };
}; };
} }

View File

@@ -24,6 +24,12 @@
options = [ "fmask=0022" "dmask=0022" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
# The label "storage" can be set using e2label.
fileSystems."/mnt/storage" = {
device = "/dev/disk/by-label/storage";
fsType = "ext4";
};
swapDevices = [ ]; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@@ -18,13 +18,9 @@
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/sampledb" = { # The label "storage" can be set using e2label.
device = "/dev/disk/by-uuid/7d70bfdb-510f-4f30-969f-d4ac59175719";
fsType = "ext4";
};
fileSystems."/mnt/archive" = { fileSystems."/mnt/archive" = {
device = "/dev/disk/by-uuid/66103455-9fcd-4b5b-9735-37b85a51019d"; device = "/dev/disk/by-label/storage";
fsType = "ext4"; fsType = "ext4";
}; };

View File

@@ -16,6 +16,10 @@
zig zig
zls zls
# AI tools
opencode
claude-code
# Other # Other
python3 python3
ansible ansible

View File

@@ -23,8 +23,6 @@
ccls ccls
yaml-language-server yaml-language-server
python3Packages.python-lsp-server python3Packages.python-lsp-server
nodePackages.typescript-language-server
nodePackages.vscode-json-languageserver
]; ];
programs = { programs = {

View File

@@ -35,12 +35,15 @@
}; };
}; };
gtk = { gtk = let
enable = true;
theme = { theme = {
name = "Materia-dark"; name = "Materia-dark";
package = pkgs.materia-theme; package = pkgs.materia-theme;
}; };
in {
enable = true;
inherit theme;
gtk4.theme = theme;
}; };
xdg.mimeApps = { xdg.mimeApps = {

View File

@@ -39,6 +39,7 @@
exiftool exiftool
pwntools pwntools
flare-floss flare-floss
python313Packages.mwdblib
# Wordlists # Wordlists
(wordlists.override { (wordlists.override {

View File

@@ -2,6 +2,9 @@
programs.neovim = { programs.neovim = {
enable = true; enable = true;
vimAlias = true; vimAlias = true;
withPython3 = true;
withRuby = true;
coc = { coc = {
enable = true; enable = true;
settings = { settings = {
@@ -23,7 +26,6 @@
coc-svelte coc-svelte
coc-clangd coc-clangd
coc-docker coc-docker
coc-tsserver
coc-rust-analyzer coc-rust-analyzer
]; ];

View File

@@ -9,24 +9,22 @@
eza.enable = true; eza.enable = true;
tealdeer = { tealdeer = {
enable = true; enable = true;
settings = { settings.updates.auto_update = true;
updates.auto_update = true;
};
}; };
atuin = { atuin = {
enable = true; enable = true;
daemon.enable = true;
enableZshIntegration = true; enableZshIntegration = true;
settings = { settings = {
enter_accept = false; enter_accept = false;
filter_mode = "host"; filter_mode = "host";
filter_mode_shell_up_key_binding = "session"; filter_mode_shell_up_key_binding = "session";
}; };
}; };
zsh = { zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true;
history.size = 100000000; history.size = 100000000;
shellAliases = { shellAliases = {
@@ -48,7 +46,7 @@
r330-media = "ssh media@192.168.100.40"; r330-media = "ssh media@192.168.100.40";
r330-logging = "ssh logging@192.168.100.41"; r330-logging = "ssh logging@192.168.100.41";
mnemosyne = "ssh mnemosyne@192.168.100.42"; mnemosyne = "ssh mnemosyne@192.168.100.42";
mindforge = "ssh mindforge@mindforge.randomctf.local"; mindforge = "ssh mindforge@mindforge.randomctf.lan";
# Nix Specific aliases # Nix Specific aliases
update-config = "sudo nixos-rebuild switch --flake ~/dotfiles"; update-config = "sudo nixos-rebuild switch --flake ~/dotfiles";
@@ -83,18 +81,12 @@
src = ../../assets; src = ../../assets;
file = ".p10k.zsh"; file = ".p10k.zsh";
} }
{
name = "powerlevel10k";
src = pkgs.zsh-powerlevel10k;
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
}
]; ];
zplug = {
enable = true;
plugins = [
{ name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; }
];
};
}; };
}; };
home.file = {
".functions.zsh".source = ../../assets/.functions.zsh;
};
} }