This repository has been archived on 2022-10-07. You can view files and clone it, but cannot push or open issues or pull requests.
skynet-webportal/setup-scripts
PJ 7b2c61ae67 Add skyfile POST route to nginx + update skylink regex 2020-02-18 11:38:45 +01:00
..
README.md Add more letsencrypt notes 2020-02-06 12:08:05 -05:00
authorized_keys Remove authorized keys 2020-01-31 14:06:52 -05:00
bashrc Move setup scripts in dir 2020-01-30 13:42:24 -05:00
letsencrypt-setup.sh Add domain name param to LE script 2020-01-31 14:06:43 -05:00
setup.sh Update setup guide 2020-01-31 16:58:30 -05:00
skynet-nginx.conf Add skyfile POST route to nginx + update skylink regex 2020-02-18 11:38:45 +01:00
ssh_config Move setup scripts in dir 2020-01-30 13:42:24 -05:00
tmux.conf Add copy-paste to tmux 2020-01-30 17:19:38 -05:00

README.md

Skynet Portal Setup Scripts

This directory contains a setup guide and scripts that will install and configure some basic requirements for running a Skynet Portal. The assumption is that we are working with a Debian Buster Minimal system or similar.

Initial Setup

(Assumes we are logged in as root on a fresh installation of Debian)

You may want to fork this repository and add your ssh pubkey to authorized_keys and optionally edit the tmux and bash configurations.

  1. SSH in a freshly installed Debian machine.
  2. apt-get update && apt-get install sudo
  3. adduser user
  4. usermod -a -G sudo user
  5. Quit the ssh session.

You a can now ssh into your machine as the user user.

  1. On your local machine: ssh-copy-id user@ip-addr
  2. On your local machine: ssh user@ip-addr
  3. Now logged in as user: sudo apt-get install git
  4. git clone https://github.com/NebulousLabs/skynet-webportal
  5. cd skynet-webportal/setup-scripts
  6. ./setup.sh
  7. Once DNS records are set you can run: ./letsencrypt-setup.sh
  8. This should edit your nginx configuration for you. If not, you should check that keys were created by letsencrypt in /etc/letsencrypt/live/ and add the following lines into your nginx configuration. Make sure to replace YOUR-DOMAIN with your domain name.
    ssl_certificate /etc/letsencrypt/live/YOUR-DOMAIN/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/YOUR-DOMAIN/privkey.pem;
    
  9. You should also change the nginx configuration to listen on port 443 instead.
  10. Finally make sure to check your nginx conf and reload nginx: sudo nginx -t sudo systemctl reload nginx

Running siad

NOTE: You must be running siad and siac by building from a version at least as recent as v1.4.3.

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.

Portal 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 --payment-contract-initial-funding 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.