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/README.md

85 lines
2.7 KiB
Markdown
Raw Normal View History

2020-01-30 18:39:56 +00:00
# Skynet Portal
2020-01-31 19:10:50 +00:00
2020-02-28 12:52:32 +00:00
## Web application
2020-10-20 12:46:34 +00:00
Use `yarn workspace webapp start` to start the development server.
2020-02-28 12:52:32 +00:00
2020-10-20 12:46:34 +00:00
Use `yarn workspace webapp build` to compile the application to `/public` directory.
2020-02-28 12:52:32 +00:00
You can use the below build parameters to customize your web application.
2020-02-28 12:52:32 +00:00
2020-10-20 12:46:34 +00:00
- development example `GATSBY_API_URL=https://siasky.dev yarn workspace webapp start`
- production example `GATSBY_API_URL=https://siasky.net yarn workspace webapp build`
2020-02-28 12:52:32 +00:00
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.
2020-11-25 12:12:29 +00:00
* 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
2020-11-25 12:12:29 +00:00
secret (see [Mongo's keyfile access control](https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/) 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: [
2020-11-25 12:12:29 +00:00
{ _id : 0, host : "mongo0.example.com:27017" },
{ _id : 1, host : "mongo1.example.com:27017" },
]
}
)
```
2020-08-27 20:34:48 +00:00
## Contributing
### Testing Your Code
2020-09-14 13:57:44 +00:00
2020-08-27 20:34:48 +00:00
Before pushing your code you should verify that it will pass our online test
2020-09-14 13:57:44 +00:00
suite.
2020-08-27 20:34:48 +00:00
2020-09-14 13:57:44 +00:00
**Cypress Tests**
2020-08-27 20:34:48 +00:00
Verify the Cypress test suite by doing the following:
2020-09-14 13:57:44 +00:00
2020-08-27 20:34:48 +00:00
1. In one terminal screen run `GATSBY_API_URL=https://siasky.net yarn workspace webapp start`
1. In a second terminal screen run `yarn workspace webapp cypress run`
## Setting up complete skynet server
2020-02-28 12:52:32 +00:00
A setup guide with installation scripts can be found in [setup-scripts/README.md](./setup-scripts/README.md).