6.7 KiB
Deployment to myNode
This guide is focused on installing Sphinx-relay on top of myNode. Information about myNode can be found at: https://mynodebtc.com/.
Preparations
- Be able to connect with your node through SSH.
- Connect to myNode as
admin
:
$ ssh admin@mynode.local
Use password bolt
unless you have already changed it.
Install dependencies
sqlite3: $ sudo apt install sqlite3
python2 (if not present): $ sudo apt install python2
Open port 3001 on myNode
note: This port can be whatever number you want. Just add PORT to your environment like export PORT=5005
.
Open up a console window with SSH. And login as root
$ sudo su
Open up port 3001 on your machine and make sure it has been added to the list.
# ufw allow 3001 comment 'allow Sphinx-Chat'
# ufw status
> Status: active
>
> To Action From
> -- ------ ----
> 3001 (v6) ALLOW Anywhere (v6) # Sphinx-Chat
Download
login as user bitcoin.
$ sudo su bitcoin
$ cd
Clone the repository from Github and install the package.
$ git clone https://github.com/stakwork/sphinx-relay
$ cd sphinx-relay
$ npm install
Configure
Edit the "production" section of config/app.json.
$ cd
$ cd sphinx-relay/config/
$ nano app.json
Change the following 4 lines:
"macaroon_location": "/home/bitcoin/.lnd/data/chain/bitcoin/mainnet/admin.macaroon",
"tls_location": "/mnt/hdd/mynode/lnd/tls.cert",
"lnd_log_location": "/home/bitcoin/.lnd/logs/bitcoin/mainnet/lnd.log",
Save and exit:
Ctrl + X
Y
Enter
Edit the "production" section of config/config.json
$ nano config.json
Change the following line to:
"storage": "/home/bitcoin/sphinx.db"
Save and exit:
Ctrl + X
Y
Enter
If you want to use your Sphinx client within the same local network
$ cd
$ cd sphinx-relay/config/
$ export NODE_IP=x.x.x.x:3001
where x.x.x.x
is the local IP address of the machine running your Sphinx-Relay on your local network.
If you want to connect to your Sphinx-Relay from outside of your local network
$ cd
$ cd sphinx-relay/config/
$ export NODE_IP=x.x.x.x:3001
where x.x.x.x
is the permanent public IP address of your router.
Make sure that port 3001 forwarding is properly set up.
For extra security:
$ export USE_PASSWORD=true
Activate keysend
We need LND to run with keysend activated. First, we check if it is already enabled on your node.
Go to http://mynode.local/lnd/config and check if the line accept-keysend=True
(or accept-keysend=1
) is included somewhere in the text.
If accept-keysend=True
is already included you can continue without changing anything. If accept-keysend=True
is not included, add it to a new line and click the Save
button. This will restart your device. (Restarting could take up to several minutes but also hours, so be patient.)
Run
Now it's time to run the software.
$ cd
$ cd sphinx-relay/config/
$ npm run prod
When Relay starts up, it will print a QR in the terminal. You can scan this in your app (Android or iOS) to connect!
To make Relay run continuously (also after a restart).
Before you start this part, make sure your app is connected and that you are able to send & receive messages.
Login as admin.
$ sudo su admin
Create a file named sphinx-relay.service
$ sudo nano /etc/systemd/system/sphinx-relay.service
Copy and paste the following text to add it to the file:
[Unit]
Description=Sphinx Relay Service
After=network.target
[Service]
Type=simple
User=bitcoin
WorkingDirectory=/home/bitcoin/sphinx-relay/config/
ExecStart=npm run prod
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=sphinx-relay
[Install]
WantedBy=multi-user.target
Save and exit:
Ctrl + X
Y
Enter
Let's run!
$ sudo systemctl enable sphinx-relay
$ sudo systemctl start sphinx-relay
Check if Relay successfully started.
$ sudo systemctl status sphinx-relay
To stop the program
$ sudo systemctl stop sphinx-relay
To update Sphinx-Relay
fast method:
You can pull directly from git to update your relay. If you have only changed your config files, the following should work:
systemctl stop sphinx-relay
- cd into your sphinx-relay directory (
cd sphinx-relay
) git stash && git checkout master && git pull && git stash pop
- [OPTIONAL, ONLY IF A NEW NPM DEPENDENCY HAS BEEN ADDED]:
npm i
systemctl start sphinx-relay
full reset method:
This probably is not the most efficient way to update. But it works, so we got that going, which is nice. Feel free to optimize the process and contribute. :)
Login as admin
and stop the program.
$ sudo systemctl stop sphinx-relay
login as user bitcoin
.
$ sudo su bitcoin
$ cd
Remove the old version
$ rm -rf sphinx-relay
Download the new version
Clone the repository from Github and install the package.
$ git clone https://github.com/stakwork/sphinx-relay
$ cd sphinx-relay
$ npm install
Configure
Edit the "production" section of config/app.json.
$ cd
$ cd sphinx-relay/config/
$ nano app.json
Change the following 4 lines:
"macaroon_location": "/home/bitcoin/.lnd/data/chain/bitcoin/mainnet/admin.macaroon",
"tls_location": "/mnt/hdd/mynode/lnd/tls.cert",
"lnd_log_location": "/home/bitcoin/.lnd/logs/bitcoin/mainnet/lnd.log",
"lncli_location": "/home/bitcoin/go/bin",
Save and exit:
Ctrl + X
Y
Enter
Edit the "production" section of config/config.json
$ nano config.json
Change the following line to:
"storage": "/home/bitcoin/sphinx.db"
Save and exit:
Ctrl + X
Y
Enter
If you want to use your Sphinx client within the same local network
$ cd
$ cd sphinx-relay/config/
$ export NODE_IP=x.x.x.x:3001
where x.x.x.x
is the local IP address of the machine running your Sphinx-Relay on your local network.
If you want to connect to your Sphinx-Relay from outside of your local network
$ cd
$ cd sphinx-relay/config/
$ export NODE_IP=x.x.x.x:3001
where x.x.x.x
is the permanent public IP address of your router.
Make sure that port 3001 forwarding is properly set up.
For extra security:
$ export USE_PASSWORD=true
Turn on the service.
Login as admin.
$ su admin
Or
$ exit
Turn the service on and check the status.
$ sudo systemctl enable sphinx-relay
$ sudo systemctl start sphinx-relay
tail logs
journalctl -u sphinx-relay -f