nixos-conf/servers/gaming-server.nix

85 lines
1.9 KiB
Nix

{ config, pkgs, ... }:
{
systemd.tmpfiles.settings."vili-home" = {
"/home/vili".d = {
user = "vili";
group = "users";
mode = "0700";
};
"/home/vili/.local".d = {
user = "vili";
group = "users";
mode = "0755";
};
"/home/vili/.local/share".d = {
user = "vili";
group = "users";
mode = "0755";
};
};
environment.persistence."/persist" = {
users.vili = {
directories = [
{
directory = ".cache";
mode = "u=rwx,g=rx,o=rx";
}
{
directory = ".local/share/feral-interactive";
mode = "u=rwx,g=rx,o=rx";
}
".local/share/Steam"
{
directory = ".local/share/vulkan";
mode = "u=rwx,g=rx,o=rx";
}
];
};
};
sops.secrets = {
sunshine-state = {
sopsFile = ../secrets/gaming.yaml;
owner = config.users.users."vili".name;
};
sunshine-cakey = {
sopsFile = ../secrets/gaming.yaml;
owner = config.users.users."vili".name;
};
sunshine-cacert = {
sopsFile = ../secrets/gaming.yaml;
owner = config.users.users."vili".name;
};
};
programs.steam = {
enable = true;
extraCompatPackages = with pkgs; [ proton-ge-bin ];
};
services.sunshine = {
enable = true;
autoStart = true;
openFirewall = true;
settings = {
sunshine_name = "NixOS";
address_family = "both";
credentials_file = config.sops.secrets.sunshine-state.path;
pkey = config.sops.secrets.sunshine-cakey.path;
cert = config.sops.secrets.sunshine-cacert.path;
file_state = config.sops.secrets.sunshine-state.path;
};
applications = {
env = {
PATH = "$(PATH):$(HOME)/.local/bin";
};
apps = [
{
name = "Desktop";
image-path = "desktop.png";
}
];
};
};
}