|
@@ -12,7 +12,7 @@ Rufs is a remote union filesystem which aims to provide a lightweight and secure
|
|
|
|
|
|
Features
|
|
|
--------
|
|
|
-- Client-Server model using RPC call over ssl.
|
|
|
+- Client-Server model using RPC call over SSL.
|
|
|
- Single executable for client and server.
|
|
|
- Communication is secured via a secret token which is never transferred over the network and certificate pinning once a client has connected successfully.
|
|
|
- Clients can provide a unified view with files from different locations.
|
|
@@ -22,17 +22,34 @@ Features
|
|
|
|
|
|
Getting Started
|
|
|
---------------
|
|
|
-You can download a precompiled package for Windows (win64) or Linux (amd64) [here](https://devt.de/build_status.html).
|
|
|
+You can download a precompiled package for Windows (win64) or Linux (amd64) [here](https://void.devt.de/pub/rufs).
|
|
|
|
|
|
The archive contains a single executable which contains the server and client code for Rufs.
|
|
|
|
|
|
+You can also pull the latest docker image of Rufs from [Dockerhub](https://hub.docker.com/r/krotik/rufs):
|
|
|
+```
|
|
|
+docker pull krotik/rufs
|
|
|
+```
|
|
|
+
|
|
|
+Create an empty directory, change into it and run the following to start the server:
|
|
|
+```
|
|
|
+docker run --rm --user $(id -u):$(id -g) -v $PWD:/data -p 9020:9020 krotik/rufs server
|
|
|
+```
|
|
|
+This exposes port 9020 from the container on the local machine. All runtime related files are written to the current directory as the current user/group.
|
|
|
+
|
|
|
+Run the client by running:
|
|
|
+```
|
|
|
+docker run --rm --network="host" -it -v $PWD:/data --user $(id -u):$(id -g) -v $PWD:/data krotik/rufs client
|
|
|
+```
|
|
|
+The client will also use the runtime related files from the current directory.
|
|
|
+
|
|
|
### Tutorial:
|
|
|
|
|
|
-To get an idea of what EliasDB is about have a look at the [tutorial](/examples/local_fileshare/doc/tutorial.md).
|
|
|
+To get an idea of what Rufs is about have a look at the [tutorial](https://devt.de/krotik/rufs/src/master/examples/tutorial/doc/tutorial.md).
|
|
|
|
|
|
### REST API:
|
|
|
|
|
|
-The terminal uses a REST API to communicate with the backend. The REST API can be browsed using a dynamically generated swagger.json definition (https://localhost:9090/fs/swagger.json). You can browse the API of Rufs's latest version [here](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/krotik/rufs/master/doc/swagger.json#/default).
|
|
|
+The terminal uses a REST API to communicate with the backend. The REST API can be browsed using a dynamically generated swagger.json definition (https://localhost:9090/fs/swagger.json). You can browse the API of Rufs's latest version [here](http://petstore.swagger.io/?url=https://devt.de/krotik/rufs/raw/master/swagger.json).
|
|
|
|
|
|
### Command line options
|
|
|
The main Rufs executable has two main tools:
|
|
@@ -48,7 +65,7 @@ The tools are:
|
|
|
|
|
|
Use ./rufs [tool] --help for more information about a tool.
|
|
|
```
|
|
|
-The most important one is server which starts the file server. The server has several options:
|
|
|
+The most important one is `server` which starts the file server. The server has several options:
|
|
|
```
|
|
|
Rufs 1.0.0
|
|
|
|
|
@@ -107,7 +124,7 @@ should have the following json format:
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
-On the console type 'q' to exit and 'help' to get an overview of available commands:
|
|
|
+On the console type `q` to exit and `help` to get an overview of available commands:
|
|
|
```
|
|
|
Available commands:
|
|
|
----
|
|
@@ -119,7 +136,7 @@ cp <src file/dir> <dst dir> : Copy a file or directory
|
|
|
dir [path] [glob] : Show a directory listing
|
|
|
get <src file> [dst local file] : Retrieve a file and store it locally (in the current directory)
|
|
|
help [cmd] : Show general or command specific help
|
|
|
-mkdir <dir> : Create a new direectory
|
|
|
+mkdir <dir> : Create a new directory
|
|
|
mount [path] [branch name] [ro] : List all mount points or add a new mount point to the tree
|
|
|
ping <branch name> [rpc] : Ping a remote branch
|
|
|
put [src local file] [dst file] : Read a local file and store it
|
|
@@ -159,10 +176,25 @@ You can build Rufs's executable with:
|
|
|
go build -o rufs ./cli/...
|
|
|
```
|
|
|
|
|
|
-Rufs also has a web interface which should be bundled with the executable. The bundled web interface in `web.zip` can be attached by running (assuming the `rufs` executable is in the same folder as the script):
|
|
|
+Rufs also has a web interface which should be bundled with the executable. The bundled web interface in `web.zip` can be attached by running:
|
|
|
```
|
|
|
./attach_webzip.sh
|
|
|
```
|
|
|
+This assumes that the `rufs` executable is in the same folder as the script.
|
|
|
+
|
|
|
+Building Rufs as Docker image
|
|
|
+--------------------------------
|
|
|
+Rufs can be build as a secure and compact Docker image.
|
|
|
+
|
|
|
+- Create a directory, change into it and run:
|
|
|
+```
|
|
|
+git clone https://devt.de/krotik/rufs/ .
|
|
|
+```
|
|
|
+
|
|
|
+- You can now build the Docker image with:
|
|
|
+```
|
|
|
+docker build --tag krotik/rufs .
|
|
|
+```
|
|
|
|
|
|
License
|
|
|
-------
|