A webapp that makes Skynet accessible to web browsers.
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.
Go to file
Karol Wypchlo e2d7397d05 Revert "use secure subdomain"
This reverts commit d8003fdd85f37049ac2c7074495f180f2fcfa1b5.
2020-12-15 17:25:09 +01:00
.github update cypress github action to v2 2020-11-24 15:32:05 +01:00
docker Revert "use secure subdomain" 2020-12-15 17:25:09 +01:00
packages auth links 2020-12-15 17:25:09 +01:00
scripts improve nginx skylinks cache purging (#553) 2020-12-03 12:59:50 +01:00
setup-scripts Setup mail sending. 2020-12-07 11:16:21 +01:00
.gitignore Setup mail sending. 2020-12-07 11:16:21 +01:00
LICENSE Initial commit 2020-01-30 08:13:21 -05:00
README.md Address PR remarks. 2020-11-25 13:12:29 +01:00
docker-compose.yml Revert "use secure subdomain" 2020-12-15 17:25:09 +01:00
package.json migrate to yarn workspaces 2020-07-31 00:50:42 +02:00
yarn.lock comment out uniswap links from health-check 2020-11-18 16:08:03 +01:00

README.md

Skynet Portal

Web application

Use yarn workspace webapp start to start the development server.

Use yarn workspace webapp build to compile the application to /public directory.

You can use the below build parameters to customize your web application.

  • development example GATSBY_API_URL=https://siasky.dev yarn workspace webapp start
  • production example GATSBY_API_URL=https://siasky.net yarn workspace webapp build

List of available parameters:

  • GATSBY_API_URL: override api url (defaults to location origin)

MongoDB Setup

Mongo needs a couple of extra steps in order to start a secure cluster.

  • Open port 27017 on all nodes that will take part in the cluster. Ideally, you would only open the port for the other nodes in the cluster.
  • Manually run an initialisation docker run with extra environment variables that will initialise the admin user with a password (example below).
  • Manually add a mgkey file under ./docker/data/mongo with the respective secret (see Mongo's keyfile access control for details).
  • During the initialisation run mentioned above, we need to make two extra steps within the container:
    • Change the ownership of mgkey to mongodb:mongodb
    • Change its permissions to 400
  • After these steps are done we can open a mongo shell on the master node and run rs.add() in order to add the new node to the cluster.

Example initialisation docker run command:

docker run \
	--rm \
	--name mg \
	-p 27017:27017 \
	-e MONGO_INITDB_ROOT_USERNAME=<admin username> \
	-e MONGO_INITDB_ROOT_PASSWORD=<admin password> \
	-v /home/user/skynet-webportal/docker/data/mongo/db:/data/db \
	-v /home/user/skynet-webportal/docker/data/mongo/mgkey:/data/mgkey \
	mongo --keyFile=/data/mgkey --replSet=skynet

Regular docker run command:

docker run \
	--rm \
	--name mg \
	-p 27017:27017 \
	-v /home/user/skynet-webportal/docker/data/mongo/db:/data/db \
	-v /home/user/skynet-webportal/docker/data/mongo

Cluster initialisation mongo command:

rs.initiate(
  {
    _id : "skynet",
    members: [
      { _id : 0, host : "mongo0.example.com:27017" },
      { _id : 1, host : "mongo1.example.com:27017" },
    ]
  }
)

Contributing

Testing Your Code

Before pushing your code you should verify that it will pass our online test suite.

Cypress Tests Verify the Cypress test suite by doing the following:

  1. In one terminal screen run GATSBY_API_URL=https://siasky.net yarn workspace webapp start
  2. In a second terminal screen run yarn workspace webapp cypress run

Setting up complete skynet server

A setup guide with installation scripts can be found in setup-scripts/README.md.