nixfleet/hosts/rock5b/default.nix

89 lines
1.9 KiB
Nix

{
fleetFlake,
fleetModules,
lib,
pkgs,
config,
...
}: {
imports = fleetModules [
"common"
"ssh"
"ccr"
"wireguard-client"
];
ccr.enable = true;
services.rock5b-fan-control.enable = true;
nixpkgs.hostPlatform = "aarch64-linux";
swapDevices = [];
boot.loader = {
grub.enable = false;
generic-extlinux-compatible.enable = true;
};
disko = import ./disko.nix {};
fileSystems."/mnt/film" = {
device = "//ccr.ydns.eu/film";
fsType = "cifs";
options = let
credentials = pkgs.writeText "credentials" ''
username=guest
password=
'';
in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"];
};
fileSystems."/mnt/archivio" = {
device = "//ccr.ydns.eu/archivio";
fsType = "cifs";
options = let
credentials = pkgs.writeText "credentials" ''
username=guest
password=
'';
in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"];
};
environment.systemPackages = with pkgs; [
kodi-rock5b
cifs-utils
];
users.extraUsers.kodi = {
isNormalUser = true;
uid = 1002;
extraGroups = ["video" "input"];
};
networking.firewall.allowedTCPPorts = [
8080 # kodi control
80
];
programs.bash.loginShellInit = ''
[[ "$(tty)" == '/dev/tty1' ]] && \
[[ "$(whoami)" == 'kodi' ]] && \
${pkgs.kodi-rock5b}/bin/kodi-standalone
'';
# Waiting for https://github.com/NixOS/nixpkgs/issues/140304
services.getty = let
script = pkgs.writeText "login-program.sh" ''
if [[ "$(tty)" == '/dev/tty1' ]]; then
${pkgs.shadow}/bin/login -f kodi;
else
${pkgs.shadow}/bin/login;
fi
'';
in {
loginProgram = "${pkgs.bash}/bin/sh";
loginOptions = toString script;
extraArgs = ["--skip-login"];
};
}