Files
nixos-dogma/hosts/common/default.nix
T

166 lines
2.9 KiB
Nix

# Shared base for all hosts (dogma-nixos, dogma-nixos-rtx, dogma-wsl)
{
config,
lib,
pkgs,
inputs,
...
}: {
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nixpkgs.config.allowUnfree = true;
time.timeZone = "America/Phoenix";
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
useXkbConfig = true;
};
sops.age.keyFile = "/var/lib/sops-nix/keys.txt";
sops.defaultSopsFile = ../../secrets/secrets.yaml;
sops.secrets = {
"factorio/service_username" = {};
"factorio/service_token" = {};
"factorio/gamepassword" = {};
"backblaze/apikey" = {};
"google/gmail" = {};
"caddy/acme_email" = {};
"dedyn/dnstoken" = {};
"dedyn/dnsuser" = {};
"github/token" = {};
"gitlab/token" = {};
"mongodb/initial_password" = {};
"namecheap/ddyn_password" = {
restartUnits = ["ddclient.service"];
};
};
programs.steam.enable = true;
sops.templates."factorio.json".content = builtins.toJSON {
service_username = config.sops.placeholder."factorio/service_username";
service_token = config.sops.placeholder."factorio/service_token";
gamepassword = config.sops.placeholder."factorio/gamepassword";
};
sops.templates."duplicity.env".content = builtins.toJSON {};
sops.templates."caddy.env" = {
owner = "root";
mode = "0600";
restartUnits = ["caddy.service"];
content = ''
ACME_EMAIL='${config.sops.placeholder."caddy/acme_email"}'
'';
};
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
services.getty.autologinUser = "mask";
users.users.mask = {
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = [
"wheel"
"libvirtd"
"media"
"uinput"
];
};
networking.networkmanager.enable = true;
# Keep firewall disabled as in original configuration.nix:424
networking.firewall.enable = false;
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
zlib
zstd
stdenv.cc.cc
curl
openssl
libssh
bzip2
libxml2
acl
libsodium
util-linux
xz
systemd
];
};
environment.systemPackages = with pkgs; [
inotify-tools
opencode
steam
nnn
hyprlauncher
qbittorrent
pinentry-qt
ddclient
telegram-desktop
btop
doas
lan-mouse
stylua
gh
glab
gnupg
duplicity
wget
factorio-headless
dig
parted
tor-browser
jujutsu
caddy
clang
ansible
exiftool
gcc
home-manager
flaresolverr
docker-compose
virtio-win
spice
spice-gtk
OVMF
pigz
mpv
wofi
wayvnc
pcmanfm
htop
rsync
tmux
git
kitty
python3
deno
qbittorrent-nox
sonarr
radarr
jackett
jellyfin
curl
p7zip
dnsmasq
brave
keepassxc
sops
age
unzip
];
services.openssh.enable = true;
system.stateVersion = "25.11";
}