75 lines
1.6 KiB
Nix
75 lines
1.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
programs.rclone = {
|
|
enable = true;
|
|
|
|
# Give rclone access to the ssh agent
|
|
package = pkgs.writeShellScriptBin "rclone" ''
|
|
export GNUPGHOME="${config.xdg.dataHome}/gnupg"
|
|
export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
|
|
exec ${pkgs.rclone}/bin/rclone "$@"
|
|
'';
|
|
|
|
remotes = {
|
|
gdrive = {
|
|
config = {
|
|
type = "drive";
|
|
scope = "drive";
|
|
|
|
root_folder_id = "";
|
|
};
|
|
|
|
secrets = {
|
|
token = "${config.xdg.configHome}/rclone/gdrive_token";
|
|
|
|
client_id = "${config.xdg.configHome}/rclone/gdrive_client_id";
|
|
client_secret = "${config.xdg.configHome}/rclone/gdrive_client_secret"; # TODO: sops?
|
|
};
|
|
|
|
mounts = {
|
|
"/" = {
|
|
enable = true;
|
|
mountPoint = "${config.home.homeDirectory}/gdrive";
|
|
|
|
options = {
|
|
dir-cache-time = "5m";
|
|
poll-interval = "10s";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
orion = {
|
|
config = {
|
|
type = "sftp";
|
|
user = config.var.username;
|
|
};
|
|
|
|
secrets = {
|
|
host = config.sops.secrets.orion_ip.path;
|
|
};
|
|
|
|
mounts = {
|
|
"/var/lib/filebrowser/files" = {
|
|
enable = true;
|
|
|
|
mountPoint = "${config.home.homeDirectory}/orion";
|
|
|
|
options = {
|
|
dir-cache-time = "5m";
|
|
poll-interval = "10s";
|
|
# Network optimizations
|
|
"buffer-size" = "32M";
|
|
"vfs-read-chunk-size" = "32M";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|