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

84 lines
2.6 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.
* Open port 27017 to all nodes that will take part 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 : "helsinki.siasky.net:27017" },
{ _id : 1, host : "us-va-1.siasky.net: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).