diff --git a/README.md b/README.md index 6c1c833..49531a3 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ These are the current different command line options for lightwalletd: | -cache-size| 40000 | number of blocks to hold in the cache | ## Support -For support or other questions, join us on [Telegram](https://hush.is/telegram), or tweet at [@MyHushTeam](https://twitter.com/MyHushTeam), or toot at our [Mastodon](https://fosstodon.org/@myhushteam) or join [Telegram Support](https://hush.is/telegram_support). +For support or other questions, join us on [Telegram](https://hush.is/telegram), or toot at our [Mastodon](https://fosstodon.org/@myhushteam) or join [Telegram Support](https://hush.is/telegram_support). ## License GPLv3 or later diff --git a/doc/examples/README.md b/doc/examples/README.md new file mode 100644 index 0000000..b8ca9ee --- /dev/null +++ b/doc/examples/README.md @@ -0,0 +1,21 @@ +# Example lightwalletd configurations + +# Table of contents +1. [Why](#why) +2. [With Nginx](#with-nginx) +3. [No Web](#no-web) +4. [Apache](#apache) + +## Why +The [Hush Lightwalletd](https://git.hush.is/hush/lightwalletd/) can be configured in numerous different ways depending upon your specific setup. Here I will cover some example configurations and include shell scripts you can modify for your needs once you decide how you want to configure it. + +## With Nginx +For Nginx specifics, refer to the [lightwalletd README](https://git.hush.is/hush/lightwalletd/src/branch/master/README.md) to setup your SSL cert config. + +Then you can use this [example shell script](run_lightwalletd_nginx.sh) to run lightwalletd with an nginx reverse proxy frontend. In the script you have to change the hostname and username before running it. + +## No Web +Here we run lightwalletd without any web servers (no nginx) and as a stand-alone service managing the SSL cert config internally. Use this [example shell script](run_lightwalletd_no-web.sh) to run lightwalletd stand-alone. + +## Apache +I do not know Apache, but you are welcome to contribute your example configuration if you are using it as a reverse proxy. diff --git a/doc/examples/run_lightwalletd_nginx.sh b/doc/examples/run_lightwalletd_nginx.sh new file mode 100644 index 0000000..ecf693b --- /dev/null +++ b/doc/examples/run_lightwalletd_nginx.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# Purpose: simple run script for Hush lightwalletd with an nginx reverse proxy frontend + +# Setup: Change host, change username, and then run this to start lightwalletd + +### Change below to your lightwalletd public server name ### +host=your.server.name.com +# port 9067 is the default lightwalletd port +port=9067 +host_and_port="${host}:${port}" + +### Change below to the username running lightwalletd ### +# this user account must have access to the HUSH3.conf +username=jahway603 +hush_conf="/home/${username}/.hush/HUSH3/HUSH3.conf" + +echo "starting lightwalletd on port $port..." +lightwalletd -bind-addr "$host_and_port" -conf-file "$hush_conf" -no-tls +# let's go brandon diff --git a/doc/examples/run_lightwalletd_no-web.sh b/doc/examples/run_lightwalletd_no-web.sh new file mode 100644 index 0000000..0701637 --- /dev/null +++ b/doc/examples/run_lightwalletd_no-web.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Purpose: simple run script for Hush lightwalletd with NO web frontend + +# Setup: Change username, setup your SSL cert config, and then run this to start lightwalletd + +# had to use this IP when using acme.sh instead of certbot +ip=0.0.0.0 +# port 9067 is the default lightwalletd port +port=9067 +ip_and_port="${ip}:${port}" + +### Change below to the username running lightwalletd ### +# this user account must have access to the HUSH3.conf +username=jahway603 +hush_conf="/home/${username}/.hush/HUSH3/HUSH3.conf" + +### Setup SSL cert config below ### +# Change below to your lightwalletd public server name +host=your.server.name.com +# Change to your SSL cert, certbot does one thing, acme.sh does another, YMMV +ssl_cert="/etc/nginx/ssl/${host}/fullchain/${host}.pem" +ssl_key="/etc/nginx/ssl/${host}/key/${host}.key.pem" + +echo "starting lightwalletd on port $port..." +lightwalletd -bind-addr "$ip_and_port" -conf-file "$hush_conf" -tls-cert "$ssl_cert" --tls-key "$ssl_key" +# let's go brandon diff --git a/util/build-debian-package.sh b/util/build-debian-package.sh index c9d6fd0..6681111 100755 --- a/util/build-debian-package.sh +++ b/util/build-debian-package.sh @@ -16,11 +16,11 @@ if ! [ -x "$(command -v ./lightwalletd)" ]; then fi # Check if lintian is installed and exit if it is not -#if ! [ -x "$(command -v lintian)" ]; then -# echo 'Error: lintian is not installed yet. Consult your Linux version package manager...' >&2 -# echo "" -# exit 1 -#fi +if ! [ -x "$(command -v lintian)" ]; then + echo 'Error: lintian is not installed yet. Consult your Linux version package manager...' >&2 + echo "" + exit 1 +fi echo "Let There Be Hush Lightwalletd Debian Packages!" echo "" @@ -92,7 +92,6 @@ fakeroot dpkg-deb --build $BUILD_DIR cp $BUILD_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb $SRC_PATH shasum -a 256 $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb # Analyze with Lintian, reporting bugs and policy violations -# Arch does not have lintian, as it's a Debian package, so commenting this out -# To-DO - test on Debian/Ubuntu, create AUR lintian package -#lintian -i $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb +# Arch does not have lintian, as it's a Debian package, so run this on Debian stuff +lintian -i $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb exit 0 diff --git a/util/build.sh b/util/build.sh index 42825db..9e634c8 100755 --- a/util/build.sh +++ b/util/build.sh @@ -4,11 +4,21 @@ # file LICENSE or https://www.gnu.org/licenses/gpl-3.0.en.html # Purpose: Script to build Hush lightwalletd on x86 64-bit arch +## Usage: ./util/build.sh +# Check if go is installed on system... +v=`go version | { read _ _ v _; echo ${v#go}; }` +function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; } # Check if go is installed on system and exits if it is not if ! [ -x "$(command -v go)" ]; then echo 'Error: go is not installed. Install go and try again.' >&2 exit 1 +# If go is installed, then check system for at least version 1.13.0 +elif [ $(version $v) -lt $(version "1.13.0") ]; then + echo 'Error: the go version you have installed requires at least version 1.13, which your system does not have installed. Install a newer version of go and try again.' >&2 + echo '' + echo "Try out gobrew to install a newer version than what your OS package manager supplies." + exit 1 fi echo "" @@ -23,7 +33,7 @@ echo "+------'+------'+------'+------'+------'+------'+------'+------'+------'+- # now to compiling... echo "" -echo "You have go installed, so starting to compile Hush lightwalletd for you..." +echo "You have at least go 1.13.0 installed, so starting to compile Hush lightwalletd for you..." cd `pwd`/cmd/server go build -o lightwalletd main.go mv lightwalletd `pwd`/../../lightwalletd