actions | ||
certs | ||
config | ||
pb | ||
protos | ||
scripts | ||
server | ||
store | ||
.gitignore | ||
Dockerfile | ||
ezshare.example.toml | ||
go.mod | ||
go.sum | ||
main.go | ||
README.md |
ezshare
Server
Running a server using docker:
# First, build the image
docker build -t ezshare:latest .
# Then run an interactive container to generate certificates
# This will generate CA, server and client certs in /var/ezshare
docker run --rm -it -v /var/ezshare:/data ezshare:latest sh
# Run this inside the container
ezshare cert gen-all --out-dir /data/certs
exit
# Then copy ezshare.example.toml to /var/ezshare/ezshare.toml
# Edit the config, making sure to point certificates to /data/server.pem etc
# Run the server
docker run --rm -d -v /var/ezshare:/data ezshare:latest
Client
Compile the client:
go build -o ezshare cmd/ezshare.go
Copy the resulting binary somewhere into $PATH
. Then generate an empty client config using ezshare client init-config
.
Copy certificates from server (srv.pem
, client.pem
, client.key
) to the same dir as the generated config.
Edit the config-file, and update the Client
section with correct default-server and path to certificates.
Client should then be ready for use.
NAME:
ezshare client - Client commands
USAGE:
ezshare client command [command options] [arguments...]
COMMANDS:
get Get file with id
upload Upload file(s)
delete Delete file with id
list List files
config-init Initialize default config
help, h Shows a list of commands or help for one command
OPTIONS:
--addr value Address of server.
--help, -h show help (default: false)
Development
Recompile proto-files
protoc --go_out=. --go-grpc_out=. --go_opt=module=gitea.benny.dog/torjus/ezshare --go-grpc_opt=module=gitea.benny.dog/torjus/ezshare protos/ezshare.proto