Compare commits

...

12 Commits

8 changed files with 154 additions and 26 deletions

View File

@@ -26,15 +26,15 @@
# fsType = "ext4"; # fsType = "ext4";
# }; # };
#fileSystems."/srv/dev-disk-by-uuid-18333f38-626c-4c22-af29-314a87282809" = fileSystems."/srv/private" =
# { device = "/dev/mapper/base--storage-ShatteredMINT"; { device = "/dev/mapper/base--storage-ShatteredMINT";
# fsType = "ext4"; fsType = "ext4";
# }; };
#fileSystems."/srv/dev-disk-by-uuid-98570615-8eda-4a45-8a20-3c58b50e3d79" = fileSystems."/srv/shared" =
# { device = "/dev/mapper/base--storage-NAS"; { device = "/dev/mapper/base--storage-NAS";
# fsType = "ext4"; fsType = "ext4";
# }; };
#fileSystems."/export/ShatteredMINT" = #fileSystems."/export/ShatteredMINT" =
# { device = "/srv/dev-disk-by-uuid-18333f38-626c-4c22-af29-314a87282809"; # { device = "/srv/dev-disk-by-uuid-18333f38-626c-4c22-af29-314a87282809";
@@ -73,4 +73,11 @@
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
services.cron = {
enable = true;
systemCronJobs = [
"* 20 * * * root rsync -Pav -e 'ssh -i /root/.ssh/backup' /srv backup@192.168.178.24:/ 1>> /root/backup.log 2>> /root/backup.err"
];
};
} }

16
flake.lock generated
View File

@@ -40,6 +40,21 @@
"type": "github" "type": "github"
} }
}, },
"nix-flatpak": {
"locked": {
"lastModified": 1768656715,
"narHash": "sha256-Sbh037scxKFm7xL0ahgSCw+X2/5ZKeOwI2clqrYr9j4=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "123fe29340a5b8671367055b75a6e7c320d6f89a",
"type": "github"
},
"original": {
"owner": "gmodena",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1772773019, "lastModified": 1772773019,
@@ -60,6 +75,7 @@
"inputs": { "inputs": {
"friendlyelecCM3588": "friendlyelecCM3588", "friendlyelecCM3588": "friendlyelecCM3588",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
} }

View File

@@ -13,6 +13,7 @@
url = "github:YayaADev/nixos-friendlyelec-cm3588"; url = "github:YayaADev/nixos-friendlyelec-cm3588";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-flatpak.url = "github:gmodena/nix-flatpak";
}; };
outputs = {self, nixpkgs, home-manager, ... }@inputs: outputs = {self, nixpkgs, home-manager, ... }@inputs:
@@ -36,7 +37,7 @@
./backup-target.nix ./backup-target.nix
./users/shatteredmint.nix ./users/shatteredmint.nix
./qemu-bridges.nix # ./qemu-bridges.nix
]; ];
}; };
@@ -66,6 +67,7 @@
./configuration.nix ./configuration.nix
./users/shatteredmint.nix ./users/shatteredmint.nix
./software/samba.nix
]; ];
}; };
}; };

View File

@@ -1,17 +1,37 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
# mount network shares environment.systemPackages = [ pkgs.cifs-utils ];
fileSystems."/mnt/nas/private" = { fileSystems."/mnt/share/private" = {
device = "dashboard.omv:/ShatteredMINT"; device = "//192.168.178.108/shatteredmint";
fsType = "nfs"; fsType = "cifs";
options = [ "x-systemd.automount" "noauto" ]; options = let
# this line prevents hanging on network split
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=${toString config.users.users.shatteredmint.uid},gid=${toString config.users.groups.users.gid}"];
}; };
fileSystems."/mnt/nas/shared" = { fileSystems."/mnt/share/shared" = {
device = "dashboard.omv:/default-nas"; device = "//192.168.178.108/shared";
fsType = "nfs"; fsType = "cifs";
options = [ "x-systemd.automount" "noauto" ]; options = let
# this line prevents hanging on network split
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=${toString config.users.users.shatteredmint.uid},gid=${toString config.users.groups.users.gid}"];
}; };
# # mount network shares
# fileSystems."/mnt/nas/private" = {
# device = "dashboard.omv:/ShatteredMINT";
# fsType = "nfs";
# options = [ "x-systemd.automount" "noauto" ];
#
# };
# fileSystems."/mnt/nas/shared" = {
# device = "dashboard.omv:/default-nas";
# fsType = "nfs";
# options = [ "x-systemd.automount" "noauto" ];
#
# };
} }

View File

@@ -12,8 +12,6 @@
pkgs.kdePackages.elisa pkgs.kdePackages.elisa
]; ];
# enable flatpak
services.flatpak.enable = true;
# Enable sound. # Enable sound.
services.pipewire = { services.pipewire = {
@@ -34,8 +32,8 @@
preferLocalBuild = true; preferLocalBuild = true;
nativeBuildInputs = with pkgs; [ nativeBuildInputs = with pkgs; [
gzip gzip
xorg.mkfontscale mkfontscale
xorg.mkfontdir mkfontdir
]; ];
} }
('' (''
@@ -51,7 +49,7 @@
cd "$out/share/fonts" cd "$out/share/fonts"
mkfontscale mkfontscale
mkfontdir mkfontdir
cat $(find ${pkgs.xorg.fontalias}/ -name fonts.alias) >fonts.alias cat $(find ${pkgs.font-alias}/ -name fonts.alias) >fonts.alias
''); '');
aggregatedIcons = pkgs.buildEnv { aggregatedIcons = pkgs.buildEnv {
name = "system-icons"; name = "system-icons";

View File

@@ -1,5 +1,5 @@
{ config, lib, pkgs, home-manager, ... }: { config, lib, pkgs, home-manager, ... }@inputs:
{ {
imports = [home-manager.nixosModules.home-manager]; imports = [home-manager.nixosModules.home-manager];
home-manager.users.shatteredmint = { home-manager.users.shatteredmint = {
@@ -18,4 +18,36 @@
makemkv makemkv
]; ];
}; };
# enable flatpak
services.flatpak.enable = true;
home-manager.users.shatteredmint.imports = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
{
services.flatpak = {
update.onActivation = true;
packages = [
"com.atlauncher.ATLauncher"
"com.discordapp.Discord"
"com.github.k4zmu2a.spacecadetpinball"
"com.heroicgameslauncher.hgl"
"com.obsproject.Studio"
"com.revolutionarygamesstudio.ThriveLauncher"
"com.spotify.Client"
# "com.teamspeak.TeamSpeak"
# "com.teamspeak.TeamSpeak3"
"com.usebottles.bottles"
"com.valvesoftware.Steam"
# "md.obsidian.Obsidian"
"org.kde.neochat"
"org.kicad.KiCad"
"org.libreoffice.LibreOffice"
# "org.pipewire.Helvum"
# "org.rncbc.qpwgraph"
"org.telegram.desktop"
];
};
}
];
} }

49
software/samba.nix Normal file
View File

@@ -0,0 +1,49 @@
{config, pkgs, ...} : {
services = {
samba = {
enable = true;
package = pkgs.samba4Full;
openFirewall = true;
settings = {
global = {
"server smb encrypt" = "required";
"server min protocol" = "SMB3_00";
"workgroup" = "WORKGROUP";
"security" = "user";
"browseable" = "yes";
};
# "private-shatteredmint" = {
# "path" = "/srv/shatteredmint";
# "writable" = "yes";
# "comment" = "private share for shatteredmint";
# "browseable" = "yes";
# };
"homes" = {
"path" = "/srv/private/%S";
"valid users" = "%S";
"writable" = "yes";
"comment" = "homes share";
"browseable" = "no";
"create mask" = "0700";
"directory mask" = "0700";
};
"shared" = {
"path" = "/srv/shared";
"writable" = "yes";
"comment" = "homes share";
"browseable" = "yes";
"create mask" = "0700";
"directory mask" = "0700";
"force user" = "shatteredmint";
};
};
};
samba-wsdd = {
enable = true;
openFirewall = true;
};
};
}

View File

@@ -11,20 +11,23 @@
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKT9u43WNMlu3gnu5z9Twt1vkdNdpf6REfEK/OT4qxjK shatteredmint" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKT9u43WNMlu3gnu5z9Twt1vkdNdpf6REfEK/OT4qxjK shatteredmint"
]; ];
uid = 1000;
}; };
home-manager.users.shatteredmint = { home-manager.users.shatteredmint = {config, ...}: {
home.stateVersion = "24.11"; home.stateVersion = "24.11";
home.username = "shatteredmint"; home.username = "shatteredmint";
home.homeDirectory = "/home/shatteredmint"; home.homeDirectory = "/home/shatteredmint";
programs.zsh = { programs.zsh = {
dotDir = "${config.xdg.configHome}/zsh";
enable = true; enable = true;
autosuggestion = { autosuggestion = {
enable = true; enable = true;
highlight = "fg=white,bg=green,bold"; highlight = "fg=white,bg=green,bold";
}; };
defaultKeymap = "viins"; defaultKeymap = "viins";
@@ -67,5 +70,6 @@
home.sessionPath = [ home.sessionPath = [
"$HOME/scripts" "$HOME/scripts"
]; ];
}; };
} }