Rclone: Difference between revisions
Added systemd service example. SystemD mounts are possible but won't let you use spaces, idk whether to add or not. |
m fix indentation |
||
| (6 intermediate revisions by 6 users not shown) | |||
| Line 2: | Line 2: | ||
== Configuration == | == Configuration == | ||
Mounting remote filesystem, in this example via SFTP. The remote profile is called <code>myremote</code>, and authentication is done with user <code>myuser</code> and key file <code>/root/.ssh/id_rsa</code> against <code>192.0.2.2</code>. The remote directory <code>/my_data</code> is | Mounting remote filesystem, in this example via SFTP. The remote profile is called <code>myremote</code>, and authentication is done with user <code>myuser</code> and key file <code>/root/.ssh/id_rsa</code> against <code>192.0.2.2</code>. The remote directory <code>/my_data</code> is then mounted to the local directory <code>/mnt</code>.<syntaxhighlight lang="nix"> | ||
environment.systemPackages = [ pkgs.rclone ]; | environment.systemPackages = [ pkgs.rclone ]; | ||
environment.etc."rclone-mnt.conf".text = '' | environment.etc."rclone-mnt.conf".text = '' | ||
| Line 27: | Line 27: | ||
== Configuration with Home-Manager == | == 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-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 ]; | |||
xdg.configFile."rclone/rclone.conf".text = '' | |||
[fichier] | |||
[fichier] | type = fichier | ||
type = fichier | user = foo@bar.com | ||
user = foo@bar.com | pass = password | ||
pass = password | ''; | ||
</syntaxhighlight> | </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. Keep in mind that if you do output to .config/rclone/rclone.conf, every time you switch your home-manager configuration it will be overwritten. It would be wiser to instead output to a separate file, especially if using | 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. Keep in mind that if you do output to .config/rclone/rclone.conf, every time you switch your home-manager configuration it will be overwritten. It would be wiser to instead output to a separate file, especially if using systemd services as in the example below. | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
xdg.configFile."rclone/example.conf".text = '' | |||
[fichier] | |||
[ | type = fichier | ||
type = fichier | user = foo@bar.com | ||
user = foo@bar.com | pass = p4ssw0rd | ||
pass = p4ssw0rd | ''; | ||
}; | |||
systemd.user.services.example-mounts = { | |||
Unit = { | |||
Description = "Example programmatic mount configuration with nix and home-manager."; | |||
After = [ "network-online.target" ]; | |||
}; | }; | ||
Service = { | |||
Type = "notify"; | |||
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p %h/Example Sync Dir"; | |||
ExecStart = "${pkgs.rclone}/bin/rclone --config=%h/.config/rclone/example.conf --vfs-cache-mode writes --ignore-checksum mount \"fichier:\" \"%h/Example Sync Dir\""; | |||
ExecStop="/run/wrappers/bin/fusermount -u %h/Example Sync Dir/%i"; | |||
}; | }; | ||
Install.WantedBy = [ "default.target" ]; | |||
}; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Applications]] | |||
[[Category:CLI Applications]] | |||
[[Category:Backup]] | [[Category:Backup]] | ||