Update documentation
parent
10c4ec2302
commit
84b964f501
134
README.md
134
README.md
|
|
@ -9,68 +9,71 @@ In order to build the proxy server you need to install the qt default package.
|
|||
|
||||
apt install qt5-default
|
||||
|
||||
|
||||
## Build from source
|
||||
Change into the source directory and run following commands
|
||||
|
||||
cd nymea-remoteproxy
|
||||
mkdir build
|
||||
cd build
|
||||
qmake ../
|
||||
make -j$(nproc)
|
||||
$ cd nymea-remoteproxy
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ qmake ../
|
||||
$ make -j$(nproc)
|
||||
|
||||
In the build directory you can find the resulting library and binary files.
|
||||
|
||||
If you want to start the proxy server from the build directory, you need to export the library path before starting the application:
|
||||
|
||||
|
||||
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/libnymea-remoteproxy:$(pwd)/libnymea-remoteproxyclient
|
||||
$ ./server/nymea-remoteproxy -c ../nymea-remoteproxy/tests/test-certificate.crt -k ../nymea-remoteproxy/tests/test-certificate.key
|
||||
$ ./server/nymea-remoteproxy -c ../nymea-remoteproxy/nymea-remoteproxy.conf
|
||||
|
||||
|
||||
## AWS SDK
|
||||
|
||||
Get the latest source code and build dependecies
|
||||
|
||||
$ apt update
|
||||
$ apt install git build-essential cmake libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
|
||||
|
||||
$ git clone https://github.com/aws/aws-sdk-cpp.git
|
||||
|
||||
Create the build and install folder
|
||||
|
||||
$ cd aws-sdk-cpp
|
||||
$ mkdir -p build/install
|
||||
$ cd build
|
||||
|
||||
$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="lambda" -DCMAKE_INSTALL_PREFIX=$(pwd)/install ../
|
||||
$ make -j$(nproc)
|
||||
|
||||
Install build output into install directory
|
||||
|
||||
$ make install
|
||||
|
||||
#### Building debian package
|
||||
|
||||
$ git clone https://github.com/aws/aws-sdk-cpp.git
|
||||
$ cd aws-sdk-cpp
|
||||
|
||||
$ git clone git@gitlab.guh.io:cloud/aws-sdk-cpp-debian.git debian
|
||||
## Build debian package
|
||||
|
||||
$ apt install crossbuilder
|
||||
$ cd nymea-remoteproxy
|
||||
$ crossbuilder
|
||||
|
||||
|
||||
# Install
|
||||
|
||||
## From repository
|
||||
There is a public version available in the nymea repository.
|
||||
|
||||
$ apt install nymea-remoteproxy nymea-remoteproxy-client
|
||||
|
||||
This will install a systemd service called `nymea-remoteproxy.service` and the client application for testing.
|
||||
|
||||
## From build directory
|
||||
|
||||
Simply run following command in the build dir:
|
||||
|
||||
$ sudo make install
|
||||
|
||||
|
||||
# Configure
|
||||
|
||||
The package will deliver a default configuration file with following content:
|
||||
|
||||
name=nymea-remoteproxy
|
||||
writeLogs=false
|
||||
logFile=/var/log/nymea-remoteproxy.log
|
||||
certificate=/etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
certificateKey=/etc/ssl/private/ssl-cert-snakeoil.key
|
||||
|
||||
[WebSocketServer]
|
||||
host=0.0.0.0
|
||||
port=443
|
||||
|
||||
[TcpServer]
|
||||
host=0.0.0.0
|
||||
port=80
|
||||
|
||||
|
||||
# Test
|
||||
|
||||
In order to run the test, you can call `make check` in the build directory or run the resulting executable:
|
||||
|
||||
$ nymea-remoteproxy-tests
|
||||
$ nymea-remoteproxy-tests-offline
|
||||
$ nymea-remoteproxy-tests-online
|
||||
|
||||
|
||||
## Test coverage report
|
||||
|
|
@ -83,12 +86,12 @@ If you want to create a line coverage report from the tests simply run following
|
|||
|
||||
The resulting coverage report will be place in the `coverage-html` directory.
|
||||
|
||||
# Usage
|
||||
# Server usage
|
||||
|
||||
In order to get information about the server you can start the command with the `--help` parameter.
|
||||
|
||||
$ nymea-remoteproxy --help
|
||||
|
||||
|
||||
Usage: nymea-remoteproxy [options]
|
||||
|
||||
The nymea remote proxy server. This server allowes nymea-cloud users and registered nymea deamons to establish a tunnel connection.
|
||||
|
|
@ -100,21 +103,21 @@ In order to get information about the server you can start the command with the
|
|||
|
||||
|
||||
Options:
|
||||
-h, --help Displays this help.
|
||||
-v, --version Displays version information.
|
||||
-l, --logging <logfile> Write log file to the given logfile.
|
||||
-s, --server <hostaddress> The server address this proxy will
|
||||
listen on. Default is 127.0.0.1
|
||||
-p, --port <port> The proxy server port. Default is
|
||||
1212
|
||||
-c, --certificate <certificate> The path to the SSL certificate used
|
||||
for this proxy server.
|
||||
-k, --certificate-key <certificate-key> The path to the SSL certificate key
|
||||
used for this proxy server.
|
||||
-a, --authentication-server <url> The server url of the AWS
|
||||
authentication server.
|
||||
-h, --help Displays this help.
|
||||
-v, --version Displays version information.
|
||||
-l, --logging <logfile> Write log file to the given logfile.
|
||||
-d, --development Enable the development mode. This
|
||||
enabled the server assumes there are
|
||||
static AWS credentials provided to
|
||||
aws-cli.
|
||||
-m, --mock-authenticator Start the server using a mock
|
||||
authenticator which returns always true.
|
||||
-c, --configuration <configuration> The path to the proxy server
|
||||
configuration file. The default is
|
||||
~/.config/nymea/nymea-remoteproxy.conf
|
||||
--verbose Print more verbose.
|
||||
|
||||
|
||||
|
||||
# Server API
|
||||
|
||||
Once a client connects to the proxy server, he must authenticate him self by passing the token received from the nymea-cloud mqtt connection request.
|
||||
|
|
@ -301,6 +304,31 @@ Once the other client is here and ready, the server will send a notification to
|
|||
"status": "success"
|
||||
}
|
||||
|
||||
# Client usage
|
||||
|
||||
The client allowes you to test the proxy server and create a dummy client for testing the connection.
|
||||
|
||||
|
||||
nymea-remoteproxy-client --help
|
||||
Usage: nymea-remoteproxy-client [options]
|
||||
|
||||
The nymea remote proxy server client application. This client allowes to test a server application as client perspective.
|
||||
|
||||
Server version: 0.0.1
|
||||
API version: 0.1
|
||||
|
||||
Copyright © 2018 Simon Stürz <simon.stuerz@guh.io>
|
||||
|
||||
|
||||
Options:
|
||||
-h, --help Displays this help.
|
||||
-v, --version Displays version information.
|
||||
-t, --token <token> The AWS token for authentication.
|
||||
-a, --address <address> The proxy server host address. Default 127.0.0.1
|
||||
-p, --port <port> The proxy server port. Default 1212
|
||||
|
||||
|
||||
|
||||
|
||||
# License
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue