From edc8e83594f0e6a8af946e0c7963eaae1f29214b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Mon, 23 Nov 2020 11:58:24 +0100 Subject: [PATCH] feat(moodle-dl): sync via syncthing instead of sshfs --- configs/cloud.nix | 9 +-------- configs/hu-berlin.nix | 28 ---------------------------- configs/moodle-dl.nix | 20 +++++++++++++++++++- lib/default.nix | 7 +++++++ 4 files changed, 27 insertions(+), 37 deletions(-) diff --git a/configs/cloud.nix b/configs/cloud.nix index 077f8a0..87304bd 100644 --- a/configs/cloud.nix +++ b/configs/cloud.nix @@ -28,14 +28,7 @@ declarative = rec { cert = toString ; key = toString ; - devices = { - wilde.id = - "R6DEBD7-G5RYDKN-VFA3HPO-WX4DNVI-373F7OQ-AW5MZTT-3L4BDVW-Y6ROEAF"; - heym.id = - "HLQSG3D-WSKLA6S-MEYQ3EU-GDBGABE-PY53RQ6-SWQAP2I-Z5MVBVX-MYPJXAM"; - manakish.id = - "AJVBWR2-VFFAGZF-7ZF5JAX-T63GMOG-NZ446WK-MC5E6WK-6X6Q2HE-QQA2JQ3"; - }; + inherit ((import ).syncthing) devices; folders = let syncthing-dir = "${config.users.users.me.home}/cloud/syncthing"; in { diff --git a/configs/hu-berlin.nix b/configs/hu-berlin.nix index 7ca4d0a..0edb61f 100644 --- a/configs/hu-berlin.nix +++ b/configs/hu-berlin.nix @@ -29,34 +29,6 @@ in { eduroam.auth = eduroamAuth; }; - fileSystems."/mnt/moodle" = { - device = "moodle@toum.r:/var/lib/moodle"; - fsType = "fuse.sshfs"; - options = [ - "IdentityFile=/root/.ssh/id_rsa" - "Port=${toString sshPort}" - "_netdev" - "allow_other" - "default_permissions" - "gid=100" - "idmap=user" - # "noatime" - "noauto" - # "nodiratime" - "x-systemd.nofail" - "reconnect" - "ro" - "uid=1000" - "x-systemd.automount" - "x-systemd.device-timeout=1s" - "x-systemd.idle-timeout=1min" - "x-systemd.mount-timeout=1s" - "x-systemd.requires=tinc.retiolum.service" - "x-systemd.requires=wpa_supplicant.service" - ]; - }; - - environment.systemPackages = [ pkgs.sshfsFuse diff --git a/configs/moodle-dl.nix b/configs/moodle-dl.nix index 0003841..ed6a546 100644 --- a/configs/moodle-dl.nix +++ b/configs/moodle-dl.nix @@ -35,11 +35,13 @@ let }; moodle-dl-json = pkgs.writeText "moodle-dl.json" (builtins.toJSON moodle-dl-config); + + moodle-dl-directory = "/var/lib/moodle"; in { users.extraUsers.moodle = { isNormalUser = false; - home = "/var/lib/moodle"; + home = moodle-dl-directory; createHome = true; openssh.authorizedKeys.keys = [ # for sshfs mount @@ -51,6 +53,22 @@ in system.activationScripts.moodle-dl-config = "ln -sfn ${toString moodle-dl-json} ${config.users.extraUsers.moodle.home}/config.json"; + services.syncthing = { + enable = true; + user = "moodle"; # config.users.extraUsers.moodle.name; + openDefaultPorts = true; + configDir = "${moodle-dl-directory}/.config/syncthing"; + dataDir = "${moodle-dl-directory}/.config/syncthing"; + declarative = rec { + cert = toString ; + key = toString ; + devices = { + inherit ((import ).syncthing.devices) wilde manakish toum; + }; + folders.${moodle-dl-directory}.devices = [ "wilde" "manakish" ]; + }; + }; + systemd.services.moodle-dl = { enable = true; startAt = "hourly"; diff --git a/lib/default.nix b/lib/default.nix index 80adeb4..7cd5fef 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -37,6 +37,13 @@ })); }; + syncthing.devices = { + wilde.id = "R6DEBD7-G5RYDKN-VFA3HPO-WX4DNVI-373F7OQ-AW5MZTT-3L4BDVW-Y6ROEAF"; + heym.id = "HLQSG3D-WSKLA6S-MEYQ3EU-GDBGABE-PY53RQ6-SWQAP2I-Z5MVBVX-MYPJXAM"; + manakish.id = "AJVBWR2-VFFAGZF-7ZF5JAX-T63GMOG-NZ446WK-MC5E6WK-6X6Q2HE-QQA2JQ3"; + toum.id = "CBJQXFF-FMFGWFU-2J6FMPR-SRDTSGX-7NHOYOH-CQCABKF-KQJMRJC-SDE24Q4"; + }; + ignorePaths = [ "*~" ".stack-work/"