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 Wypchło 189cfd8050
Merge pull request #1634 from SkynetLabs/dependabot/npm_and_yarn/packages/website/fontsource/source-sans-pro-4.5.2
Bump @fontsource/source-sans-pro from 4.5.1 to 4.5.2 in /packages/website
2022-01-29 07:36:44 +01:00
.github blocklist improvements 2021-12-20 13:12:56 +01:00
changelog Add changelog 2022-01-17 13:50:21 +01:00
docker never restrict options requests 2022-01-26 23:56:37 +01:00
packages Merge pull request #1634 from SkynetLabs/dependabot/npm_and_yarn/packages/website/fontsource/source-sans-pro-4.5.2 2022-01-29 07:36:44 +01:00
scripts clean up manual blocklist script 2022-01-10 22:35:04 +01:00
setup-scripts Merge pull request #1497 from SkynetLabs/adjust-blocklist-airtable-script 2022-01-11 16:38:07 +01:00
.gitignore Cleanup Kratos, Oathkeeper, CockroachDB. 2021-12-16 13:08:35 +02:00
.prettierignore Accounts (#554) 2021-04-01 15:15:37 +02:00
CHANGELOG.md Update changelog for v0.1.3 2021-10-18 15:46:54 -04:00
LICENSE.md change license to custom 2021-03-15 12:58:02 +01:00
README.md Cleanup Kratos, Oathkeeper, CockroachDB. 2021-12-16 13:08:35 +02:00
dc Merge branch 'master' of https://github.com/SkynetLabs/skynet-webportal into pj/mail-scanner 2021-12-20 13:46:36 +01:00
docker-compose.abuse.yml health checks depends on blocker when it is available 2022-01-20 17:02:27 +01:00
docker-compose.accounts.yml fix ACCOUNTS_LIMIT_ACCESS missing when it defaults 2022-01-20 12:00:34 +01:00
docker-compose.blocker.yml health checks depends on blocker when it is available 2022-01-20 17:02:27 +01:00
docker-compose.jaeger.yml adjust docker services logging (missing ones) 2021-07-12 13:58:25 +02:00
docker-compose.malware-scanner.yml health checks depends on blocker when it is available 2022-01-20 17:02:27 +01:00
docker-compose.mongodb.yml move sia mongo variables to mongo docker compose file 2022-01-05 16:15:31 +01:00
docker-compose.uploads.yml Accounts (#554) 2021-04-01 15:15:37 +02:00
docker-compose.yml Merge pull request #1498 from SkynetLabs/account-only-portals 2022-01-12 14:09:51 +01:00

README.md

Skynet Portal

Web application

Change current directory with cd packages/website.

Use yarn start to start the development server.

Use yarn 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 start
  • production example GATSBY_API_URL=https://siasky.net yarn build

List of available parameters:

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

License

Skynet uses a custom License. The Skynet License is a source code license that allows you to use, modify and distribute the software, but you must preserve the payment mechanism in the software.

For the purposes of complying with our code license, you can use the following Siacoin address:

fb6c9320bc7e01fbb9cd8d8c3caaa371386928793c736837832e634aaaa484650a3177d6714a

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 add a mgkey file under ./docker/data/mongo with the respective secret ( see Mongo's keyfile access control for details).
  • Manually run an initialisation docker run with extra environment variables that will initialise the admin user with a password (example below).
  • 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 primary node and run rs.add() in order to add the new node to the cluster. If you don't know which node is primary, log onto any server and jump into the Mongo's container (docker exec -it mongo mongo -u admin -p) and then get the status of the replica set (rs.status()).

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/mgkey:/data/mgkey \
	mongo --keyFile=/data/mgkey --replSet=skynet

Cluster initialisation mongo command:

rs.initiate(
  {
    _id : "skynet",
    members: [
      { _id : 0, host : "mongo:27017" }
    ]
  }
)

Add more nodes when they are ready:

rs.add("second.node.net: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 website serve
  2. In a second terminal screen run yarn cypress run

Setting up complete skynet server

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