feat: init

This commit is contained in:
Nick 2025-03-29 23:08:26 -05:00
commit 96c6f790fc
804 changed files with 33411 additions and 0 deletions

View file

@ -0,0 +1,36 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
fileModeAndDirMode
ownerExclusiveReadWriteMask
readWritePermissions
sambaPermissions
userIdForUser0
ceresIP
;
ceresName = "ceres";
ceresStorageDriveName = "NAS1";
in
{
label = "Ceres";
name = ceresName;
sync = {
address0 = "";
};
ip = {
address0 = ceresIP;
};
boot = {
options = ownerExclusiveReadWriteMask;
};
storage0 = {
mount = "/mnt/media/${ceresStorageDriveName}";
device = "/dev/disk/by-label/${ceresStorageDriveName}";
options = readWritePermissions;
};
samba0 = {
mount = "/mnt/media/${ceresName}";
device = "//${ceresIP}";
options = sambaPermissions ++ fileModeAndDirMode ++ userIdForUser0;
};
}

View file

@ -0,0 +1,20 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
ownerExclusiveReadWriteMask
charonIP
;
in
{
label = "Charon";
name = "charon";
sync = {
address0 = "";
};
ip = {
address0 = charonIP;
};
boot = {
options = ownerExclusiveReadWriteMask;
};
}

View file

@ -0,0 +1,20 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
ownerWriteOthersReadMask
deimosIP
;
in
{
label = "Deimos";
name = "deimos";
sync = {
address0 = deimosIP;
};
ip = {
address0 = deimosIP;
};
boot = {
options = ownerWriteOthersReadMask;
};
}

View file

@ -0,0 +1,31 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
ownerWriteOthersReadMask
readWritePermissions
marsIP
;
in
{
label = "Mars";
name = "mars";
sync = {
address0 = "";
};
ip = {
address0 = marsIP;
};
boot = {
options = ownerWriteOthersReadMask;
};
storage0 = {
mount = "/mnt/media/games";
device = "/dev/disk/by-label/Games";
options = readWritePermissions;
};
storage1 = {
mount = "/mnt/media/storage";
device = "/dev/disk/by-label/Storage";
options = readWritePermissions;
};
}

View file

@ -0,0 +1,18 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
phoneIP
dummy
;
in
{
name = "pixel";
label = dummy;
sync = {
address0 = "RMDKNJY-BTX6FYF-G6SR332-WS6HARI-PF74SC6-VPBSGRQ-MKVQZEQ-KSIB6QV"; # User0
address1 = "RUKSHY4-UCBYRVG-CVYFCMU-M3NLA3Q-JINRF5V-YPR5W32-TEIBJN6-DNQRCAR"; # User2
};
ip = {
address0 = phoneIP;
};
}

View file

@ -0,0 +1,13 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
dummy
;
in
{
name = dummy;
label = "Canon-TR7620a";
ip = {
address0 = "";
};
}

View file

@ -0,0 +1,14 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
brotherIP
dummy
;
in
{
name = dummy;
label = "Brother-HL-2170W";
ip = {
address0 = brotherIP;
};
}

View file

@ -0,0 +1,53 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
sambaPermissions
userIdForUser0
userIdForUser1
userIdForUser3
synologyIP
;
user0 = "nick";
user1 = "garnet";
user3 = "streaming";
user0Name = "Nick";
user1Name = "Garnet";
user3Name = "Streaming";
synologyName = "synology";
in
{
label = "Synology";
sync = {
address0 = "MWRGX2V-F5XKE5E-REP6ECT-OOPFBMF-22NHSMW-YFBU6MB-PLFUN63-R3MW2QX"; # User0
address1 = ""; # User2
};
name = synologyName;
ip = {
address0 = synologyIP;
};
# Nick Home Folder
folder0 = {
mount = "/mnt/media/${synologyName}/${user0}";
device = "//${synologyIP}/homes/${user0Name}";
options = sambaPermissions ++ userIdForUser0;
};
# Garnet Home Folder
folder1 = {
mount = "/mnt/media/${synologyName}/${user1}";
device = "//${synologyIP}/homes/${user1Name}";
options = sambaPermissions ++ userIdForUser1;
};
# Minecraft Worlds
folder2 = {
mount = "/home/${user1}/.local/share/PrismLauncher/instances/1.21/.minecraft/saves";
device = "//${synologyIP}/homes/${user1Name}/Minecraft";
options = sambaPermissions ++ userIdForUser1;
};
# Streaming Folder
folder3 = {
mount = "/mnt/media/${synologyName}/${user3}";
device = "//${synologyIP}/homes/${user0Name}";
options = sambaPermissions ++ userIdForUser3;
};
}

View file

@ -0,0 +1,33 @@
{ devicesFunctions }:
let
inherit (devicesFunctions)
readWritePermissions
venusIP
;
drivePath = "/run/media";
byLabel = "/dev/disk/by-label";
in
{
label = "Venus";
name = "venus";
ip = {
address0 = venusIP;
};
boot = {
options = [
"fmask=0022"
"dmask=0022"
];
};
storage0 = {
mount = "${drivePath}/games";
device = "${byLabel}/Games";
options = readWritePermissions;
};
storage1 = {
mount = "${drivePath}/entertainment";
device = "${byLabel}/Entertainment";
options = readWritePermissions;
};
}

View file

@ -0,0 +1,87 @@
let
configPath = ./config;
printerPath = configPath + /printers;
devicesFunctions = {
ownerWriteOthersReadMask = [
"fmask=0022"
"dmask=0022"
];
ownerExclusiveReadWriteMask = [
"fmask=0077"
"dmask=0077"
];
readWritePermissions = [
"rw"
];
sambaPermissions = [
"rw"
"gid=100"
"vers=3.0"
"x-systemd.automount"
"x-systemd.requires=network-online.target"
];
fileModeAndDirMode = [
"file_mode=0644"
"dir_mode=0755"
];
userIdForUser0 = [
"uid=1000"
];
userIdForUser1 = [
"uid=1001"
];
userIdForUser3 = [
"uid=1002"
];
dummy = [
];
ceresIP = "192.168.50.140";
charonIP = "192.168.50.42";
deimosIP = "192.168.50.142";
marsIP = "192.168.50.196";
phoneIP = "192.168.50.243";
synologyIP = "192.168.50.209";
venusIP = "192.168.58.104";
brotherIP = "192.168.50.195";
};
deviceswithFunctions = builtins.listToAttrs (
map
(name: {
name = builtins.substring 0 (builtins.stringLength name - 4) name;
value = import (configPath + "/${name}") {
inherit
devicesFunctions
;
};
})
(
builtins.filter (name: builtins.match ".*\\.nix$" name != null) (
builtins.attrNames (builtins.readDir configPath)
)
)
);
devicesPrinters = builtins.listToAttrs (
map
(name: {
name = builtins.substring 0 (builtins.stringLength name - 4) name;
value = import (printerPath + "/${name}") {
inherit
devicesFunctions
;
};
})
(
builtins.filter (name: builtins.match ".*\\.nix$" name != null) (
builtins.attrNames (builtins.readDir printerPath)
)
)
);
devices = deviceswithFunctions // devicesPrinters;
in
{
devices = devices;
}