[{"data":1,"prerenderedAt":1076},["ShallowReactive",2],{"docs-veeam-eu-s3-setup":3,"docs-related-veeam-eu-s3-setup":147},{"id":4,"title":5,"body":6,"date":133,"description":134,"extension":135,"meta":136,"navigation":137,"path":138,"seo":139,"stem":140,"tags":141,"tool":145,"__hash__":146},"docs/docs/veeam-eu-s3-setup.md","Veeam Backup & Replication — S3-Compatible Object Storage Repository",{"type":7,"value":8,"toc":123},"minimark",[9,13,18,36,40,60,64,67,95,101,105,116,120],[10,11,12],"p",{},"Add HummingTribe as an offsite object storage repository in Veeam v12+.",[14,15,17],"h3",{"id":16},"_1-get-your-s3-credentials","1. Get your S3 credentials",[10,19,20,21,26,27,31,32,35],{},"Log in to your ",[22,23,25],"a",{"href":24},"/dashboard","HummingTribe dashboard"," → S3 Storage tab. Copy your ",[28,29,30],"strong",{},"Access Key ID"," and ",[28,33,34],{},"Secret Access Key",". Note your bucket name.",[14,37,39],{"id":38},"_2-add-object-storage-repository","2. Add object storage repository",[10,41,42,43,46,47,46,50,46,53,46,56,59],{},"In the Veeam console, go to ",[28,44,45],{},"Backup Infrastructure"," → ",[28,48,49],{},"Backup Repositories",[28,51,52],{},"Add Repository",[28,54,55],{},"Object Storage",[28,57,58],{},"S3 Compatible",".",[14,61,63],{"id":62},"_3-enter-connection-details","3. Enter connection details",[10,65,66],{},"Fill in the wizard fields:",[10,68,69,72,73,77,72,80,83,72,86,89,72,92],{},[28,70,71],{},"Service point:"," ",[74,75,76],"code",{},"https://storage.hummingtribe.com",[28,78,79],{},"Region:",[74,81,82],{},"garage",[28,84,85],{},"Credentials:",[74,87,88],{},"your-access-key-id / secret",[28,90,91],{},"Bucket:",[74,93,94],{},"your-bucket-name",[10,96,97,98,59],{},"When prompted for path style, select ",[28,99,100],{},"Path-based URL",[14,102,104],{"id":103},"_4-set-a-folder-and-finish","4. Set a folder and finish",[10,106,107,108,111,112,115],{},"Choose or create a folder within the bucket (e.g. ",[74,109,110],{},"veeam-backups","), complete the wizard, and click ",[28,113,114],{},"Finish",". The repository appears in your list and is ready to use in backup jobs.",[14,117,119],{"id":118},"_5-use-as-offsite-target","5. Use as offsite target",[10,121,122],{},"In your backup or backup copy job, set this repository as the target (or as the secondary offsite copy target in a Scale-Out Backup Repository). Run a full backup to verify the connection end-to-end.",{"title":124,"searchDepth":125,"depth":125,"links":126},"",2,[127,129,130,131,132],{"id":16,"depth":128,"text":17},3,{"id":38,"depth":128,"text":39},{"id":62,"depth":128,"text":63},{"id":103,"depth":128,"text":104},{"id":118,"depth":128,"text":119},"2026-03-24","Add HummingTribe as an S3-compatible object storage repository in Veeam Backup & Replication v12+. Step-by-step setup guide.","md",{},true,"/docs/veeam-eu-s3-setup",{"title":5,"description":134},"docs/veeam-eu-s3-setup",[142,143,144,145],"s3","backup","setup-guide","veeam","fqwsf8fhjAe-3P0U5UBWyx9bDY4scpx153-XMljt1nM",[148,795,912],{"id":149,"title":150,"body":151,"date":785,"description":786,"extension":135,"meta":787,"navigation":137,"path":788,"seo":789,"stem":790,"tags":791,"tool":323,"__hash__":794},"docs/docs/restic-eu-s3-setup.md","restic — Encrypted, Deduplicated Backups to EU S3",{"type":7,"value":152,"toc":775},[153,156,160,163,190,193,207,221,225,235,239,242,300,310,314,327,333,337,352,355,363,366,370,373,385,388,410,420,424,427,438,482,485,501,511,554,562,697,700,716,720,723,756,766,771],[10,154,155],{},"Fast, encrypted, deduplicated backups from the command line. Works on Linux and macOS. Windows is supported via the restic binary with PowerShell environment variables and Task Scheduler — not covered here.",[14,157,159],{"id":158},"_1-install-restic","1. Install restic",[10,161,162],{},"On Debian/Ubuntu:",[164,165,169],"pre",{"className":166,"code":167,"language":168,"meta":124,"style":124},"language-bash shiki shiki-themes github-light github-dark","sudo apt install restic\n","bash",[74,170,171],{"__ignoreMap":124},[172,173,176,180,184,187],"span",{"class":174,"line":175},"line",1,[172,177,179],{"class":178},"sScJk","sudo",[172,181,183],{"class":182},"sZZnC"," apt",[172,185,186],{"class":182}," install",[172,188,189],{"class":182}," restic\n",[10,191,192],{},"On macOS:",[164,194,196],{"className":166,"code":195,"language":168,"meta":124,"style":124},"brew install restic\n",[74,197,198],{"__ignoreMap":124},[172,199,200,203,205],{"class":174,"line":175},[172,201,202],{"class":178},"brew",[172,204,186],{"class":182},[172,206,189],{"class":182},[10,208,209,210,213,214,217,218,59],{},"The ",[74,211,212],{},"apt"," package may lag behind upstream releases. For the latest version, download the static binary from ",[28,215,216],{},"github.com/restic/restic/releases"," and place it in ",[74,219,220],{},"/usr/local/bin",[14,222,224],{"id":223},"_2-get-your-s3-credentials","2. Get your S3 credentials",[10,226,20,227,26,229,231,232,234],{},[22,228,25],{"href":24},[28,230,30],{}," and reveal your ",[28,233,34],{}," (shown once — save it now).",[14,236,238],{"id":237},"_3-export-environment-variables","3. Export environment variables",[10,240,241],{},"restic reads its configuration from environment variables. Set these in your terminal:",[164,243,245],{"className":166,"code":244,"language":168,"meta":124,"style":124},"export AWS_ACCESS_KEY_ID=\"your-access-key-id\"\nexport AWS_SECRET_ACCESS_KEY=\"your-secret-access-key\"\nexport RESTIC_REPOSITORY=\"s3:https://storage.hummingtribe.com/your-bucket-name\"\nexport RESTIC_PASSWORD=\"your-password\"\n",[74,246,247,263,275,287],{"__ignoreMap":124},[172,248,249,253,257,260],{"class":174,"line":175},[172,250,252],{"class":251},"szBVR","export",[172,254,256],{"class":255},"sVt8B"," AWS_ACCESS_KEY_ID",[172,258,259],{"class":251},"=",[172,261,262],{"class":182},"\"your-access-key-id\"\n",[172,264,265,267,270,272],{"class":174,"line":125},[172,266,252],{"class":251},[172,268,269],{"class":255}," AWS_SECRET_ACCESS_KEY",[172,271,259],{"class":251},[172,273,274],{"class":182},"\"your-secret-access-key\"\n",[172,276,277,279,282,284],{"class":174,"line":128},[172,278,252],{"class":251},[172,280,281],{"class":255}," RESTIC_REPOSITORY",[172,283,259],{"class":251},[172,285,286],{"class":182},"\"s3:https://storage.hummingtribe.com/your-bucket-name\"\n",[172,288,290,292,295,297],{"class":174,"line":289},4,[172,291,252],{"class":251},[172,293,294],{"class":255}," RESTIC_PASSWORD",[172,296,259],{"class":251},[172,298,299],{"class":182},"\"your-password\"\n",[10,301,302,305,306,309],{},[74,303,304],{},"RESTIC_PASSWORD"," is the encryption passphrase for your repository. Choose a strong password and store it securely. ",[28,307,308],{},"If you lose this password, your backups are unrecoverable"," — restic has no password reset.",[14,311,313],{"id":312},"_4-initialize-the-repository","4. Initialize the repository",[164,315,317],{"className":166,"code":316,"language":168,"meta":124,"style":124},"restic init\n",[74,318,319],{"__ignoreMap":124},[172,320,321,324],{"class":174,"line":175},[172,322,323],{"class":178},"restic",[172,325,326],{"class":182}," init\n",[10,328,329,330,332],{},"This creates the repository structure in your S3 bucket and derives an encryption key from ",[74,331,304],{},". You only need to run this once per bucket.",[14,334,336],{"id":335},"_5-run-your-first-backup","5. Run your first backup",[164,338,340],{"className":166,"code":339,"language":168,"meta":124,"style":124},"restic backup /path/to/data\n",[74,341,342],{"__ignoreMap":124},[172,343,344,346,349],{"class":174,"line":175},[172,345,323],{"class":178},[172,347,348],{"class":182}," backup",[172,350,351],{"class":182}," /path/to/data\n",[10,353,354],{},"Example output:",[164,356,361],{"className":357,"code":359,"language":360},[358],"language-text","repository 3a9e2b1c opened (version 2, compression level auto)\ncreated new cache in /home/user/.cache/restic\n\nFiles:        142 new,     0 changed,     0 unmodified\nDirs:          18 new,     0 changed,     0 unmodified\nAdded to the repository: 48.271 MiB (45.893 MiB stored)\n\nprocessed 142 files, 48.271 MiB in 0:03\nsnapshot 6a3e8f12 saved\n","text",[74,362,359],{"__ignoreMap":124},[10,364,365],{},"Subsequent backups only upload changed or new data blocks — restic deduplicates automatically.",[14,367,369],{"id":368},"_6-list-snapshots-and-restore","6. List snapshots and restore",[10,371,372],{},"List all snapshots:",[164,374,376],{"className":166,"code":375,"language":168,"meta":124,"style":124},"restic snapshots\n",[74,377,378],{"__ignoreMap":124},[172,379,380,382],{"class":174,"line":175},[172,381,323],{"class":178},[172,383,384],{"class":182}," snapshots\n",[10,386,387],{},"Restore a specific snapshot to a target directory:",[164,389,391],{"className":166,"code":390,"language":168,"meta":124,"style":124},"restic restore 6a3e8f12 --target /path/to/restore\n",[74,392,393],{"__ignoreMap":124},[172,394,395,397,400,403,407],{"class":174,"line":175},[172,396,323],{"class":178},[172,398,399],{"class":182}," restore",[172,401,402],{"class":182}," 6a3e8f12",[172,404,406],{"class":405},"sj4cs"," --target",[172,408,409],{"class":182}," /path/to/restore\n",[10,411,412,413,416,417,59],{},"Replace ",[74,414,415],{},"6a3e8f12"," with the snapshot ID from ",[74,418,419],{},"restic snapshots",[14,421,423],{"id":422},"_7-automate-with-cron-or-launchd","7. Automate with cron or launchd",[10,425,426],{},"Store your environment variables in a file so cron or launchd can source them.",[10,428,429,430,433,434,437],{},"Create ",[74,431,432],{},"/root/.restic.env"," (Linux) or ",[74,435,436],{},"~/.restic.env"," (macOS):",[164,439,440],{"className":166,"code":244,"language":168,"meta":124,"style":124},[74,441,442,452,462,472],{"__ignoreMap":124},[172,443,444,446,448,450],{"class":174,"line":175},[172,445,252],{"class":251},[172,447,256],{"class":255},[172,449,259],{"class":251},[172,451,262],{"class":182},[172,453,454,456,458,460],{"class":174,"line":125},[172,455,252],{"class":251},[172,457,269],{"class":255},[172,459,259],{"class":251},[172,461,274],{"class":182},[172,463,464,466,468,470],{"class":174,"line":128},[172,465,252],{"class":251},[172,467,281],{"class":255},[172,469,259],{"class":251},[172,471,286],{"class":182},[172,473,474,476,478,480],{"class":174,"line":289},[172,475,252],{"class":251},[172,477,294],{"class":255},[172,479,259],{"class":251},[172,481,299],{"class":182},[10,483,484],{},"Lock down permissions — this file contains your repo password and S3 credentials in plaintext:",[164,486,488],{"className":166,"code":487,"language":168,"meta":124,"style":124},"chmod 600 ~/.restic.env\n",[74,489,490],{"__ignoreMap":124},[172,491,492,495,498],{"class":174,"line":175},[172,493,494],{"class":178},"chmod",[172,496,497],{"class":405}," 600",[172,499,500],{"class":182}," ~/.restic.env\n",[10,502,503,506,507,510],{},[28,504,505],{},"Linux (cron):"," Create ",[74,508,509],{},"/etc/cron.d/restic-backup",":",[164,512,514],{"className":166,"code":513,"language":168,"meta":124,"style":124},"0 2 * * * root . /root/.restic.env && /usr/bin/restic backup /path/to/data --quiet\n",[74,515,516],{"__ignoreMap":124},[172,517,518,521,524,527,529,531,534,537,540,543,546,548,551],{"class":174,"line":175},[172,519,520],{"class":178},"0",[172,522,523],{"class":405}," 2",[172,525,526],{"class":405}," *",[172,528,526],{"class":405},[172,530,526],{"class":405},[172,532,533],{"class":182}," root",[172,535,536],{"class":182}," .",[172,538,539],{"class":182}," /root/.restic.env",[172,541,542],{"class":255}," && ",[172,544,545],{"class":178},"/usr/bin/restic",[172,547,348],{"class":182},[172,549,550],{"class":182}," /path/to/data",[172,552,553],{"class":405}," --quiet\n",[10,555,556,506,559,510],{},[28,557,558],{},"macOS (launchd):",[74,560,561],{},"~/Library/LaunchAgents/com.user.restic.plist",[164,563,567],{"className":564,"code":565,"language":566,"meta":124,"style":124},"language-xml shiki shiki-themes github-light github-dark","\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003C!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\"\n  \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n\u003Cplist version=\"1.0\">\n\u003Cdict>\n  \u003Ckey>Label\u003C/key>\n  \u003Cstring>com.user.restic\u003C/string>\n  \u003Ckey>ProgramArguments\u003C/key>\n  \u003Carray>\n    \u003Cstring>/bin/bash\u003C/string>\n    \u003Cstring>-c\u003C/string>\n    \u003Cstring>source $HOME/.restic.env &amp;&amp; /usr/local/bin/restic backup /path/to/data --quiet\u003C/string>\n  \u003C/array>\n  \u003Ckey>StartCalendarInterval\u003C/key>\n  \u003Cdict>\n    \u003Ckey>Hour\u003C/key>\n    \u003Cinteger>2\u003C/integer>\n    \u003Ckey>Minute\u003C/key>\n    \u003Cinteger>0\u003C/integer>\n  \u003C/dict>\n\u003C/dict>\n\u003C/plist>\n","xml",[74,568,569,574,579,584,589,595,601,607,613,619,625,631,637,643,649,655,661,667,673,679,685,691],{"__ignoreMap":124},[172,570,571],{"class":174,"line":175},[172,572,573],{},"\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",[172,575,576],{"class":174,"line":125},[172,577,578],{},"\u003C!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\"\n",[172,580,581],{"class":174,"line":128},[172,582,583],{},"  \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n",[172,585,586],{"class":174,"line":289},[172,587,588],{},"\u003Cplist version=\"1.0\">\n",[172,590,592],{"class":174,"line":591},5,[172,593,594],{},"\u003Cdict>\n",[172,596,598],{"class":174,"line":597},6,[172,599,600],{},"  \u003Ckey>Label\u003C/key>\n",[172,602,604],{"class":174,"line":603},7,[172,605,606],{},"  \u003Cstring>com.user.restic\u003C/string>\n",[172,608,610],{"class":174,"line":609},8,[172,611,612],{},"  \u003Ckey>ProgramArguments\u003C/key>\n",[172,614,616],{"class":174,"line":615},9,[172,617,618],{},"  \u003Carray>\n",[172,620,622],{"class":174,"line":621},10,[172,623,624],{},"    \u003Cstring>/bin/bash\u003C/string>\n",[172,626,628],{"class":174,"line":627},11,[172,629,630],{},"    \u003Cstring>-c\u003C/string>\n",[172,632,634],{"class":174,"line":633},12,[172,635,636],{},"    \u003Cstring>source $HOME/.restic.env &amp;&amp; /usr/local/bin/restic backup /path/to/data --quiet\u003C/string>\n",[172,638,640],{"class":174,"line":639},13,[172,641,642],{},"  \u003C/array>\n",[172,644,646],{"class":174,"line":645},14,[172,647,648],{},"  \u003Ckey>StartCalendarInterval\u003C/key>\n",[172,650,652],{"class":174,"line":651},15,[172,653,654],{},"  \u003Cdict>\n",[172,656,658],{"class":174,"line":657},16,[172,659,660],{},"    \u003Ckey>Hour\u003C/key>\n",[172,662,664],{"class":174,"line":663},17,[172,665,666],{},"    \u003Cinteger>2\u003C/integer>\n",[172,668,670],{"class":174,"line":669},18,[172,671,672],{},"    \u003Ckey>Minute\u003C/key>\n",[172,674,676],{"class":174,"line":675},19,[172,677,678],{},"    \u003Cinteger>0\u003C/integer>\n",[172,680,682],{"class":174,"line":681},20,[172,683,684],{},"  \u003C/dict>\n",[172,686,688],{"class":174,"line":687},21,[172,689,690],{},"\u003C/dict>\n",[172,692,694],{"class":174,"line":693},22,[172,695,696],{},"\u003C/plist>\n",[10,698,699],{},"Load the agent:",[164,701,703],{"className":166,"code":702,"language":168,"meta":124,"style":124},"launchctl load ~/Library/LaunchAgents/com.user.restic.plist\n",[74,704,705],{"__ignoreMap":124},[172,706,707,710,713],{"class":174,"line":175},[172,708,709],{"class":178},"launchctl",[172,711,712],{"class":182}," load",[172,714,715],{"class":182}," ~/Library/LaunchAgents/com.user.restic.plist\n",[14,717,719],{"id":718},"_8-retention-policy-with-forget-prune","8. Retention policy with forget + prune",[10,721,722],{},"Remove old snapshots by policy:",[164,724,726],{"className":166,"code":725,"language":168,"meta":124,"style":124},"restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune\n",[74,727,728],{"__ignoreMap":124},[172,729,730,732,735,738,741,744,747,750,753],{"class":174,"line":175},[172,731,323],{"class":178},[172,733,734],{"class":182}," forget",[172,736,737],{"class":405}," --keep-daily",[172,739,740],{"class":405}," 7",[172,742,743],{"class":405}," --keep-weekly",[172,745,746],{"class":405}," 4",[172,748,749],{"class":405}," --keep-monthly",[172,751,752],{"class":405}," 12",[172,754,755],{"class":405}," --prune\n",[10,757,758,761,762,765],{},[74,759,760],{},"forget"," removes snapshots that fall outside the retention rules. ",[74,763,764],{},"prune"," deletes unreferenced data blocks and frees the actual storage. Pruning is an expensive operation on large repositories — schedule it separately from the nightly backup (e.g. weekly on Sundays).",[10,767,768,769,59],{},"Manage your bucket and credentials from your ",[22,770,25],{"href":24},[772,773,774],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":124,"searchDepth":125,"depth":125,"links":776},[777,778,779,780,781,782,783,784],{"id":158,"depth":128,"text":159},{"id":223,"depth":128,"text":224},{"id":237,"depth":128,"text":238},{"id":312,"depth":128,"text":313},{"id":335,"depth":128,"text":336},{"id":368,"depth":128,"text":369},{"id":422,"depth":128,"text":423},{"id":718,"depth":128,"text":719},"2026-04-17","Set up restic for encrypted, deduplicated backups to HummingTribe S3 on Linux and macOS. Install, initialize repo, schedule automated backups, manage retention.",{},"/docs/restic-eu-s3-setup",{"title":150,"description":786},"docs/restic-eu-s3-setup",[142,143,144,323,792,793],"linux","macos","sag8vyWzHWHJfpogioEbc9tmhSM8fdT1rWwxBk7bjTE",{"id":796,"title":797,"body":798,"date":133,"description":904,"extension":135,"meta":905,"navigation":137,"path":906,"seo":907,"stem":908,"tags":909,"tool":910,"__hash__":911},"docs/docs/duplicati-eu-s3-setup.md","Duplicati — Automated Encrypted Backups (Windows, macOS, Linux)",{"type":7,"value":799,"toc":897},[800,803,807,817,819,827,831,841,845,855,880,886,890],[10,801,802],{},"Duplicati is free, open-source, and runs a local web UI. Setup takes under 10 minutes.",[14,804,806],{"id":805},"_1-install-duplicati","1. Install Duplicati",[10,808,809,810,813,814,59],{},"Download the latest release from ",[28,811,812],{},"duplicati.com"," and install it on your machine. Launch the application — it opens in your browser at ",[74,815,816],{},"http://localhost:8200",[14,818,224],{"id":223},[10,820,20,821,26,823,231,825,234],{},[22,822,25],{"href":24},[28,824,30],{},[28,826,34],{},[14,828,830],{"id":829},"_3-add-a-new-backup-job","3. Add a new backup job",[10,832,833,834,46,837,840],{},"Click ",[28,835,836],{},"Add backup",[28,838,839],{},"Configure a new backup",". Give it a name, set an encryption passphrase, and click Next.",[14,842,844],{"id":843},"_4-configure-storage-destination","4. Configure storage destination",[10,846,847,848,851,852,854],{},"Set ",[28,849,850],{},"Storage Type"," to ",[28,853,58],{},". Fill in the fields:",[10,856,857,72,860,863,72,866,868,72,871,874,72,877],{},[28,858,859],{},"Server:",[74,861,862],{},"storage.hummingtribe.com",[28,864,865],{},"Bucket name:",[74,867,94],{},[28,869,870],{},"AWS Access ID:",[74,872,873],{},"your-access-key-id",[28,875,876],{},"AWS Secret Key:",[74,878,879],{},"your-secret-access-key",[10,881,833,882,885],{},[28,883,884],{},"Test connection"," — you should see a success message.",[14,887,889],{"id":888},"_5-select-source-and-schedule","5. Select source and schedule",[10,891,892,893,896],{},"Choose the folders to back up, set your schedule (daily is recommended), and click ",[28,894,895],{},"Save",". Duplicati will run your first backup immediately.",{"title":124,"searchDepth":125,"depth":125,"links":898},[899,900,901,902,903],{"id":805,"depth":128,"text":806},{"id":223,"depth":128,"text":224},{"id":829,"depth":128,"text":830},{"id":843,"depth":128,"text":844},{"id":888,"depth":128,"text":889},"Set up automated encrypted backups from Windows, macOS, or Linux to HummingTribe S3 storage using Duplicati. Free, open-source, under 10 minutes.",{},"/docs/duplicati-eu-s3-setup",{"title":797,"description":904},"docs/duplicati-eu-s3-setup",[142,143,144,910],"duplicati","zbyg4xZCLGHkLeFvB74tp4b6ag2Q77pWS7HTP7hKAuQ",{"id":913,"title":914,"body":915,"date":133,"description":1069,"extension":135,"meta":1070,"navigation":137,"path":1071,"seo":1072,"stem":1073,"tags":1074,"tool":1018,"__hash__":1075},"docs/docs/rclone-eu-s3-setup.md","rclone — Scripted Sync and Transfer from the Command Line",{"type":7,"value":916,"toc":1062},[917,920,924,934,936,944,948,955,1002,1006,1009,1025,1029,1032,1053,1059],[10,918,919],{},"rclone is the Swiss Army knife of cloud storage. Works on any OS, easy to automate with cron.",[14,921,923],{"id":922},"_1-install-rclone","1. Install rclone",[10,925,926,927,930,931,59],{},"On Linux/macOS run ",[74,928,929],{},"curl https://rclone.org/install.sh | sudo bash",". On Windows, download the installer from ",[28,932,933],{},"rclone.org",[14,935,224],{"id":223},[10,937,20,938,26,940,31,942,59],{},[22,939,25],{"href":24},[28,941,30],{},[28,943,34],{},[14,945,947],{"id":946},"_3-configure-a-remote","3. Configure a remote",[10,949,950,951,954],{},"Add the following to your rclone config file (",[74,952,953],{},"~/.config/rclone/rclone.conf","):",[164,956,960],{"className":957,"code":958,"language":959,"meta":124,"style":124},"language-ini shiki shiki-themes github-light github-dark","[hummingtribe]\ntype = s3\nprovider = Other\naccess_key_id = YOUR_ACCESS_KEY_ID\nsecret_access_key = YOUR_SECRET_ACCESS_KEY\nendpoint = https://storage.hummingtribe.com\nforce_path_style = true\nregion = garage\n","ini",[74,961,962,967,972,977,982,987,992,997],{"__ignoreMap":124},[172,963,964],{"class":174,"line":175},[172,965,966],{},"[hummingtribe]\n",[172,968,969],{"class":174,"line":125},[172,970,971],{},"type = s3\n",[172,973,974],{"class":174,"line":128},[172,975,976],{},"provider = Other\n",[172,978,979],{"class":174,"line":289},[172,980,981],{},"access_key_id = YOUR_ACCESS_KEY_ID\n",[172,983,984],{"class":174,"line":591},[172,985,986],{},"secret_access_key = YOUR_SECRET_ACCESS_KEY\n",[172,988,989],{"class":174,"line":597},[172,990,991],{},"endpoint = https://storage.hummingtribe.com\n",[172,993,994],{"class":174,"line":603},[172,995,996],{},"force_path_style = true\n",[172,998,999],{"class":174,"line":609},[172,1000,1001],{},"region = garage\n",[14,1003,1005],{"id":1004},"_4-test-the-connection","4. Test the connection",[10,1007,1008],{},"List your bucket to confirm everything works:",[164,1010,1012],{"className":166,"code":1011,"language":168,"meta":124,"style":124},"rclone ls hummingtribe:your-bucket-name\n",[74,1013,1014],{"__ignoreMap":124},[172,1015,1016,1019,1022],{"class":174,"line":175},[172,1017,1018],{"class":178},"rclone",[172,1020,1021],{"class":182}," ls",[172,1023,1024],{"class":182}," hummingtribe:your-bucket-name\n",[14,1026,1028],{"id":1027},"_5-sync-a-folder","5. Sync a folder",[10,1030,1031],{},"Copy a local folder to your bucket:",[164,1033,1035],{"className":166,"code":1034,"language":168,"meta":124,"style":124},"rclone sync /path/to/local hummingtribe:your-bucket-name/backups --progress\n",[74,1036,1037],{"__ignoreMap":124},[172,1038,1039,1041,1044,1047,1050],{"class":174,"line":175},[172,1040,1018],{"class":178},[172,1042,1043],{"class":182}," sync",[172,1045,1046],{"class":182}," /path/to/local",[172,1048,1049],{"class":182}," hummingtribe:your-bucket-name/backups",[172,1051,1052],{"class":405}," --progress\n",[10,1054,1055,1056],{},"Add this to a cron job for automated daily backups: ",[74,1057,1058],{},"0 2 * * * rclone sync /path/to/local hummingtribe:your-bucket-name/backups",[772,1060,1061],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":124,"searchDepth":125,"depth":125,"links":1063},[1064,1065,1066,1067,1068],{"id":922,"depth":128,"text":923},{"id":223,"depth":128,"text":224},{"id":946,"depth":128,"text":947},{"id":1004,"depth":128,"text":1005},{"id":1027,"depth":128,"text":1028},"Configure rclone to sync and transfer files to HummingTribe S3 storage from the command line. Works on any OS, easy to automate with cron.",{},"/docs/rclone-eu-s3-setup",{"title":914,"description":1069},"docs/rclone-eu-s3-setup",[142,143,144,1018],"OVX0pczewz1YTtRZDZUD0JahCbkothReVOl2YBaK4cU",1776381086571]