2.5 KiB
Distributed Home File System 🚧
What is this?
Inspired by Syncthing and Google Drive File Stream, this project aspires to combine the best of them into one complete solution for all the file synchronization needs: being decentralized like Syncthing and allowing you to stream your files like Google Drive File Stream
Run wrapper
This is a simple wrapper around the jar/web ui distribution that allows you to run/stop the DHFS server in the background, and update itself (hopefully!)
How to use it?
General prerequisites
Java should be available as java in path, and Java 21+ is required.
FUSE 2 userspace library also should be available:
-
On Ubuntu
libfuse2package can be installed. -
On Windows, WinFsp should be installed.
-
On macOS, macFUSE.
In the run-wrapper, 3 scripts are available.
runscript starts the filesystemstopscript stops itupdatescript will update the filesystem to the newest available CI build
On Windows, Powershell alternatives should be used. For them to work, it might be required to allow execution of unsigned scripts using set-executionpolicy remotesigned.
Additional options for the filesystem can be specified in the extra-opts file in the same directory with the run scripts.
One line in the extra-opts file corresponds to one option passed to the JVM when starting the filesystem.
Some extra possible configuration options are:
-Ddhfs.fuse.root=specifies the root where filesystem should be mounted. By default it is thefusepath under therun-wrapperroot. For windows, it should be a disk letter, by defaultZ:\.-Ddhfs.objects.last-seen.timeout=specifies the period of time (in seconds) after which unavailable peers will be ignored for gabgage collection and resynchronized after being reconnected. The default is 43200 (30 days), if set to-1, this feature is disabled.-Ddhfs.objects.autosync.download-all=specifies whether all objects (files and their data) should be downloaded to this peer.trueorfalse, the default isfalse.
On Windows, the entire space for the filesystem should also be preallocated, the -Ddhfs.objects.persistence.lmdb.size= option controls the size (the value is in bytes), on Windows the default is 100GB.
Then, a web interface will be available at losthost:8080, that can be used to connect with other peers.