Update setup guide

This commit is contained in:
Marcin Jachymiak 2020-01-31 16:58:30 -05:00
parent 6b3ad6d1ea
commit 08ce6fab32
3 changed files with 76 additions and 28 deletions

View File

@ -3,3 +3,8 @@
## Setup Guide ## Setup Guide
A setup guide with scripts to install prerequisites can be found in the A setup guide with scripts to install prerequisites can be found in the
[setup-scripts](./setup-scripts) directory. [setup-scripts](./setup-scripts) directory.
Once the setup guide is complete you will be running:
- `siad` configured as a ViewNode
- a NodeJS app running a Skynet Portal
- an nginx proxy

View File

@ -23,6 +23,53 @@ You a can now ssh into your machine as the user `user`.
7. Now logged in as `user`: `sudo apt-get install git` 7. Now logged in as `user`: `sudo apt-get install git`
8. `git clone https://github.com/NebulousLabs/skynet-webportal` 8. `git clone https://github.com/NebulousLabs/skynet-webportal`
9. `cd skynet-webportal/setup-scripts` 9. `cd skynet-webportal/setup-scripts`
10. Add ssh pubkeys to `authorized_keys` file.
11. `./setup.sh` 11. `./setup.sh`
12. Once DNS records are set you can run: `./letsencrypt-setup.sh` 12. Once DNS records are set you can run: `./letsencrypt-setup.sh`
13. You should also change the nginx configuration to listen on port 443
instead.
## Setting up siad
NOTE: You must be running `siad` and `siac` by building from the `viewnode`
branch.
You still need to setup `siad` for the backend to be complete.
1. `cd ~/; mkdir siad`
2. `nohup siad &>/dev/null &`
This will start syncing `siad` in the background.
## ViewNode setup
When `siad` is done syncing, create a new wallet and unlock the wallet.
Then set an allowance (`siac renter setallowance`), with the suggested values
below:
- 10 KS (keep 25 KS in your wallet)
- default period
- default number of hosts
- 8 week renewal time
- 500 GB expected storage
- 500 GB expected upload
- 5 TB expected download
- default redundancy
Once your allowance is set you need to set your node to be a viewnode with the
following command:
`siac renter setallowance --view-contract-initial-price 10SC`
Now your node will begin making 10 contracts per block with many hosts so it can
potentially view the whole network's files.
## Running the Portal
`cd` into the parent directory and run `yarn` to build dependencies.
We recommend running the Portal through `pm2` (a nodejs process manager) in the background with the command:
`pm2 --name skynet start npm -- start`
`yarn start` will also work if not using `pm2`.
The Protal which will automatically read your `siad` API password and startup a
portal on `localhost:3000`. nginx will expose this to port 80 or 443 if you
configured it for SSL.

View File

@ -6,6 +6,11 @@ cp ./tmux.conf ~/.tmux.conf
cp ./bashrc ~/.bashrc cp ./bashrc ~/.bashrc
source ~/.bashrc source ~/.bashrc
# Add SSH keys and set SSH configs
sudo cp ./ssh_config /etc/ssh/ssh_config
mkdir -p ~/.ssh
cat ./authorized_keys >> ~/.ssh/authorized_keys
# Nodejs install prerequisite. From official documentation. # Nodejs install prerequisite. From official documentation.
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
@ -22,27 +27,11 @@ sudo apt-get -y install ufw tmux ranger htop nload nginx certbot \
sudo npm i -g pm2 sudo npm i -g pm2
# terminfo for alacritty terminal via ssh # terminfo for alacritty terminal via ssh
# If you don't use the alacritty terminal you can remove this step.
wget -c https://raw.githubusercontent.com/alacritty/alacritty/master/extra/alacritty.info wget -c https://raw.githubusercontent.com/alacritty/alacritty/master/extra/alacritty.info
sudo tic -xe alacritty,alacritty-direct alacritty.info sudo tic -xe alacritty,alacritty-direct alacritty.info
rm alacritty.info rm alacritty.info
# Install Go 1.13.7.
wget -c https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz
source ~/.bashrc
rm go1.13.7.linux-amd64.tar.gz
# Sanity check that will pass if go was installed correctly.
go version
# Install Sia
cwd=$(pwd)
cd ~/
git clone https://gitlab.com/NebulousLabs/Sia
cd Sia && git checkout viewnode && make
cd $cwd
# Setup nginx config # Setup nginx config
sudo cp ./skynet-nginx.conf /etc/nginx/sites-available/skynet sudo cp ./skynet-nginx.conf /etc/nginx/sites-available/skynet
sudo nginx -t sudo nginx -t
@ -57,16 +46,23 @@ sudo ufw allow ssh
sudo ufw allow 'Nginx Full' sudo ufw allow 'Nginx Full'
sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTP'
# Setup skynet frontend. # Install Go 1.13.7.
wget -c https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz
source ~/.bashrc
rm go1.13.7.linux-amd64.tar.gz
# Sanity check that will pass if go was installed correctly.
go version
cwd=$(pwd)
# Install Sia
cd ~/ cd ~/
git clone https://github.com/NebulousLabs/skynet-webportal && cd skynet-webportal git clone https://gitlab.com/NebulousLabs/Sia
yarn cd Sia && git checkout viewnode && make
# Start the frontend. # Setup skynet frontend.
pm2 --name skynet start npm -- start
# Add SSH keys and set SSH configs
cd $cwd cd $cwd
sudo cp ./ssh_config /etc/ssh/ssh_config cd ../
mkdir -p ~/.ssh yarn
cat ./authorized_keys >> ~/.ssh/authorized_keys