diff --git a/modules/rclone.nix b/modules/rclone.nix new file mode 100644 index 0000000..992083f --- /dev/null +++ b/modules/rclone.nix @@ -0,0 +1,52 @@ +{ pkgs, ... }: +let + mountdir = "/mnt/genc"; + cachedir = "/mnt/cache"; + user = "mc-fucker"; + group = "users"; +in +{ + programs.fuse.userAllowOther = true; + systemd.services.genc_mount = { + description = "mount encrypted gdrive"; + after = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + #path = with pkgs; [ fuse rclone ]; + #path = with pkgs; [ "/run/wrappers/" ]; + path = [ "/run/wrappers/" ]; + preStart = '' + [ ! -d ${mountdir} ] && mkdir -p ${mountdir} && chown ${user} ${mountdir} + [ ! -d ${cachedir} ] && mkdir -p ${cachedir} && chown ${user} ${cachedir} + ls /home/mc-fucker + ''; + postStop = "fusermount -uz ${mountdir}"; + #postStart = " + serviceConfig = { + ExecStart = '' + ${pkgs.rclone}/bin/rclone mount genc: ${mountdir} \ + --config /home/mc-fucker/.config/rclone/rclone.conf \ + --allow-other \ + --dir-cache-time 5000h \ + --attr-timeout 5000h \ + --log-level INFO \ + --poll-interval 30s \ + --umask 002 \ + --cache-dir=${cachedir} \ + --drive-pacer-min-sleep 10ms \ + --drive-pacer-burst 1000 \ + --vfs-cache-mode full \ + --vfs-cache-max-size 30G \ + --vfs-cache-max-age 5000h \ + --vfs-cache-poll-interval 5m + ''; + #Type = "notify"; + Type = "simple"; + Restart = "on-failure"; + RestartSec = "5s"; + User = user; + #Group = group; + }; + }; +} + +# vim: set et ts=2 sw=2 ai: diff --git a/systems/mc4/configuration.nix b/systems/mc4/configuration.nix index 961a6b7..39b07b9 100644 --- a/systems/mc4/configuration.nix +++ b/systems/mc4/configuration.nix @@ -10,6 +10,7 @@ ./modules/generic.nix ./modules/nextcloud.nix ./modules/postgresql.nix + ./modules/rclone.nix ]; system.stateVersion = "21.05";