Files
nixcfg/hosts/dingserver2/rclone.nix
2022-07-20 03:13:34 +01:00

39 lines
1.1 KiB
Nix

{
pkgs,
config,
...
}: let
mountdir = "/var/media/dungflix";
file = ''
[dungflix]
type = b2
'';
in {
age.secrets = {
dungflix_bucket_account_id.file = ../../secrets/dungflix_bucket_account_id.age;
dungflix_bucket_account_key.file = ../../secrets/dungflix_bucket_account_key.age;
};
systemd.services.dungflix-mount = {
description = "Mount the Backblaze B2 media store";
wantedBy = ["multi-user.target"];
path = [pkgs.fuse];
preStart = ''
mkdir -p -m 777 ${mountdir}
'';
script = ''
export RCLONE_B2_ACCOUNT=''$(cat ${config.age.secrets.dungflix_bucket_account_id.path})
export RCLONE_B2_KEY=''$(cat ${config.age.secrets.dungflix_bucket_account_key.path})
${pkgs.rclone}/bin/rclone --config="${pkgs.writeText "" file}" mount dungflix:dungflix-bucket ${mountdir} \
--vfs-cache-mode full \
--vfs-cache-max-age 48h \
--vfs-cache-max-size 100G \
--allow-other \
--no-modtime \
--buffer-size 2G \
-vvv
'';
postStop = "fusermount -u ${mountdir}";
};
}