renamed mod -> modules in hosts->kepler | add /etc/nixos to git as safe dir

This commit is contained in:
2026-07-03 21:19:32 +02:00
parent 8450206870
commit 77a3a03daf
24 changed files with 103 additions and 2 deletions
+25
View File
@@ -0,0 +1,25 @@
_:
{
boot = {
loader = {
systemd-boot = {
enable = true;
};
efi = {
canTouchEfiVariables = true;
};
};
initrd.systemd.enable = true;
supportedFilesystems = [ "zfs" ];
zfs = {
devNodes = "/dev/disk/by-id";
forceImportRoot = true;
forceImportAll = true;
};
kernelParams = [ "scsi_mod.scan=sync" "rootdelay=10" "zfs.zfs_arc_max=34359738368" ];
extraModprobeConfig = ''
options scsi_mod scan=sync
'';
};
}
+17
View File
@@ -0,0 +1,17 @@
_:
{
imports = [
./boot.nix
./networking.nix
./users.nix
./gnupg.nix
./pkgs.nix
./system.nix
./ssh.nix
./time.nix
./jellyfin.nix
./shell.nix
./freedom/default.nix
./docker/default.nix
];
}
+21
View File
@@ -0,0 +1,21 @@
{ config, pkgs, ... }:
{
virtualisation = {
oci-containers = {
backend = "docker";
};
docker = {
enable = true;
enableOnBoot = true;
rootless = {
enable = true;
setSocketVariable = true;
};
};
};
imports = [
./gluetun.nix
./qbittorrent.nix
./jdownloader.nix
];
}
+56
View File
@@ -0,0 +1,56 @@
{ config, pkgs, ... }:
let
protonvpnConfig = {
VPN_SERVICE_PROVIDER = "protonvpn";
VPN_PORT_FORWARDING = "on";
VPN_PORT_FORWARDING_PROVIDER="protonvpn";
};
gluetunConfig = {
SHADOWSOCKS = "on";
HTTPPROXY = "on";
HTTPPROXY_STEALTH = "on";
FIREWALL_OUTBOUND_SUBNETS="10.11.0.0/24";
DNS_UPSTREAM_RESOLVERS = "cloudflare";
BLOCK_SURVEILLANCE="on";
BLOCK_ADS="on";
BLOCK_MALICIOUS="on";
};
in
{
virtualisation.oci-containers.containers = {
# protonvpn
pvpn-de-01 = {
autoStart = true;
image = "qmcgaw/gluetun:latest";
capabilities = { NET_ADMIN = true; };
devices = [ "/dev/net/tun:/dev/net/tun" ];
environmentFiles = [
"/etc/secrets/gluetun.env"
];
environment = {
# GLUETUN ENV VARS #
VPN_TYPE="openvpn";
SERVER_COUNTRIES = "Germany";
VPN_INTERFACE="tun0";
} // protonvpnConfig // gluetunConfig;
ports = [
# gluetun
"8000:8000"
"7001:8388/tcp"
"7001:8388/udp"
"8001:8888"
# qbittorrent
"8080:8080"
"6881:6881/tcp"
"6881:6881/udp"
# jdownloader
"5800:5800"
];
};
};
}
@@ -0,0 +1,22 @@
_:
{
virtualisation.oci-containers.containers = {
# qbittorrent
jdownloader = {
autoStart = true;
image = "jlesage/jdownloader-2:latest";
networks = [
"container:pvpn-de-01"
];
environment = {
TZ="Europe/Berlin";
KEEP_APP_RUNNING="1";
DARK_MODE="1";
};
volumes = [
"/srv/docker/jdownloader/config:/config:rw"
"/srv/docker/jdownloader/downloads:/output:rw"
];
};
};
}
@@ -0,0 +1,21 @@
_:
{
virtualisation.oci-containers.containers = {
# qbittorrent
qbittorrent = {
autoStart = true;
image = "qbittorrentofficial/qbittorrent-nox:latest";
networks = [
"container:pvpn-de-01"
];
environment = {
WEBUI_PORT = "8080";
TZ="Europe/Berlin";
};
volumes = [
"/srv/docker/qbittorrent/config:/config"
"/srv/docker/qbittorrent/downloads:/downloads"
];
};
};
}
+9
View File
@@ -0,0 +1,9 @@
_:
{
imports = [
./invidious.nix
./nitter.nix
./tor.nix
./unbound.nix
];
}
@@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
services = {
invidious = {
enable = true;
port = 3001;
};
};
}
+14
View File
@@ -0,0 +1,14 @@
{ config, pkgs, ... }:
{
services = {
nitter = {
enable = true;
server = {
https = true;
port = 3002;
hostname = "nitter twitter";
};
};
};
}
+15
View File
@@ -0,0 +1,15 @@
_:
{
services.tor = {
enable = true;
enableGeoIP = true;
client = {
enable = true;
socksListenAddress = {
IsolateDestAddr = true;
addr = "10.11.0.10";
port = 9050;
};
};
};
}
+28
View File
@@ -0,0 +1,28 @@
_:
{
services.unbound = {
enable = true;
enableRootTrustAnchor = true;
settings = {
server = {
interface = [ "127.0.0.1" "10.11.0.10" ];
access-control = [
"127.0.0.0/8 allow"
"10.11.0.0/24 allow"
];
prefetch = true;
prefetch-key = true;
qname-minimisation = true;
hide-identity = true;
hide-version = true;
harden-glue = true;
harden-below-nxdomain = true;
harden-dnssec-stripped = true;
};
};
};
}
+4
View File
@@ -0,0 +1,4 @@
_:
{
}
+8
View File
@@ -0,0 +1,8 @@
_:
{
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
}
+10
View File
@@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
home = {
username = "user";
homeDirectory = "/home/user";
enableNixpkgsReleaseCheck = false;
stateVersion = "26.05";
};
}
+9
View File
@@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
services = {
jellyfin = {
enable = true;
openFirewall = false;
};
};
}
+22
View File
@@ -0,0 +1,22 @@
_:
{
networking = {
hostName = "kepler";
hostId = "a984053d";
networkmanager = { enable = true; };
firewall = { enable = false; };
interfaces = {
eno1 = {
ipv4.addresses = [{
address = "10.11.0.10";
prefixLength = 24;
}];
};
};
defaultGateway = {
address = "10.11.0.1";
interface = "eno1";
};
};
}
+19
View File
@@ -0,0 +1,19 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
vim
wget
git
curl
fastfetch
net-tools
ethtool
dhcpcd
dig
usbutils
dhcpcd
host
dnslookup
drill
];
}
+100
View File
@@ -0,0 +1,100 @@
{ config, pkgs, ... }:
{
programs = {
bash = {
enable = true;
enableLsColors = true;
completion = {
enable = true;
package = pkgs.bash-completion;
};
promptInit = ''
PS1="(\h) [\u:\$PWD] % "
'';
shellAliases = {
"mount" = "doas mount --mkdir -v $@";
"mkdir" = "mkdir -pv";
"cp" = "cp -rv";
"mv" = "mv -v $@";
"rm" = "rm -v $@ -I";
"ls" = "${pkgs.eza}/bin/eza --icons -l";
"http" = "${pkgs.python3}/bin/python3 -m http.server 1337";
"sudo" = "doas";
"myip" = "curl -sSL icanhazip.com";
"update" = "doas nixos-rebuild switch";
"f" = "fastfetch";
};
};
git = {
enable = true;
config = {
init = {
defaultBranch = "main";
safe.directory = "/etc/nixos";
};
url = {
"https://github.com" = {
insteadOf = [
"github:"
];
};
};
};
};
tmux = {
enable = true;
keyMode = "vi";
aggressiveResize = true;
terminal = "tmux-256color";
extraConfig = ''
unbind C-b
# unbind t
set -g prefix C-space
bind C-space send-prefix
bind r source-file /etc/tmux.conf
setw -g mode-keys vi
setw -g mouse on
# make ctrl + arrow keys working
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
set -g xterm-keys on
bind-key -n S-Left select-pane -L
bind-key -n S-Down select-pane -D
bind-key -n S-Up select-pane -U
bind-key -n S-Right select-pane -R
bind-key -n C-t new-window "#{pane_current_path}"
bind t new-window
bind-key -n M-w previous-window
bind-key -n M-e next-window
set -g base-index 1
set -g renumber-windows on
set-window-option -g clock-mode-colour colour196
set -g status-bg black
set -g status-fg white
set -g status-position bottom
set -g status-interval 1
set -g status-left-length 64
set -g status-left "#[bg=colour196,fg=black,bold] [#S] #[bg=black,fg=colour196,nobold,noitalics,nounderscore] "
set -g status-right-length 64
set -g status-right "#[bg=black,fg=black]#[bg=black,fg=white] #{pane_title} #[bg=black,fg=colour196,bold]#[bg=colour196,fg=black,bold] %a %d %b #[fg=black,bold]%H:%M:%S "
set-window-option -g window-status-current-format "#[bg=colour196,fg=black,nobold,noitalics,nounderscore]#[bg=colour196,fg=black,bold] #I #[bg=colour196,fg=black,bold] #W#{?window_zoomed_flag,*Z,} #[bg=black,fg=colour196,nobold,noitalics,nounderscore]"
set-window-option -g window-status-format "#[bg=black,fg=black,noitalics]#[bg=black,fg=white] #I #[bg=black,fg=white] #W #[bg=black,fg=black,noitalics]"
bind - split-window
bind \\ split-window -h
'';
};
};
}
+8
View File
@@ -0,0 +1,8 @@
_:
{
services = {
openssh = {
enable = true;
};
};
}
+7
View File
@@ -0,0 +1,7 @@
_:
{
nix.settings.experimental-features = [ "nix-command" "flakes" ];
system = {
stateVersion = "26.05";
};
}
+4
View File
@@ -0,0 +1,4 @@
_:
{
time.timeZone = "Europe/Berlin";
}
+15
View File
@@ -0,0 +1,15 @@
_:
{
users.users.user = {
isNormalUser = true;
extraGroups = [ "wheel" "docker" "network" "plugdev" ];
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdCJK3NBMbGwvSxXq0kp/FzWUU0l0D1WX8f4vBubtZ7" ];
};
security = {
doas = {
enable = true;
extraConfig = "permit nopass keepenv :wheel";
};
};
}