2024-06-02 01:31:02 +03:00
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{
|
2024-07-28 22:06:23 +03:00
|
|
|
assertions = [
|
|
|
|
{
|
|
|
|
assertion = config.users.users ? "vili";
|
|
|
|
message = "User 'vili' needed for syncthing!";
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
2024-08-21 11:02:02 +03:00
|
|
|
boot.kernel.sysctl."fs.inotify.max_user_watches" = 204800;
|
|
|
|
|
2024-06-02 05:53:39 +03:00
|
|
|
services.syncthing = {
|
|
|
|
enable = true;
|
|
|
|
user = "vili";
|
2024-06-06 21:36:37 +03:00
|
|
|
dataDir = config.users.users.${config.services.syncthing.user}.home;
|
2024-06-02 01:31:02 +03:00
|
|
|
|
2024-06-02 05:53:39 +03:00
|
|
|
settings = {
|
|
|
|
devices = {
|
|
|
|
"helium" = {
|
|
|
|
id = "2MRUBSY-NHXYMAW-SY22RHP-CNNMHKR-DPDKMM4-2XV5F6M-6KSNLQI-DD4EOAM";
|
2024-09-24 20:01:29 +03:00
|
|
|
addresses = [ "tcp://[fd08:d473:bcca:f0::2]:22000" ];
|
2024-06-02 05:53:39 +03:00
|
|
|
};
|
2024-08-31 18:15:24 +03:00
|
|
|
"lithium" = {
|
|
|
|
id = "S4ZORDV-QBY7QC7-FQHADMZ-NQSKJUA-7B7LQNS-CWJLSMG-JPMN7YJ-OVRDZQA";
|
2024-09-24 20:01:29 +03:00
|
|
|
addresses = [ "tcp://[fd08:d473:bcca:f0::3]:22000" ];
|
2024-08-31 18:15:24 +03:00
|
|
|
};
|
2024-09-27 21:25:38 +03:00
|
|
|
"syncthing" = {
|
2024-06-02 05:53:39 +03:00
|
|
|
id = "ZX35ARB-3ULEUV3-NNUEREF-DEDWOJU-GE7A4PP-T7O43NI-SU564OD-E26HHA4";
|
2024-10-01 16:53:55 +03:00
|
|
|
addresses = [ "tcp://syncthing.vsinerva.fi:22000" ];
|
2024-06-02 05:53:39 +03:00
|
|
|
};
|
|
|
|
"phone" = {
|
|
|
|
id = "K6QCK2R-BU65RAC-PHTGLIA-24IHDXE-N6VNBAW-QYREMVD-XWGWKRA-VX2BNAK";
|
2024-09-25 13:38:25 +03:00
|
|
|
addresses = [ "tcp://[fd08:d473:bcca:f0::10]:22000" ];
|
2024-06-02 05:53:39 +03:00
|
|
|
};
|
|
|
|
};
|
2024-06-02 01:31:02 +03:00
|
|
|
|
2024-06-02 05:53:39 +03:00
|
|
|
folders =
|
|
|
|
let
|
|
|
|
default = {
|
2024-06-02 16:18:19 +03:00
|
|
|
devices = [
|
|
|
|
"helium"
|
2024-08-31 18:15:24 +03:00
|
|
|
"lithium"
|
2024-09-27 21:25:38 +03:00
|
|
|
"syncthing"
|
2024-08-21 10:45:41 +03:00
|
|
|
"phone"
|
2024-06-02 16:18:19 +03:00
|
|
|
];
|
2024-06-02 05:53:39 +03:00
|
|
|
versioning = {
|
|
|
|
type = "trashcan";
|
|
|
|
params.cleanoutDays = "30";
|
|
|
|
};
|
|
|
|
fsWatcherDelayS = 1;
|
|
|
|
};
|
2024-08-21 10:45:41 +03:00
|
|
|
default-no-phone = default // {
|
2024-06-02 16:18:19 +03:00
|
|
|
devices = [
|
|
|
|
"helium"
|
2024-08-31 18:15:24 +03:00
|
|
|
"lithium"
|
2024-09-27 21:25:38 +03:00
|
|
|
"syncthing"
|
2024-06-02 16:18:19 +03:00
|
|
|
];
|
|
|
|
};
|
2024-08-21 10:45:41 +03:00
|
|
|
in
|
|
|
|
{
|
|
|
|
"~/Documents" = default;
|
|
|
|
"~/Downloads" = default-no-phone;
|
|
|
|
"~/Music" = default-no-phone;
|
2024-06-02 05:53:39 +03:00
|
|
|
"~/Pictures" = default;
|
|
|
|
"~/Projects" = default;
|
|
|
|
"~/School" = default;
|
2024-08-21 10:45:41 +03:00
|
|
|
"~/Videos" = default-no-phone;
|
2024-06-02 05:53:39 +03:00
|
|
|
"~/Zotero" = default;
|
|
|
|
};
|
2024-06-02 01:31:02 +03:00
|
|
|
|
2024-06-02 16:18:19 +03:00
|
|
|
options = {
|
|
|
|
urAccepted = -1;
|
|
|
|
localAnnounceEnabled = false;
|
|
|
|
globalAnnounceEnabled = false;
|
|
|
|
natEnabled = false;
|
|
|
|
relaysEnabled = false;
|
2024-06-02 05:53:39 +03:00
|
|
|
};
|
|
|
|
};
|
2024-06-02 16:18:19 +03:00
|
|
|
|
|
|
|
#TCP/UDP 22000 for transfers and UDP 21027 for discovery
|
|
|
|
openDefaultPorts = true;
|
|
|
|
};
|
|
|
|
}
|