166 lines
3.6 KiB
Nix
166 lines
3.6 KiB
Nix
{ pkgs, ... }:
|
|
let
|
|
enableDisplayManager = false;
|
|
in
|
|
{
|
|
# Services configs
|
|
services = {
|
|
udisks2.enable = true;
|
|
|
|
# Enable the X11 windowing system.
|
|
xserver = {
|
|
enable = enableDisplayManager;
|
|
|
|
# Enable the Plasma 6 Desktop Environment.
|
|
desktopManager.plasma5.enable = enableDisplayManager;
|
|
};
|
|
|
|
displayManager = {
|
|
sddm.enable = enableDisplayManager;
|
|
#defaultSession = "plasma";
|
|
};
|
|
|
|
# Set to enable Flatpak
|
|
flatpak.enable = false;
|
|
|
|
# Enable RDP
|
|
xrdp = {
|
|
enable = enableDisplayManager;
|
|
defaultWindowManager = "startplasma-x11";
|
|
openFirewall = enableDisplayManager;
|
|
};
|
|
|
|
avahi = {
|
|
enable = true;
|
|
nssmdns4 = true;
|
|
publish = {
|
|
enable = true;
|
|
addresses = true;
|
|
domain = true;
|
|
hinfo = true;
|
|
userServices = true;
|
|
workstation = true;
|
|
};
|
|
extraServiceFiles = {
|
|
# TODO is this needed?
|
|
smb = ''
|
|
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
|
|
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
|
<service-group>
|
|
<name replace-wildcards="yes">%h</name>
|
|
<service>
|
|
<type>_smb._tcp</type>
|
|
<port>445</port>
|
|
</service>
|
|
</service-group>
|
|
'';
|
|
};
|
|
};
|
|
|
|
apcupsd = {
|
|
enable = true;
|
|
};
|
|
|
|
tailscale = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
useRoutingFeatures = "client";
|
|
extraUpFlags = [ "--advertise-exit-node" ];
|
|
authKeyFile = "/media/nas/ssd/nix-app-data/tailscale/auth";
|
|
};
|
|
|
|
btrfs = {
|
|
autoScrub.enable = false;
|
|
autoScrub.fileSystems = [
|
|
"/nix"
|
|
"/root"
|
|
"/etc"
|
|
"/var/log"
|
|
"/home"
|
|
"/media/nas/ssd/nix-app-data"
|
|
"/media/nas/ssd/ssd_app_data"
|
|
"/media/nas/ssd/mariadb"
|
|
"/media/nas/main/3d_printer"
|
|
"/media/nas/main/backup"
|
|
"/media/nas/main/documents"
|
|
"/media/nas/main/nextcloud"
|
|
"/media/nas/main/movies"
|
|
"/media/nas/main/tv"
|
|
"/media/nas/main/isos"
|
|
];
|
|
};
|
|
|
|
authentik = {
|
|
enable = true;
|
|
environmentFile = "/media/nas/ssd/nix-app-data/authentik/.env";
|
|
|
|
};
|
|
|
|
postgresql = {
|
|
enable = true;
|
|
package = pkgs.postgresql_16;
|
|
dataDir = "/media/nas/ssd/nix-app-data/postgresql";
|
|
ensureDatabases = [ "authentik" ];
|
|
ensureUsers = [
|
|
{
|
|
name = "authentik";
|
|
ensureDBOwnership = true;
|
|
}
|
|
];
|
|
};
|
|
|
|
redis = {
|
|
servers = {
|
|
authentik = {
|
|
enable = true;
|
|
port = 6379;
|
|
};
|
|
|
|
nextcloud = {
|
|
enable = true;
|
|
port = 6380;
|
|
# user = "911";#"${config.users.users.nix-apps.name}:${config.users.groups.jallen-nas.name}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.user.services = {
|
|
protonmail-bridge = {
|
|
description = "Protonmail Bridge";
|
|
enable = true;
|
|
script = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive";
|
|
path = [
|
|
pkgs.pass
|
|
pkgs.protonmail-bridge
|
|
];
|
|
wantedBy = [ "multi-user.target" ];
|
|
partOf = [ "multi-user.target" ];
|
|
};
|
|
};
|
|
|
|
systemd.services = {
|
|
|
|
rsync-ssd = {
|
|
path = [
|
|
pkgs.bash
|
|
pkgs.rsync
|
|
];
|
|
script = ''
|
|
rsync -rtpogvPlHzs --ignore-existing /media/nas/ssd /media/nas/main/backup/ssd
|
|
'';
|
|
};
|
|
|
|
glances-server = {
|
|
path = [
|
|
pkgs.bash
|
|
pkgs.glances
|
|
];
|
|
script = ''
|
|
glances -w
|
|
'';
|
|
wantedBy = [ "multi-user.target" ];
|
|
};
|
|
};
|
|
}
|