Ran nixfmt-tree
Some checks failed
Buill NixOS Configurations / build (carbon) (push) Has been cancelled
Buill NixOS Configurations / build (git) (push) Has been cancelled
Buill NixOS Configurations / build (gospel) (push) Has been cancelled
Buill NixOS Configurations / build (node) (push) Has been cancelled

This commit is contained in:
alejandro-angulo 2026-02-28 21:25:59 -08:00
parent 259c75204d
commit 3edb267414
9 changed files with 153 additions and 160 deletions

View file

@ -75,44 +75,43 @@ in
tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-navigator
]; ];
extraConfig = extraConfig = ''
'' # Scrolling with mouse wheel scrolls output instead of previous commands
# Scrolling with mouse wheel scrolls output instead of previous commands setw -g mouse on
setw -g mouse on
# Open panes in the same directory # Open panes in the same directory
bind c new-window -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}" bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}"
# sessionizer # sessionizer
bind C-o display-popup -E "${pkgs.tmux-sessionizer}/bin/tms" bind C-o display-popup -E "${pkgs.tmux-sessionizer}/bin/tms"
bind C-j display-popup -E "${pkgs.tmux-sessionizer}/bin/tms switch" bind C-j display-popup -E "${pkgs.tmux-sessionizer}/bin/tms switch"
bind C-w display-popup -E "${pkgs.tmux-sessionizer}/bin/tms windows" bind C-w display-popup -E "${pkgs.tmux-sessionizer}/bin/tms windows"
bind C-s command-prompt -p "Rename active session to:" "run-shell '${pkgs.tmux-sessionizer}/bin/tms rename %1'" bind C-s command-prompt -p "Rename active session to:" "run-shell '${pkgs.tmux-sessionizer}/bin/tms rename %1'"
'' ''
+ lib.strings.optionalString config.programs.lazygit.enable '' + lib.strings.optionalString config.programs.lazygit.enable ''
# Open lazygit in a popup # Open lazygit in a popup
# Spins up a new session with a '-lg' suffix (hitting the shortcut # Spins up a new session with a '-lg' suffix (hitting the shortcut
# toggles between attaching and detaching) # toggles between attaching and detaching)
bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-lg ]]" { bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-lg ]]" {
detach-client detach-client
} { } {
display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-lg ${pkgs.lazygit}/bin/lazygit" display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-lg ${pkgs.lazygit}/bin/lazygit"
} }
'' ''
+ lib.strings.optionalString config.programs.btop.enable '' + lib.strings.optionalString config.programs.btop.enable ''
# Open btop in a popup # Open btop in a popup
# Spins up a new session named `btop` (hitting the shortcut # Spins up a new session named `btop` (hitting the shortcut
# toggles between attaching and detaching) # toggles between attaching and detaching)
# NOTE: This overrides the default C-t shortcut (shows time by default) # NOTE: This overrides the default C-t shortcut (shows time by default)
bind C-t if-shell "[[ $(tmux display-message -p '#S') == btop ]]" { bind C-t if-shell "[[ $(tmux display-message -p '#S') == btop ]]" {
detach-client detach-client
} { } {
display-popup -h 90% -w 90% -E "tmux new-session -A -s btop ${pkgs.btop}/bin/btop" display-popup -h 90% -w 90% -E "tmux new-session -A -s btop ${pkgs.btop}/bin/btop"
} }
''; '';
}; };
xdg.configFile."tms/config.toml".source = (pkgs.formats.toml { }).generate "tms-config" tmsConfig; xdg.configFile."tms/config.toml".source = (pkgs.formats.toml { }).generate "tms-config" tmsConfig;

View file

@ -38,16 +38,15 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
recommendedProxySettings = true; recommendedProxySettings = true;
virtualHosts."adguardhome.kilonull.com" = virtualHosts."adguardhome.kilonull.com" = {
{ locations."/" = {
locations."/" = { proxyPass = "http://127.0.0.1:3000";
proxyPass = "http://127.0.0.1:3000";
};
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
}; };
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
};
}; };
networking.firewall = { networking.firewall = {

View file

@ -113,18 +113,17 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts."${server_settings.domain}" = virtualHosts."${server_settings.domain}" = {
{ locations."/" = {
locations."/" = { proxyPass = "http://${server_settings.http_addr}:${toString server_settings.http_port}";
proxyPass = "http://${server_settings.http_addr}:${toString server_settings.http_port}"; proxyWebsockets = true;
proxyWebsockets = true; recommendedProxySettings = true;
recommendedProxySettings = true;
};
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
}; };
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
};
}; };
networking.firewall = { networking.firewall = {

View file

@ -33,63 +33,62 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts = { virtualHosts = {
"minio.kilonull.com" = "minio.kilonull.com" = {
{ extraConfig = ''
extraConfig = '' # Allow special characters in headers
# Allow special characters in headers ignore_invalid_headers off;
ignore_invalid_headers off; # Allow any size file to be uploaded.
# Allow any size file to be uploaded. # Set to a value such as 1000m; to restrict file size to a specific value
# Set to a value such as 1000m; to restrict file size to a specific value client_max_body_size 0;
client_max_body_size 0; # Disable buffering
# Disable buffering proxy_buffering off;
proxy_buffering off; proxy_request_buffering off;
proxy_request_buffering off; '';
'';
locations."/".extraConfig = '' locations."/".extraConfig = ''
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300; proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1 # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Connection ""; proxy_set_header Connection "";
chunked_transfer_encoding off; chunked_transfer_encoding off;
proxy_pass http://localhost:9000; proxy_pass http://localhost:9000;
''; '';
locations."/ui".extraConfig = '' locations."/ui".extraConfig = ''
rewrite ^/ui/(.*) /$1 break; rewrite ^/ui/(.*) /$1 break;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true; proxy_set_header X-NginX-Proxy true;
# This is necessary to pass the correct IP to be hashed # This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP; real_ip_header X-Real-IP;
proxy_connect_timeout 300; proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023 # To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress) # Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string # Uncomment the following line to set the Origin request to an empty string
proxy_set_header Origin ""; proxy_set_header Origin "";
chunked_transfer_encoding off; chunked_transfer_encoding off;
proxy_pass http://localhost:9001; proxy_pass http://localhost:9001;
''; '';
} }
// lib.optionalAttrs (cfg.acmeCertName != "") { // lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true; forceSSL = true;
useACMEHost = cfg.acmeCertName; useACMEHost = cfg.acmeCertName;
}; };
}; };
}; };
}; };

View file

@ -45,20 +45,19 @@ in
nginx = { nginx = {
enable = true; enable = true;
virtualHosts."${cfg.subdomain_name}.${cfg.domain_name}" = virtualHosts."${cfg.subdomain_name}.${cfg.domain_name}" = {
{ serverAliases = [ "${cfg.subdomain_name}" ];
serverAliases = [ "${cfg.subdomain_name}" ]; locations."/".extraConfig = ''
locations."/".extraConfig = '' proxy_pass http://localhost:${toString config.services.nix-serve.port};
proxy_pass http://localhost:${toString config.services.nix-serve.port}; proxy_set_header Host $host;
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; '';
''; }
} // lib.optionalAttrs (cfg.acmeCertName != "") {
// lib.optionalAttrs (cfg.acmeCertName != "") { forceSSL = true;
forceSSL = true; useACMEHost = cfg.acmeCertName;
useACMEHost = cfg.acmeCertName; };
};
}; };
}; };

View file

@ -25,20 +25,19 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
recommendedProxySettings = true; recommendedProxySettings = true;
virtualHosts."octoprint.kilonull.com" = virtualHosts."octoprint.kilonull.com" = {
{ locations."/" = {
locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.octoprint.port}";
proxyPass = "http://127.0.0.1:${toString config.services.octoprint.port}"; proxyWebsockets = true;
proxyWebsockets = true; extraConfig = ''
extraConfig = '' client_max_body_size 512m;
client_max_body_size 512m; '';
'';
};
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
}; };
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
};
}; };
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [

View file

@ -30,23 +30,22 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts."sunshine.kilonull.com" = virtualHosts."sunshine.kilonull.com" = {
{ locations."/" = {
locations."/" = { recommendedProxySettings = true;
recommendedProxySettings = true; # NOTE: Sunshine is a little weird since it requires multiple
# NOTE: Sunshine is a little weird since it requires multiple # ports. You configure it with a base port and the web UI +1 from
# ports. You configure it with a base port and the web UI +1 from # the base port.
# the base port. proxyPass = "https://127.0.0.1:${toString (config.services.sunshine.settings.port + 1)}";
proxyPass = "https://127.0.0.1:${toString (config.services.sunshine.settings.port + 1)}"; extraConfig = ''
extraConfig = '' proxy_ssl_verify off;
proxy_ssl_verify off; '';
'';
};
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
}; };
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
};
}; };
}; };
} }

View file

@ -147,19 +147,18 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts."teslamate.kilonull.com" = virtualHosts."teslamate.kilonull.com" = {
{ locations."/" = {
locations."/" = { recommendedProxySettings = true;
recommendedProxySettings = true; proxyWebsockets = true;
proxyWebsockets = true; # TODO: Make port configurable.
# TODO: Make port configurable. proxyPass = "http://127.0.0.1:4000";
proxyPass = "http://127.0.0.1:4000";
};
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
}; };
}
// lib.optionalAttrs (cfg.acmeCertName != "") {
forceSSL = true;
useACMEHost = cfg.acmeCertName;
};
}; };
networking.firewall.allowedTCPPorts = [ 4000 ]; networking.firewall.allowedTCPPorts = [ 4000 ];

View file

@ -58,6 +58,7 @@ in
shell = pkgs.zsh; shell = pkgs.zsh;
extraGroups = [ "wheel" ] ++ cfg.extraGroups; extraGroups = [ "wheel" ] ++ cfg.extraGroups;
} // cfg.extraOptions; }
// cfg.extraOptions;
}; };
} }