diff --git a/setup-scripts/README.md b/setup-scripts/README.md index 49867c4c..829da339 100644 --- a/setup-scripts/README.md +++ b/setup-scripts/README.md @@ -45,10 +45,23 @@ 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 &` +The setup script creates a systemd user service that will run `siad` in the +background and automatically restart upon failure. The `siad.service` file must +be placed in `~/.config/systemd/user/` + +To use the `siad.service`, first fill out `~/.sia/sia.env` environment variables with the +correct values. You will need to initialize your wallet if you have not already +done so. + +To enable the service: `systemctl --user enable siad.service` + +### Useful Commands +To start the service: `systemctl --user start siad` +To stop it: `systemctl --user stop siad` +To check the status of it: `systemctl --user status siad` + +To check standard err/standard out: `journalctl --user-unit siad` -This will start syncing `siad` in the background. ## Portal Setup diff --git a/setup-scripts/bashrc b/setup-scripts/bashrc index 3cc9f795..61d41906 100644 --- a/setup-scripts/bashrc +++ b/setup-scripts/bashrc @@ -112,3 +112,7 @@ if ! shopt -oq posix; then fi fi export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin:/home/user/go/bin + +set -o allexport +source ~/.sia/sia.env +set +o allexport diff --git a/setup-scripts/setup.sh b/setup-scripts/setup.sh index ea1b5a27..b1464478 100755 --- a/setup-scripts/setup.sh +++ b/setup-scripts/setup.sh @@ -46,7 +46,7 @@ sudo ufw allow 'Nginx HTTP' # 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 +export PATH=$PATH:$HOME/go/bin rm go1.13.7.linux-amd64.tar.gz # Sanity check that will pass if go was installed correctly. @@ -57,10 +57,18 @@ cwd=$(pwd) # Install Sia cd ~/ git clone https://gitlab.com/NebulousLabs/Sia -cd Sia && git checkout viewnode && make +cd Sia && git checkout v1.4.3 && make # Setup skynet frontend. cd $cwd cd ../ yarn yarn build + +# Enable the systemd service +cd $cwd +mkdir -p ~/.config/systemd/user +cp siad.service ~/.config/systemd/user/siad.service + +mkdir -p ~/.sia +cp sia.env ~/.sia/ diff --git a/setup-scripts/sia.env b/setup-scripts/sia.env new file mode 100644 index 00000000..cc986b46 --- /dev/null +++ b/setup-scripts/sia.env @@ -0,0 +1,3 @@ +SIA_DATA_DIR="" +SIA_API_PASSWORD="" +SIA_WALLET_PASSWORD="" diff --git a/setup-scripts/siad.service b/setup-scripts/siad.service new file mode 100644 index 00000000..769936c2 --- /dev/null +++ b/setup-scripts/siad.service @@ -0,0 +1,13 @@ +[Unit] +Description=siad + +[Service] +Type=simple +WorkingDirectory=/home/user/siad +EnvironmentFile=/home/user/.sia/sia.env +ExecStart=/home/user/go/bin/siad +ExecStop=/home/user/go/bin/siac stop +Restart=on-failure + +[Install] +WantedBy=default.target