aboutsummaryrefslogtreecommitdiff
path: root/blog/2022-10-20-syncthing.org
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2024-01-08 20:11:17 -0600
committerChristian Cleberg <hello@cleberg.net>2024-01-08 20:11:17 -0600
commit25945b8fead989cca09a23983623b63ce36dcc0c (patch)
tree0dfc869ce8b028e04ce9da196af08779780915ce /blog/2022-10-20-syncthing.org
parent22b526be60bf4257c2a1d58a5fad59cf6b044375 (diff)
downloadcleberg.net-25945b8fead989cca09a23983623b63ce36dcc0c.tar.gz
cleberg.net-25945b8fead989cca09a23983623b63ce36dcc0c.tar.bz2
cleberg.net-25945b8fead989cca09a23983623b63ce36dcc0c.zip
feat: total re-write from Emacs org-mode to Zola markdown
Diffstat (limited to 'blog/2022-10-20-syncthing.org')
-rw-r--r--blog/2022-10-20-syncthing.org198
1 files changed, 0 insertions, 198 deletions
diff --git a/blog/2022-10-20-syncthing.org b/blog/2022-10-20-syncthing.org
deleted file mode 100644
index 1892d48..0000000
--- a/blog/2022-10-20-syncthing.org
+++ /dev/null
@@ -1,198 +0,0 @@
-#+title: Syncthing: A Minimal Self-Hosted Cloud Storage Solution
-#+date: 2022-10-20
-
-** An Overview of Syncthing
-:PROPERTIES:
-:CUSTOM_ID: an-overview-of-syncthing
-:END:
-If you've been looking around the self-hosted cloud storage space for a
-while, you've undoubtedly run into someone suggesting
-[[https://syncthing.net][Syncthing]] as an option. However, it is an
-unusual alternative for those users out there who are used to having a
-centralized cloud server that serves as the "controller" of the data and
-interacts with clients on devices to fetch files.
-
-This post is a walkthrough of the Syncthing software, how I set up my
-personal storage, and some pros and cons of using the software.
-
-** Installing Syncthing
-:PROPERTIES:
-:CUSTOM_ID: installing-syncthing
-:END:
-To install Syncthing, visit the
-[[https://syncthing.net/downloads/][Downloads]] page or install via your
-device's package manager.
-
-*** Server & Desktop
-:PROPERTIES:
-:CUSTOM_ID: server-desktop
-:END:
-You can install Syncthing on servers and desktops via the Downloads page
-linked above or via the command-line.
-
-For Debian-based distros:
-
-#+begin_src sh
-sudo apt install syncthing
-#+end_src
-
-For Fedora-based distros:
-
-#+begin_src sh
-sudo dnf install syncthing
-#+end_src
-
-*** Mobile
-:PROPERTIES:
-:CUSTOM_ID: mobile
-:END:
-Syncthing for Android is available on
-[[https://f-droid.org/packages/com.nutomic.syncthingandroid/][F-Droid]]
-and
-[[https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid][Google
-Play]]. Syncthing does not have an official iOS client, but there is a
-third-party client called
-[[https://apps.apple.com/us/app/m%C3%B6bius-sync/id1539203216][Möbius
-Sync]].
-
-** How Does Syncthing Work?
-:PROPERTIES:
-:CUSTOM_ID: how-does-syncthing-work
-:END:
-To start, I wanted to include the main marketing blurb from their
-website:
-
-#+begin_quote
-Syncthing is a continuous file synchronization program. It synchronizes
-files between two or more computers in real time, safely protected from
-prying eyes. Your data is your data alone, and you deserve to choose
-where it is stored, whether it is shared with some third party, and how
-it's transmitted over the internet.
-
-#+end_quote
-
-Let's break this apart and add in some other details to help explain
-what exactly Syncthing does in order to sync files between devices.
-
-*** Local Syncthing Server(s)
-:PROPERTIES:
-:CUSTOM_ID: local-syncthing-servers
-:END:
-Syncthing syncs files between multiple devices by creating a local
-server on each device. These local servers handle a few different
-things, such as watching files and directories for changes, hosting an
-administrative GUI website, and authenticating with connected devices.
-
-You can also start, stop, and restart the Syncthing server via the
-command-line or web dashboard. If you're running Syncthing on a device
-with =systemd=, you can use the following commands:
-
-#+begin_src sh
-sudo systemctl start syncthing@username.service
-sudo systemctl restart syncthing@username.service
-sudo systemctl stop syncthing@username.service
-#+end_src
-
-*** Syncthing Dashboard
-:PROPERTIES:
-:CUSTOM_ID: syncthing-dashboard
-:END:
-This biggest part of Syncthing is the admin GUI website that runs on
-each device (note that mobile devices will use the Syncthing app rather
-than the web GUI). The admin GUI is available through the web browser on
-the local device that is running Syncthing - simply go to
-=http://localhost:8384= or =http://127.0.0.1:8384=. This web page is the
-place where you will change settings, add/modify synced files, and
-add/modify connected devices.
-
-Here's an example web GUI dashboard:
-
-#+caption: Syncthing Dashboard
-[[https://img.cleberg.net/blog/20221020-syncthing/syncthing_gui.png]]
-
-*** Remote Devices
-:PROPERTIES:
-:CUSTOM_ID: remote-devices
-:END:
-A cloud storage solution wouldn't be very useful if you aren't able to
-share data among various devices. Syncthing does this by sharing Device
-IDs to connect servers, and then by manually sharing Folders with
-devices that have been connected.
-
-For instance, if you have a laptop running Syncthing and then install
-the Syncthing mobile app on a phone, you could scan the laptop's QR code
-for Device ID and then accept the authentication on the laptop's
-dashboard. Next, you can use either device to select a folder for
-sharing and dictating which device should send, receive, or both.
-
-When you connect devices, you can set one device as an "Introducer,"
-which can add devices from the introducer to the device list, for
-mutually shared folders. You can also configure Auto Accept,
-compression, rate limits, and more settings per device.
-
-** My Personal Cloud Storage Set-up
-:PROPERTIES:
-:CUSTOM_ID: my-personal-cloud-storage-set-up
-:END:
-Personally, I use a model similar to a traditional cloud storage
-service. I have a "centralized" server running 24/7 that acts as an
-Introducer for my Syncthing network. I think of this as my main storage
-and all other devices as tertiary client devices. I will likely add
-additional servers as backups as time goes on so that I don't have to
-rely on my laptop or phone as the only backups.
-
-Currently, I have one desktop and one mobile device connected to the
-network, both running intermittently as they are not powered-on 24/7.
-
-The initial set-up of the software was easy enough, but data transfer
-rates were incredibly slow for me due to the Wi-Fi. Instead, I plugged
-my laptop into the ethernet network that my server is on and manually
-copied my folders over to the server with =scp=. Once complete,
-Syncthing validated that all files were there and not missing, and it
-did not need to transfer any data through the WAN.
-
-As slow as the transfer was going, this probably saved me a few days of
-waiting for my ~100GB sync.
-
-** Pros & Cons
-:PROPERTIES:
-:CUSTOM_ID: pros-cons
-:END:
-I've put together a short list of pros and cons for Syncthing. I thought
-about my experiences with Nextcloud, WebDAV, proprietary services
-(Google Drive, iCloud, etc.), and privacy-focused cloud solutions
-(pCloud, Tresorit, etc.).
-
-*Pros:*
-
-- I've faced no data loss at all through my two-month trial run.
-- No third-parties store your data on their servers.
-- You have full control over your data and can take your data and leave
- at any time.
-- It's possible to encrypt client-side easily with software like
- Cryptomator.
-- No proprietary clients or mounted volumes, just plain files and
- folders.
-
-*Cons:*
-
-- The learning curve is steeper than traditional cloud services and is
- focused on a technical audience.
-- If a device needs to modify files in a Folder, the devices will need
- to sync ALL files from the folder, which may be large. To avoid size
- restraints, split large folders into smaller folders for syncing.
-- Syncing can be slow due to the clients/servers initially connecting or
- re-connecting after sleeping.
-- Multiple personal devices are required and require the user to own or
- rent them as no third-party servers are involved in the storage of
- data.
-
-Overall, I've had a great experience with Syncthing so far. I've had no
-data loss, syncing has been quick and easy when changes are made to
-files, device connections are reliable, and I love the freedom of
-controlling the clients and servers as I choose.
-
-Not to mention that I appreciate that I - or someone else - could pull
-the Syncthing [[https://github.com/syncthing][source code]] and continue
-development/support if the Syncthing Foundation decides to stop
-developing the software or sells the business.