{"id":3721,"date":"2020-07-13T10:00:00","date_gmt":"2020-07-13T15:00:00","guid":{"rendered":"https:\/\/www.foell.org\/justin\/?p=3721"},"modified":"2020-07-13T10:05:31","modified_gmt":"2020-07-13T15:05:31","slug":"duplicati-setup-tips-for-linux-raspberrypi-macos","status":"publish","type":"post","link":"https:\/\/www.foell.org\/justin\/duplicati-setup-tips-for-linux-raspberrypi-macos\/","title":{"rendered":"Duplicati setup tips for Linux, RaspberryPi &#038; MacOS"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Single-user vs service<\/h2>\n\n\n\n<p>Before you install Duplicati, there&#8217;s one question you need to ask:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Does this computer have multiple user logins (that you want to back-up), or is it primarily used by one user?<\/p><\/blockquote>\n\n\n\n<p>This is important because you can install Duplicati in one of two ways: to run as a single-user, or to run as a system service that is available to all users. By default Duplicati is installed for a single user, but if there is more than one user on the computer you want to be able to back-up, you&#8217;ll want to install it as a service.<\/p>\n\n\n\n<p>If you don&#8217;t install it as a service, when Duplicati tries to read files that belong to the other users, it will get a permission denied error and won&#8217;t be able to back those files up. You don&#8217;t want to find out that your files weren&#8217;t backed up when it&#8217;s too late.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>I&#8217;ve provided some MacOS specific configurations in that section for setting it up as a service.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RaspberryPi<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Install Duplicati on a RasperryPi<\/h3>\n\n\n\n<p>To get Duplicati successfully installed on a RaspberryPi running Raspbian, you&#8217;ll likely have to also install some of the mono dependencies to avoid <a href=\"https:\/\/forum.duplicati.com\/t\/help-with-installing-on-raspberry-pi\/397\">installation errors<\/a>.<\/p>\n\n\n\n<p>Follow the <a href=\"http:\/\/www.mono-project.com\/download\/stable\/#download-lin-raspbian\">Raspbian 9 installation instructions on the mono-project site<\/a>. No need to `sudo apt-get install mono-devel` &#8211; the dependencies for Duplicati will get automatically resolved.<\/p>\n\n\n\n<p>Once that&#8217;s done you can (re)install Duplicati, hopefully without errors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MacOS<\/h2>\n\n\n\n<p>For my MacOS installation I needed to install it as a service. It&#8217;s my wife&#8217;s Macbook. <a href=\"https:\/\/www.meatballracing.com\/meatball-racing-3d-printed-products\/\">I also use it for Fusion360<\/a>, and I like my scroll settings different than she does. So it has two user accounts, both with files we want to back-up. Installing Duplicati as a service in this case is a must.<\/p>\n\n\n\n<p>Both of the plist configuration files can be installed as any user as they&#8217;ll be going in a system-wide location which will run Duplicati as a system service.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Service LaunchDaemon<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo vi \/Library\/LaunchDaemons\/com.duplicati.server.plist<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE plist PUBLIC \"-\/\/Apple\/\/DTD PLIST 1.0\/\/EN\" \"http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd\"&gt;\n&lt;plist version=\"1.0\"&gt;\n&lt;dict&gt;\n&nbsp; &nbsp; &lt;key&gt;Label&lt;\/key&gt;\n&nbsp; &nbsp; &lt;string&gt;com.duplicati.server&lt;\/string&gt;\n&nbsp; &nbsp; &lt;key&gt;ProgramArguments&lt;\/key&gt;\n&nbsp; &nbsp; &lt;array&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;\/Applications\/Duplicati.app\/Contents\/MacOS\/duplicati-server&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--webservice-port=8200&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--log-file=\/Library\/Logs\/duplicati_server.log&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--log-level=Information&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--verbose=true&lt;\/string&gt;\n&nbsp; &nbsp; &lt;\/array&gt;\n&nbsp; &nbsp; &lt;key&gt;RunAtLoad&lt;\/key&gt;\n&nbsp; &nbsp; &lt;true\/&gt;\n&nbsp; &nbsp; &lt;key&gt;KeepAlive&lt;\/key&gt;\n&nbsp; &nbsp; &lt;true\/&gt;\n&nbsp; &nbsp; &lt;key&gt;StandardOutPath&lt;\/key&gt;\n&nbsp; &nbsp; &lt;string&gt;\/Library\/Logs\/duplicati_out.log&lt;\/string&gt;\n&nbsp; &nbsp; &lt;key&gt;StandardErrorPath&gt;&lt;\/key&gt;\n&nbsp; &nbsp; &lt;string&gt;\/Library\/Logs\/duplicati_err.log&lt;\/string&gt;\n&nbsp; &nbsp; &lt;key&gt;Nice&lt;\/key&gt;\n&nbsp; &nbsp; &lt;integer&gt;20&lt;\/integer&gt;\n&lt;\/dict&gt;\n&lt;\/plist&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">TrayIcon LaunchAgent<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo vi \/Library\/LaunchAgents\/com.duplicati.app.launchagent.plist<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE plist PUBLIC \"-\/\/Apple\/\/DTD PLIST 1.0\/\/EN\" \"http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd\"&gt;\n&lt;plist version=\"1.0\"&gt;&lt;dict&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;Label&lt;\/key&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;com.duplicati.app.launchagent&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;ProgramArguments&lt;\/key&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;array&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;\/usr\/bin\/open&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;\/Applications\/Duplicati.app&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--args&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--hosturl=\"http:\/\/localhost:8200\"&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;--no-hosted-server&lt;\/string&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/array&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;RunAtLoad&lt;\/key&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;true\/&gt;\n&lt;\/dict&gt;\n&lt;\/plist&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">MacOS Configuration Confirmation<\/h3>\n\n\n\n<p>Once those two files are in place, the next time you reboot and log in, any and all users should have a Duplicati icon in the system tray. You can then <a href=\"https:\/\/www.foell.org\/justin\/get-your-files-organized-have-a-backup-plan\/\">configure a backup job<\/a> to read all users&#8217; files without issue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful Duplicati Options (all platforms)<\/h2>\n\n\n\n<p>There are two settings to reduce Duplicati&#8217;s resource usage:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>use-background-io-priority<\/li><li>thread-priority<\/li><\/ul>\n\n\n\n<p>On my brand-new 2019 XPS13 developer system Duplicati was using 280% CPU.<\/p>\n\n\n\n<p>In other words, three of the 8 available cores were dedicated to Duplicati, plus disk I\/O. I recommend setting <code>use-background-io-priority<\/code> to true and <code>thread-priority<\/code> to something below &#8220;normal&#8221; to adjust the CPU usage to an acceptable level. You can find these under &#8220;Advanced options&#8221; on the last page of the Add\/Edit Configuration page of a backup.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"969\" data-attachment-id=\"3731\" data-permalink=\"https:\/\/www.foell.org\/justin\/duplicati-setup-tips-for-linux-raspberrypi-macos\/duplicati-cpu-io-settings\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2020\/04\/Duplicati-CPU-IO-Settings.png\" data-orig-size=\"766,969\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Duplicati-CPU-IO-Settings\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.foell.org\/justin\/files\/2020\/04\/Duplicati-CPU-IO-Settings-237x300.png\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2020\/04\/Duplicati-CPU-IO-Settings.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2020\/04\/Duplicati-CPU-IO-Settings.png\" alt=\"\" class=\"wp-image-3731\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2020\/04\/Duplicati-CPU-IO-Settings.png 766w, https:\/\/www.foell.org\/justin\/files\/2020\/04\/Duplicati-CPU-IO-Settings-237x300.png 237w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Test<\/h2>\n\n\n\n<p>As always, test your configuration. I like to do a daily backup with &#8220;Smart backup retention&#8221; so my backup cloud disk usage doesn&#8217;t grow indeterminately.<\/p>\n\n\n\n<p>Make sure your RaspberryPi backups are completing. It will take a <em>while<\/em> if you have a lot of data. For a 1TB backup from my RaspberryPi, it took a full week to complete because it is s-l-o-w. Once a full backup is made, the incremental updates shouldn&#8217;t take as long, but they may still take longer than a day to complete.<\/p>\n<div class='kindleWidget kindleLight' ><img decoding=\"async\" src=\"https:\/\/www.foell.org\/justin\/wp-content\/plugins\/send-to-kindle\/media\/white-15.png\" \/><span>Send to Kindle<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>Single-user vs service Before you install Duplicati, there&#8217;s one question you need to ask: Does this computer have multiple user logins (that you want to back-up), or is it primarily used by one user? This is important because you can install Duplicati in one of two ways: to run as a single-user, or to run&hellip; <a href=\"https:\/\/www.foell.org\/justin\/duplicati-setup-tips-for-linux-raspberrypi-macos\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Duplicati setup tips for Linux, RaspberryPi & MacOS","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,8],"tags":[172,166,152,72],"class_list":["post-3721","post","type-post","status-publish","format-standard","hentry","category-business","category-ubuntu","tag-duplicati","tag-linux","tag-mac","tag-raspberry-pi"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/3721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/comments?post=3721"}],"version-history":[{"count":8,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/3721\/revisions"}],"predecessor-version":[{"id":3820,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/3721\/revisions\/3820"}],"wp:attachment":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/media?parent=3721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/categories?post=3721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/tags?post=3721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}