Rclone: Difference between revisions
Note on Sshfs |
Add home-manager related information. |
||
Line 24: | Line 24: | ||
}; | }; | ||
</syntaxhighlight>This can be also done with [[SSHFS]] while Rclone seems to be more robust for unstable connections. | </syntaxhighlight>This can be also done with [[SSHFS]] while Rclone seems to be more robust for unstable connections. | ||
== Configuration with Home-Manager == | |||
Home-manager users may wish to make a user-centric configuration of rclone. To do so add <code>pkgs.rclone</code> to your <code>~/.config/home-manager/home.nix</code> file. You can also configure remotes with home-manager. Here is an example below.<syntaxhighlight lang="nix"> | |||
home.packages = [ pkgs.rclone ]; | |||
home.file = { | |||
".config/rclone/rclone.conf".text = '' | |||
[fichier] | |||
type = fichier | |||
user = foo@bar.com | |||
pass = password | |||
''; | |||
}; | |||
</syntaxhighlight> | |||
You may also wish to create a systemd service for local filesystem mounts. Here is an example below. | |||
<syntaxhighlight lang="nix"> | |||
systemd.user.services.rclone-mounts = { | |||
Unit.Description = "Mount my rclone mounts."; | |||
Install.WantedBy = [ "multi-user.target" ]; # starts after login | |||
Service.ExecStart = '' | |||
rclone mount fichier:"Path to mount" "Local path to mount" | |||
''; | |||
</syntaxhighlight>Particular concern should be made when uploading such configurations online as your passwords will be plainly visible. It is recommended to instead put the passwords in a local file if such is needed. | |||
[[Category:Applications]] | [[Category:Applications]] | ||
[[Category:Backup]] | [[Category:Backup]] |
Revision as of 16:06, 25 August 2024
Rclone is a command-line program that synchronizes files and directories between different cloud storage services, including Google Drive, Amazon S3, Microsoft OneDrive, Dropbox, and more. With its flexible configuration options and robust feature set, Rclone provides a powerful tool for managing and accessing data stored in the cloud.
Configuration
Mounting remote filesystem, in this example via SFTP. The remote profile is called myremote
, and authentication is done with user myuser
and key file /root/.ssh/id_rsa
against 192.0.2.2
. The remote directory /my_data
is than mounted to the local directory /mnt
.
environment.systemPackages = [ pkgs.rclone ];
environment.etc."rclone-mnt.conf".text = ''
[myremote]
type = sftp
host = 192.0.2.2
user = myuser
key_file = /root/.ssh/id_rsa
'';
fileSystems."/mnt" = {
device = "myremote:/my_data";
fsType = "rclone";
options = [
"nodev"
"nofail"
"allow_other"
"args2env"
"config=/etc/rclone-mnt.conf"
];
};
This can be also done with SSHFS while Rclone seems to be more robust for unstable connections.
Configuration with Home-Manager
Home-manager users may wish to make a user-centric configuration of rclone. To do so add pkgs.rclone
to your ~/.config/home-manager/home.nix
file. You can also configure remotes with home-manager. Here is an example below.
home.packages = [ pkgs.rclone ];
home.file = {
".config/rclone/rclone.conf".text = ''
[fichier]
type = fichier
user = foo@bar.com
pass = password
'';
};
You may also wish to create a systemd service for local filesystem mounts. Here is an example below.
systemd.user.services.rclone-mounts = {
Unit.Description = "Mount my rclone mounts.";
Install.WantedBy = [ "multi-user.target" ]; # starts after login
Service.ExecStart = ''
rclone mount fichier:"Path to mount" "Local path to mount"
'';
Particular concern should be made when uploading such configurations online as your passwords will be plainly visible. It is recommended to instead put the passwords in a local file if such is needed.