Rclone: Difference between revisions

Revert broken systemd service. I'll figure it out later.
Klinger (talk | contribs)
 
(5 intermediate revisions by 4 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 than mounted to the local directory <code>/mnt</code>.<syntaxhighlight lang="nix">
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 28: Line 28:
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 ];
   home.packages = [ pkgs.rclone ];
   home.file = {
   xdg.configFile."rclone/rclone.conf".text = ''
      ".config/rclone/rclone.conf".text = ''
[fichier]
[fichier]
type = fichier
type = fichier
user = foo@bar.com
user = foo@bar.com
pass = password
pass = password
    '';
  '';
</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 systemd services as in the example below. 
 
<syntaxhighlight lang="nix">
  xdg.configFile."rclone/example.conf".text = ''
[fichier]
type = fichier
user = foo@bar.com
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 = "/usr/bin/env 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:\" \"Example Sync Dir\"";
      ExecStop="/bin/fusermount -u %h/Example Sync Dir/%i";
    };
    Install.WantedBy = [ "default.target" ];
   };
   };
</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.
[[Category:Applications]]
 
[[Category:CLI Applications]]
  [[Category:Applications]]
[[Category:Backup]]
[[Category:Backup]]