How to Back Up Your Android Photos to Your Computer Automatically, Without the Cloud
Copy new photos from your Android phone to a Windows, Mac or Linux computer over Wi-Fi with Syncthing-Fork, and keep them when you delete them on the phone.
Short answer: install Syncthing on your computer and Syncthing-Fork on your phone, connect the two by scanning a QR code, and share the phone’s camera folder as Send Only. On the computer, accept it as Receive Only and turn on Trash Can File Versioning, so a photo you later delete on the phone is set aside on the computer instead of being deleted there as well. From then on, new photos copy themselves to the computer when both are on your Wi-Fi, without going through any cloud service.
Before you start
- Both devices have to be on at the same time. In Syncthing’s words, it “does not upload your data to the cloud but exchanges your data across your machines as soon as they are online at the same time.” Photos you take while the computer is off are copied the next time both are running.
- Syncthing keeps folders in sync; on its own it isn’t a backup. Its FAQ: “Syncthing is not a great backup application because all changes to your files (modifications, deletions, etc.) will be propagated to all your devices.” Steps 4 and 5 set it up so that deletions on the phone don’t erase the computer’s copy, and Step 7 covers freeing up space safely.
- You need a Windows, macOS or Linux computer with enough free space for your photos.
Step 1: Install Syncthing on the computer
Syncthing’s download page lists, besides the plain program, a few “user friendly OS integrations” for people “unfamiliar with Syncthing”:
- Windows: Syncthing Windows Setup, “a lightweight yet full-featured Windows installer” for Windows 10 or later. It downloads Syncthing, can start it when you log on, and can add a Windows Firewall rule for it.
- macOS: syncthing-macos, an app you install from a disk image.
- Linux: Syncthing comes with many distributions, “though often not with the most up-to-date version”; the project keeps its own packages for Debian and Ubuntu at apt.syncthing.net.
Syncthing’s settings live in a web page on the computer, at http://localhost:8384/. To show the code the phone will scan, click Actions › Show ID: the window has a QR code. If you installed the plain program instead, Syncthing’s documentation explains how to start it at logon; on Windows, that’s a shortcut to syncthing.exe --no-console --no-browser in the folder that opens with shell:startup.
Some older guides, including Syncthing’s own getting-started page, mention a “Default Folder”. Since version 2.0, Syncthing no longer creates one, so you start with no folders.
Step 2: Install Syncthing-Fork on the phone
Install Syncthing-Fork and open it. Its first-run screens ask for:
- Storage access, which is required. On Android 11 and later, this is Android’s “All files access” setting.
- No battery optimization: the app warns that “Android may stop synchronization after some time”. You can skip this screen only after a warning.
- Location, which is optional. It’s used only if you want syncing limited to Wi-Fi networks you name, because Android requires location access to read the network’s name.
- Notifications, required on Android 13 and later. The app keeps a permanent notification so that Android doesn’t stop it.
- Local network access, required on Android 17 and later, where apps need permission to reach other devices on your network.
It then creates its encryption keys, which, it warns, “may take a few minutes”.
Step 3: Connect the phone and the computer
- In Syncthing-Fork, open the Devices tab and tap + (Add Device).
- Tap the Scan QR Code button next to the Device ID field and scan the code from Step 1. The scanner is built into the app and asks for camera access; you can also type the ID.
- Tap Add at the top of the screen.
- On the computer, Syncthing shows that the phone “wants to connect. Add new device?” Click Add Device, then Save.
Device IDs aren’t secret. The FAQ: “Knowing the device ID doesn’t help you actually establish a connection to that device or get a list of files”; both devices have to add each other.
Step 4: Share the camera folder from the phone
- In the Folders tab, tap + (Add Folder).
- Tap Directory and pick the folder your camera saves to. On most phones it is inside DCIM, which Android calls “the traditional location for pictures and videos”, often in DCIM/Camera; the folder view of your gallery app shows where your photos are. Screenshots are usually somewhere else, typically in Pictures/Screenshots, so add them as a second folder if you want them too.
- Under Devices, switch on your computer.
- Change Folder Type to Send Only: “Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.”
- Tap Create.
Don’t add whole app folders the same way: the app’s wiki lists Android/media and WhatsApp among folders you “should not attempt to sync”, because “Syncing constantly changing files like logs or databases is not supported. It may cause massive battery drain.”
Step 5: Accept the folder on the computer as a backup
- Syncthing on the computer shows that the phone “wants to share folder” and asks “Add new folder?” Click Add.
- On the General tab, set Folder Path to where the photos should go on the computer.
- On the Advanced tab, set Folder Type to Receive Only. The documentation calls this type “useful for replication mirrors, backup destinations”; anything you change in that folder on the computer isn’t sent back to the phone.
- On the File Versioning tab, choose Trash Can File Versioning and leave Clean out after at 0: “Zero means forever.”
- Click Save. The first copy starts; with many photos it takes a while.
Why versioning matters. Send Only on the phone still sends deletions, and Receive Only applies “all changes from the cluster”. So without versioning, deleting a photo on the phone also deletes it on the computer. With the trash can turned on, Syncthing moves the computer’s copy into a folder called .stversions inside your photo folder instead, and keeps it there. Two limits from the documentation: versioning “applies to changes received from other devices”, so it doesn’t help with files you delete on the computer yourself, and “If a file with the same name was already in the trash can it is replaced.”
Syncthing also has an Ignore Delete option that makes a device ignore deletions altogether. Its documentation says “Enabling this is highly discouraged”, and with it each device considers the other out of date, so this guide uses versioning instead.
Step 6: Keep it running
- When it syncs. Out of the box, Syncthing-Fork runs on Wi-Fi or Ethernet but not on metered Wi-Fi or mobile data, runs on battery as well as on the charger, and stops while Battery Saver is on. You can change this in Settings › Run Conditions. To sync only while the phone charges, set Run when device is powered by to AC power.; the app counts USB and wireless charging too.
- After a restart. Settings › Behaviour › Autostart (“Start app automatically on operating system startup”) is off by default. Turn it on, or syncing stops after the phone restarts until you open the app.
- Phones that block background apps. For Xiaomi, the app’s wiki says “Xiaomi MIUI disallows apps to start on their own by default” and gives the fix: Settings › Permissions › Autostart, then turn on Syncthing-Fork. If syncing stops, the app’s Status tab shows the reason, such as Battery Saver.
- On the computer, Syncthing has to be running too, so use the installer’s option to start it when you log on.
Step 7: Check the copies, then free up space
- On the computer, the folder should say Up to Date. On the phone, the computer’s entry in the Devices tab says Up to Date once it has everything. Open a few recent photos on the computer to be sure.
- Before deleting photos on the phone, copy them from the Syncthing folder to another place, such as a different folder or an external drive. Syncthing’s FAQ encourages you “to use other tools to keep your data safe from your (or our) mistakes”, and a photo you delete on the phone afterwards ends up in the
.stversionsfolder, where it’s easy to lose track of. - Don’t sort or edit photos inside the Receive Only folder on the computer. Syncthing then shows Local Additions and a Revert Local Changes button, and the documentation warns that with it “added files will be deleted”.
- If you also use Google Photos: deleting a photo in the Google Photos app “deletes the same items from your device”. Syncthing sees that as a deletion on the phone too, which the trash can on the computer catches.
What goes online
- Photos go directly between your devices, encrypted: “All device to device traffic is protected by TLS.”
- Global discovery is on by default: every 30 minutes, Syncthing sends your device ID and listening ports to its discovery servers, which also see your IP address, so your devices can find each other.
- Relays are on by default too, but a relay “will only be used if two devices are unable to communicate directly with each other.” Anyone can run one; it can’t read your files, but it “knows your IP and device ID” and sees how much data passes through.
- Usage reporting is off unless you agree to it; the phone app asks about it from three days after the first start. Crash reporting, according to Syncthing’s documentation, is “enabled out of the box for most users”, and a report doesn’t include “log data, file names, device IDs” or other personal information.
- Home network only: you can turn off Global Discovery, Enable Relaying and Enable NAT Traversal on both devices (on the phone under Settings › Syncthing Options, on the computer under Actions › Settings › Connections). The documentation warns: “On Android, local discovery is known to usually not work, so either global discovery or hardcoding IP addresses is often required.” If the phone then can’t find the computer, open the computer’s entry in the phone’s Devices tab and enter its local address under Addresses, for example
tcp://192.168.1.20:22000, dynamic.
If the devices don’t connect
- Firewall: the computer has to allow port 22000 (TCP and UDP), which carries the data, and port 21027 (UDP), which devices on the local network use to find each other. Syncthing Windows Setup can add the rule for you.
- Windows calls your network “Public”: the FAQ says this “commonly prevents applications like Syncthing from being able to establish direct connections”, forcing them through a relay. Set the network to Private in Windows’ settings.
- “Folder marker missing”: Syncthing keeps an empty-looking
.stfolderfolder inside each shared folder, and cleaner apps sometimes delete it; the FAQ says this “happens particularly often on Android”. Don’t let a cleaner app remove it.
Apps in this guide
-
Syncthing-Fork The community-maintained Android app for Syncthing: choose folders on your phone and keep them in sync with your computer or other phones, device to device, and decide when it’s allowed to run.Download -
LocalSend An open-source AirDrop alternative that works across Android, Windows, macOS, Linux and iOS: pick a nearby device on the same network and send files or text directly.Download -
Immich The mobile app for Immich, a self-hosted photo and video library: back up the camera roll to a server you run, then browse, search and share it from the phone.Download
Sources
- Syncthing downloads (desktop packages and integrations) checked Oct 11, 2026
- Syncthing Windows Setup (README) checked Oct 11, 2026
- Syncthing docs: Getting Started checked Oct 11, 2026
- Syncthing docs: Starting Syncthing Automatically checked Oct 11, 2026
- Syncthing 2.0.0 release notes (no default folder) checked Oct 11, 2026
- Syncthing docs: FAQ (what Syncthing is, backups, device IDs, Windows relays) checked Oct 11, 2026
- Syncthing docs: Folder Types checked Oct 11, 2026
- Syncthing docs: File Versioning checked Oct 11, 2026
- Syncthing docs: Ignore Delete checked Oct 11, 2026
- Syncthing source, version 2.1.5: the web interface’s folder dialog (editFolderModalView.html) checked Oct 11, 2026
- Syncthing docs: Security Principles (discovery, relays, usage reporting) checked Oct 11, 2026
- Syncthing docs: Relaying checked Oct 11, 2026
- Syncthing docs: Automatic Crash Reporting checked Oct 11, 2026
- Syncthing docs: Tuning for LAN-only checked Oct 11, 2026
- Syncthing docs: Firewall Setup checked Oct 11, 2026
- Syncthing-Fork source, version 2.1.6.0: English interface text (strings.xml) checked Oct 11, 2026
- Syncthing-Fork source, version 2.1.6.0: first-run screens (onboarding) checked Oct 11, 2026
- Syncthing-Fork source, version 2.1.6.0: run condition defaults (RunConditionMonitor.java) checked Oct 11, 2026
- Syncthing-Fork source, version 2.1.6.0: Autostart default (SettingsBehaviorScreen.kt) checked Oct 11, 2026
- Syncthing-Fork wiki: battery optimization and folders not to sync checked Oct 11, 2026
- Syncthing-Fork wiki: Xiaomi, app does not start on boot checked Oct 11, 2026
- Android developers: Environment (DCIM, Pictures, Screenshots) checked Oct 11, 2026
- Google Photos Help: Delete and restore photos and videos (Android) checked Oct 11, 2026