Filesystem operations exposed over a HTTP server
The idea behind WebFS is to expose common filesystem operations to be accessible through HTTP requests. You can have 2 physical disks, in different parts of the world, sharing information and syncing. It can even implement RAID through software in this configuration, with slaves watching master's disks and copying their data to the disk or by simply receiving commands from a controller.
The current version of WebFS exposes a frontend that uses the API to access the disk as Google Drive would do, but simpler, way much simpler.
You can use it with docker or bare metal.
- Install docker:
curl -fsSL https://get.docker.com | sudo sh
- Run it with the following command:
sudo docker run \
-p 3000:3000 \
--name webfs-jqv \
-e DATA_DIR=/JQV \
-e PORT=3000 \
-v /mnt/data0/JQV:/JQV \
lucasperovani/webfs
- PORT: The port to access the HTTP server
- DATA_DIR: The data directory to list/upload/download/delete files
- Download the source:
git clone https://github.com/lucasperovani/WebFS.git && cd WebFS
- Compile it:
cargo build --release
- Run it:
DATA_DIR=/your/file/folder; PORT=3000; ./target/webfs
- PORT: The port to access the HTTP server
- DATA_DIR: The data directory to list/upload/download/delete files
If you want a more detailed installation with explanation about mounting the disk right at linux boot or VPN to be able access it anywhere, go to INSTALLATION.md
Please, go to our Postman API documentation to check which endpoints to use: WebFS API Documentation
- Split rust code in different files
- Add tests
- Add github CI to test before pull requests
- Add github CI to export docker images on merges
- Improve upload and download files
- Implement disk information and usage routes
- Only add assets and frontend routes with env var