This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{tag>linux docker "file sharing" share sharing syncthing privatebin}} ======File Sharing====== All the applications have pro and cons. This is listed at the beginning of each header. There have been considered 3 different levels of access as described by the applications used: *Nextcloud - a full privately hosted publicly accessible file shareing application, with many additional features *Syncthing - A files synchronising system *Unison - A files synchronising system *Privatebin - An encrypted file publicly accessible file sharing server *inotify - A Linux application to provide notification with a file has changed =====Nextcloud===== Nextcloud is an open source content collaboration platform. At its core is file-sharing, but it has many other core functions as well as extensibility with additional installed applications. While Nextcloud can securely share files it is not focused as a **simple**, public, and secure file-sharing platform. [[https://nextcloud.com/|Nextcloud]] and [[https://owncloud.com/|Owncloud]] has build in file sharing. However these platforms provided many other functions and hence setup and basic file sharing is more complex than simply file sharing only applications. They also do not necessarily have the same basic functionality as simple file share applications. I have been using Nextcloud and before that Owncloud from which Nextcloud was forked since circa 2013. My server setup is described here: *kptree [[https://wiki.kptree.net/doku.php?id=docker_notes:docker-nextcloud|nextcloud]] is Docker based setup, that I currently use, since 2022. *kptree [[https://wiki.kptree.net/doku.php?id=home_server:web_server_setup#nextcloud_setup|nextcloud]] is a VM setup previously I used. =====syncthing===== [[https://syncthing.net/|Syncthing]] is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Syncthing is a **free and open source** peer-to-peer file synchronization application available for Windows, macOS, Linux, Android, and BSD. It can sync files between devices on a local network, or between remote devices over the Internet. Data security and data safety are built into its design. Version 1.0 was released in January 2019 after five years in beta. The following is a systemd service file that can be used to start the syncthing service. It is taken from https://github.com/syncthing/syncthing/releases and based upon the user specific type. So create a new systemd service, ''/lib/systemd/system/syncthing@.service'' ++++syncthing@.service| <code>[Unit] Description=Syncthing - Open Source Continuous File Synchronization for %I Documentation=man:syncthing(1) After=network.target StartLimitIntervalSec=60 StartLimitBurst=4 [Service] User=%i ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0 Restart=on-failure RestartSec=1 SuccessExitStatus=3 4 RestartForceExitStatus=3 4 # Hardening ProtectSystem=full PrivateTmp=true SystemCallArchitectures=native MemoryDenyWriteExecute=true NoNewPrivileges=true # Elevated permissions to sync ownership (disabled by default), # see https://docs.syncthing.net/advanced/folder-sync-ownership #AmbientCapabilities=CAP_CHOWN CAP_FOWNER [Install] WantedBy=multi-user.target</code> ++++ ''systemctl daemon-reload'' to update systemd. To use example: ''sudo systemctl status syncthing@user.service'' ====References==== *[[https://syncthing.net/|Syncthing]] *[[https://docs.syncthing.net/|Docs]] *[[https://docs.syncthing.net/intro/getting-started.html|Getting Started]] *[[https://docs.syncthing.net/users/syncthing.html|Synopsis (Command Line)]] *[[https://docs.syncthing.net/users/faq.html#|FAQ]] *[[https://syncthing.net/downloads/|Downloads]] *[[https://apt.syncthing.net/|Debian/Ubuntu Packages]] *[[https://forum.syncthing.net/t/syncthingmanager-configure-syncthing-from-the-cli/9354|syncthingmanager - Configure Syncthing from the CLI]] =====Unison===== [[https://www.cis.upenn.edu/~bcpierce/unison/|Unison]] is a file-synchronization tool for OSX, Unix, and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other. Unison shares a number of features with tools such as configuration management packages (CVS, PRCS, Subversion, BitKeeper, etc.), distributed filesystems (Coda, etc.), uni-directional mirroring utilities (rsync, etc.), and other synchronizers (Intellisync, Reconcile, etc). However, there are several points where it differs: *Unison runs on both Windows and many flavors of Unix (Solaris, Linux, OS X, etc.) systems. Moreover, Unison works across platforms, allowing you to synchronize a Windows laptop with a Unix server, for example. *Unlike simple mirroring or backup utilities, Unison can deal with updates to both replicas of a distributed directory structure. Updates that do not conflict are propagated automatically. Conflicting updates are detected and displayed. *Unlike a distributed filesystem, Unison is a user-level program: there is no need to modify the kernel or to have superuser privileges on either host. *Unison works between any pair of machines connected to the internet, communicating over either a direct socket link or tunneling over an encrypted ssh connection. It is careful with network bandwidth, and runs well over slow links such as PPP connections. Transfers of small updates to large files are optimized using a compression protocol similar to rsync. *Unison is resilient to failure. It is careful to leave the replicas and its own private structures in a sensible state at all times, even in case of abnormal termination or communication failures. *Unison has a clear and precise specification. *Unison is **free; full source code** is available under the GNU Public License. Unison is quite old. ====Reference==== *The Linux Code [[https://thelinuxcode.com/unison-file-synchronization-between-two-servers/|How to Use Unison for Seamless File Synchronization Between Servers]] *Arch Linux [[https://man.archlinux.org/man/unison.1.en|Unison manual]] *[[https://www.cyberciti.biz/faq/unison-file-synchronizer-tool/|UNIX / Linux: HowTo Use unison File Synchronizer]] *[[https://github.com/bcpierce00/unison/blob/master/README.md|GIT Unison]] *[[https://www.cis.upenn.edu/~bcpierce/unison/|Unison Website]] superseded *[[https://github.com/bcpierce00/unison|Github Unison]] Old *[[https://en.wikipedia.org/wiki/Unison_(software)|Wikipedia Unison]] *[[https://wiki.archlinux.org/title/Unison|Archwiki Unison]] *[[https://www.debiantutorials.com/installing-and-configuring-unison-file-synchronizer/|Unison]] *[[https://blog.scottlowe.org/2020/06/01/using-unison-across-linux-macos-windows/|Using Unison Across Linux, macOS, and Windows]] =====privatebin===== [[https://privatebin.info/|PrivateBin]] is a minimalist, **open source** online pastebin where the server has zero knowledge of pasted data. ====Reference==== *[[https://github.com/PrivateBin|Github Privatebin]] *[[https://github.com/PrivateBin/PrivateBin|Github PrivateBin]] *[[https://github.com/JamesTurland/JimsGarage/blob/main/PrivateBin/docker-compose.yaml|Jims Garage PrivateBin/docker-compose.yaml]] =====inotify===== *[[https://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/|Linux incrond inotify Monitor Directories For Changes And Take Action]] ---- <- docker_notes:vpn|Back ^ docker_notes:index|Start page ^ docker_notes:vnc|Next ->