From 90f152d45cc9f4786ee8c2fec74c804f561d2168 Mon Sep 17 00:00:00 2001 From: Anas Sheashaey Date: Fri, 15 Nov 2024 15:19:02 +0200 Subject: [PATCH] Update README.md --- README.md | 108 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 9883fd0..2b6d159 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,78 @@ # Zync -This is the simplest WebDAV server possible to sync Zotero collections. -I made it because writing a server from scratch is easier than setting up NextCloud. +Zync is a lightweight and straightforward WebDAV server +designed specifically for syncing Zotero collections within a local network. -Currently it works on my machine, within my local network, and syncs between my laptop and tablet. -I would be surprised if it worked for you. +If setting up NextCloud is a hassle, Zync is the solution. -## How to use it +## Installation -- Clone repo -- `cargo build --release` inside repo. -- `./target/release/zync --host --port ` - - Without args, defaults to `0.0.0.0:4918` - - Use `--host 127.0.0.1` to allow other devices to connect. -- On each Zotero instance, point your WebDAV URL to `http://:` - - On other devices, you don't reach the server with `127.0.0.1`. - - Note: `http` not `https` +Follow these steps to install and set up Zync on your machine: + +1. Clone the repository. + +```bash +git clone https://github.com/she3o/zync.git +cd zync +``` + +2. Build the project: + +```bash +cargo build --release +``` + +3. Run the Server + +```bash +./target/release/zync --host --port --directory +``` + +By default, Zync chooses `--host 0.0.0.0`, `--port 4918` and `--directory data`. + +## Usage + +1. Configure Zotero WebDAV: + + - Open Zotero and navigate to `Preferences` > `Sync`. + + - Select WebDAV as the synchronization method. + + - Enter the WebDAV URL in the format: `http://:`. + + - Replace `` with the server's IP address within your local network. + + - Replace `` with the port number you specified (default is `4918`). + +2. Ensure Network Accessibility: + + - Make sure that the server machine is reachable from other devices within the local network. + + - If using `127.0.0.1` as the host, it will restrict access to the local machine only. Use the server's LAN IP address (or `0.0.0.0`) to allow other devices to connect. ## Future Plans -If I (or you!) ever had time, here is a list of things I plan to do: - -- [x] Basic WebDAV Support: `PROPFIND`, `GET`, `PUT`, `DELETE`. -- Add logging - - [x] To TTY - - To log file -- Add username/password authentication. -- Add a test suite: - - Integration tests - - performance regression tests: - - throughput - - Memory -- Dynamic port binding -- SSL/TLS -- [x] argument parsing -- Sync Status Monitoring -- File Versioning and backup -- Systemd service -- Interactive mode - - `l`: Toggle logging - - `q`: Quit - - `?`: Show help - - etc -- Configuration file -- Docker container +Zync is in its infancy, but here are some of the features I wish to implement: + +- [x] Basic WebDAV Support +- [x] Argument parsing +- [x] Logging to TTY +- [ ] Logging To file +- [ ] Username/password authentication. +- [ ] Test suite +- [ ] Dynamic port binding +- [ ] SSL/TLS Support +- [ ] Sync Status Monitoring +- [ ] File Versioning and backup +- [ ] Systemd service +- [ ] Interactive mode +- [ ] Configuration file +- [ ] Docker container + +## Contributing + +All contributions are welcome! Please feel free to submit pull requests or open issues. + +## License + +Zync is licensed under the AGPL-3.0 License.