nixos-config/nixos/machines/chungus/configuration.nix
2023-05-07 02:28:37 +02:00

98 lines
2.2 KiB
Nix

{ config, pkgs, lib, ... }: {
imports = [
./hardware-configuration.nix
../../system/server
./disko-config.nix
./packages.nix
#./network-wireguard.nix
./network-tinc.nix
./hass.nix
./hass-zigbee2mqtt.nix
./hass-mqtt.nix
#./hass-wifi.nix
#./syncthing.nix
#./mail-fetcher.nix
#./borg.nix
#./taskwarrior-pushover.nix
./media-share.nix
./media-tdarr.nix
./media-jellyfin.nix
# logging
./loki.nix
./loki-promtail.nix
./prometheus.nix
./grafana.nix
./telegraf.nix
#./home-display.nix
./rbackup.nix
./sync-torrent.nix
./sync-script.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.tmpOnTmpfs = true; # make /tmp a tmpfs (performance!)
boot.supportedFilesystems = [ "zfs" ];
# head -c4 /dev/urandom | od -A none -t x4
networking.hostId = "e439b116";
services.zfs.autoSnapshot.enable = true;
#virtualisation.containers.storage.settings = {
# # fixes: Error: 'overlay' is not supported over zfs, a mount_program is required: backing file system is unsupported for this graph driver
# storage.options.mount_program = "${pkgs.fuse-overlayfs}/bin/fuse-overlayfs";
#};
virtualisation.podman.extraPackages = [ pkgs.zfs ]; # make sure /var/lib/containers/storage is a zfs dataset
sops.defaultSopsFile = ../../secrets/chungus.yaml;
networking.hostName = "chungus";
programs.custom. zsh.enable = true;
users.users.root.shell = pkgs.zsh;
# todo : rename to component.init.ssh
# todo : make tor optional
configuration.init-ssh = {
enable = "enabled";
kernelModules = [ "e1000e" ];
};
# just enable lan
#networking.dhcpcd.allowInterfaces = [ "enp0s25" ];
# nix-shell -p speedtest_cli --run speedtest
#configuration.fireqos = {
# enable = false;
# interface = "enp0s25";
# input = 200000;
# output = 2000;
# balance = false;
#};
services.printing.enable = false;
services.smartd.enable = true;
#home-manager.users.mailUser.home.stateVersion = "22.11";
system.custom.mainUser = {
enable = true;
userName = "palo";
};
users.users.mainUser.extraGroups = [ "media" ];
}