Compare commits

...

8 commits

Author SHA1 Message Date
4744f39ad7 Merge branch 'main' of codeberg.org:muon/home 2026-01-01 17:01:41 +00:00
debd6d38cd Fix dns 2026-01-01 17:00:06 +00:00
02e6c06f6f Remove unused 2026-01-01 16:45:39 +00:00
1aec25fdaa Update nginx 2026-01-01 16:39:28 +00:00
3e2e11bb33 Update transmission 2026-01-01 16:00:16 +00:00
acbf82b8b9 Merge branch 'main' of codeberg.org:muon/home 2026-01-01 15:53:12 +00:00
7bfff96a5c Update php 2026-01-01 15:52:57 +00:00
cbc44a5eba Add new options to muon 2026-01-01 15:38:04 +00:00
7 changed files with 134 additions and 110 deletions

View file

@ -1,5 +1,11 @@
{ pkgs, lib, osConfig,... }: {
let cfg = osConfig.mods; in { pkgs,
lib,
osConfig,
...
}: let
cfg = osConfig.mods;
in {
# Modules # Modules
mods.xdg.enable = true; mods.xdg.enable = true;
mods.social.enable = true; mods.social.enable = true;
@ -11,17 +17,22 @@ let cfg = osConfig.mods; in {
mods.desktop.development.enable = true; mods.desktop.development.enable = true;
mods.desktop.productivity.enable = true; mods.desktop.productivity.enable = true;
mods.desktop.media.enable = true; mods.desktop.media.enable = true;
mods.zen.enable = true;
mods.obsidian.enable = true;
# Hardware preferences # Hardware preferences
## Monitors ## Monitors
xsession.windowManager.i3.config.workspaceOutputAssign = [{ xsession.windowManager.i3.config.workspaceOutputAssign = [
{
workspace = "1"; workspace = "1";
output = "${cfg.monitors.primary.name}"; output = "${cfg.monitors.primary.name}";
} { }
{
workspace = "2"; workspace = "2";
output = "${cfg.monitors.secondary.name}"; output = "${cfg.monitors.secondary.name}";
}]; }
];
services.autorandr.enable = true; services.autorandr.enable = true;
programs.autorandr = { programs.autorandr = {
enable = true; enable = true;

View file

@ -14,7 +14,7 @@
pavucontrol pavucontrol
# Video # Video
(callPackage ./packages/stremio-linux-shell.nix {}) # (callPackage ./packages/stremio-linux-shell.nix {})
# Podcasts # Podcasts
gpodder gpodder

View file

@ -17,8 +17,8 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
# ISO downloader # ISO downloader
qbittorrent qbittorrent
xd # xd
biglybt # biglybt
# transmission_4-gtk # transmission_4-gtk
# email # email

View file

@ -1,10 +1,13 @@
{ pkgs, lib, config, ... }: {
pkgs,
let lib,
config,
...
}: let
cfg = config.mods; cfg = config.mods;
wg = cfg.wireguard; wg = cfg.wireguard;
in
in with lib; { with lib; {
options.mods = { options.mods = {
i2p.enable = mkEnableOption "enables i2p network"; i2p.enable = mkEnableOption "enables i2p network";
tailscale.enable = mkEnableOption "enables tailscale"; tailscale.enable = mkEnableOption "enables tailscale";
@ -19,7 +22,8 @@ in with lib; {
username = "${config.mods.user.name}"; username = "${config.mods.user.name}";
folder = "${config.users.users.${username}.home}/documents/openvpn/"; folder = "${config.users.users.${username}.home}/documents/openvpn/";
file = "${config.mods.user.name}.ovpn"; file = "${config.mods.user.name}.ovpn";
in mkOption { in
mkOption {
description = "the config location"; description = "the config location";
default = "${folder}${file}"; default = "${folder}${file}";
}; };
@ -28,7 +32,7 @@ in with lib; {
config = { config = {
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# networking.nameservers = [ "45.90.28.97" "45.90.30.97" ]; # networking.nameservers = [ "45.90.28.97" "45.90.30.97" ];
networking.nameservers = [ "194.242.2.4#base.dns.mullvad.net" ]; networking.nameservers = ["194.242.2.4#base.dns.mullvad.net"];
# services.resolved = { # services.resolved = {
# enable = true; # enable = true;
# dnssec = "false"; # dnssec = "false";
@ -65,27 +69,28 @@ in with lib; {
}; };
}; };
networking.firewall.allowedUDPPorts = [ 51820 16261 ]; networking.firewall.allowedUDPPorts = [51820 16261];
networking.wg-quick.interfaces = lib.mkIf (wg.id != null) { networking.wg-quick.interfaces = lib.mkIf (wg.id != null) {
wg0 = { wg0 = {
address = [ address = [
"10.0.0.${toString wg.id}/24" "10.0.0.${toString wg.id}/24"
"fdc9:281f:04d7:9ee9::${toString wg.id}/64" "fdc9:281f:04d7:9ee9::${toString wg.id}/64"
]; ];
dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ]; # dns = ["10.0.0.1" "fdc9:281f:04d7:9ee9::1"];
mtu = 1500; mtu = 1500;
privateKeyFile = "/home/muon/wireguard-keys/private"; privateKeyFile = "/home/muon/wireguard-keys/private";
peers = [{ peers = [
{
publicKey = "2RF8GmTZwQdzVm2l2piYy6U0qiMU3wSxC7Lt8urAjwA="; publicKey = "2RF8GmTZwQdzVm2l2piYy6U0qiMU3wSxC7Lt8urAjwA=";
presharedKeyFile = presharedKeyFile = "/home/muon/wireguard-keys/psk-${config.networking.hostName}";
"/home/muon/wireguard-keys/psk-${config.networking.hostName}"; allowedIPs = ["10.0.0.${toString wg.id}/24"];
allowedIPs = [ "10.0.0.${toString wg.id}/24" ];
# allowedIPs = [ "0.0.0.0/0" ]; # allowedIPs = [ "0.0.0.0/0" ];
# ip route add 93.95.230.11 via 192.168.0.1 # ip route add 93.95.230.11 via 192.168.0.1
endpoint = "93.95.230.11:51820"; endpoint = "93.95.230.11:51820";
persistentKeepalive = 25; persistentKeepalive = 25;
}]; }
];
}; };
}; };
@ -98,6 +103,5 @@ in with lib; {
# gateway = # gateway =
# "${pkgs.networkmanager}/bin/nmcli dev show ${interface} | ${pkgs.gnugrep}/bin/fgrep IP4.GATEWAY | ${pkgs.awk}/bin/awk {print $2}"; # "${pkgs.networkmanager}/bin/nmcli dev show ${interface} | ${pkgs.gnugrep}/bin/fgrep IP4.GATEWAY | ${pkgs.awk}/bin/awk {print $2}";
}; };
} }

View file

@ -40,6 +40,7 @@ in with lib; {
openFirewall = true; openFirewall = true;
openRPCPort = true; openRPCPort = true;
port = arr.torrent.port; port = arr.torrent.port;
package = pkgs.transmission_4;
settings = { settings = {
download-dir = "/storage1/download"; download-dir = "/storage1/download";
rpc-port = arr.torrent.port; rpc-port = arr.torrent.port;

View file

@ -23,7 +23,7 @@ in with lib; {
inherit port; inherit port;
enable = true; enable = true;
root = cfg.grav.location; root = cfg.grav.location;
phpPackage = pkgs.php81; phpPackage = pkgs.php83;
}; };
users.users.${config.mods.user.name}.extraGroups = lib.mkAfter [ "grav" ]; users.users.${config.mods.user.name}.extraGroups = lib.mkAfter [ "grav" ];
}; };

View file

@ -82,7 +82,7 @@ in
add_header X-XSS-Protection "1; mode=block" always; add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always; add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always; add_header Content-Security-Policy "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self'; script-src 'self'; object-src 'none'; base-uri 'none';"; always;
add_header Permissions-Policy "interest-cohort=()" always; add_header Permissions-Policy "interest-cohort=()" always;
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
''; '';
@ -99,6 +99,14 @@ in
"/" = { "/" = {
proxyPass = "http://${cfg.ip}:${toString port}/"; proxyPass = "http://${cfg.ip}:${toString port}/";
proxyWebsockets = true; proxyWebsockets = true;
extraConfig =
# sh
''
client_max_body_size 50000M;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
'';
}; };
}; };
in in