Skip to content

Repository files navigation

ArrowLoop

Build  Container  Docker Pulls  Image Size  Arch  rclone  Unraid  License: AGPL-3.0  Documentation


Two-way file sync that shows you the plan before it moves anything.

ArrowLoop keeps two folders in step, say a NAS share and a laptop, or a phone and a WebDAV cloud. It remembers what both sides last agreed on, lists every change before a run, and stops rather than delete more than it should.

Android testers wanted: join the Google Play closed test

Important

Android testers wanted. Google Play only lists an app from a new developer account after at least 12 testers have kept it installed for 14 days. If you have an Android phone:

  1. Join the tester group.
  2. Open the test page and tap Become a tester.
  3. Install ArrowLoop from Google Play and keep it for 14 days. Using it for real helps most, and anything that goes wrong is welcome as an issue.

Download for WindowsDownload for Windows on ARM   Download for macOS   Download for LinuxDownload for Linux on ARM

Install from Unraid's Community Applications   Run it with Docker   Download the source archive   Read the documentation

On Google Play soon   Download the Android app
Always downloads the latest build


A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto


Table of Contents

  1. What it looks like
  2. What it does
  3. Getting started
  4. Documentation
  5. How AI is used here
  6. Support this project

1. What it looks like

The desktop app showing the preview of a run: copies in both directions, a conflict and a deletion
The desktop app: every copy, deletion and conflict of the next run, before anything moves

The web interface of the container in a browser, listing four jobs
The same interface from the container, in any browser on your network

The Android app showing its jobs, the preview of a run and the storage targets
The Android app, with the engine running on the phone


2. What it does

  • Two-way, with a memory. A state database per job tells a new file from a deleted one, so nothing deleted comes back and nothing new disappears. How it decides
  • A plan before every run. The preview lists every copy, deletion and conflict. Untick a row and that file stays exactly as it is. The interface
  • Brakes instead of surprises. Deletions go to a trash, a run that would delete too much or finds a side suddenly empty stops, and a crash at any step can be picked up again. Safety
  • Over 60 clouds and servers. Every rclone backend is built in: SMB, SFTP, S3, WebDAV, Nextcloud, OneDrive, Google Drive and the rest. Configuring a job
  • Runs on its own. Schedules, real-time watching, notifications and a run log that writes down every run. Configuring a job
  • Wherever you need it. A Docker container for your server or Unraid, a desktop app for Windows, macOS and Linux, and an Android app that runs the engine on the phone. Installing

3. Getting started

On a server, one container is enough:

docker run -d --name arrowloop -p 8422:8422 \
  -v /path/to/config:/config \
  -v /path/to/data:/data \
  junkerderprovinz/arrowloop:latest

Then open port 8422 in a browser and add your first job. On Unraid, install it from Community Applications instead. The desktop and Android apps are the download buttons above. Passwords, reverse proxies and updates are in the installation guide.


4. Documentation

The documentation has the details this page leaves out:

  • Installing: container, Unraid, desktop, Android and the single binary
  • Configuring a job: every field of the job file, schedules, watching and notifications
  • The interface: the preview, editing jobs, history, conflicts and the trash
  • Command line: sync, jobs, web, daemon and service
  • How it decides: the decision table, renames, case and Unicode
  • Safety: the trash, the brakes, half-written files and crashes
  • How it compares: against GoodSync, FreeFileSync, Syncthing, rclone bisync and others
  • How it is tested: the convergence test, broken guards and CI on three systems
  • When something goes wrong: refused runs, files that keep copying and a container that restarts

5. How AI is used here

One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.

You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.


6. Support this project

Questions? Check the support thread. Bugs, ideas or feature requests? Please open a GitHub issue.

A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto

Reporting something that went wrong is worth as much. A two-way sync meets filesystems, network shares and timing that no test suite can reach on its own, and the bugs that matter here are the quiet ones. If a run did something you did not expect, open an issue with the run's own log line: it names the job, the file and the reason.

About

Self-hosted two-way file sync for server, desktop and Android that shows you the plan before it moves anything: a state database, a trash and two brakes. Any rclone backend.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages