Automate build, enable --mode production (#4)

This commit is contained in:
folex 2020-12-04 19:46:37 +03:00 committed by GitHub
parent bf9d2b5626
commit ac360f5819
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 333 additions and 210 deletions

5
.dockerignore Normal file
View File

@ -0,0 +1,5 @@
*
**/*
!bundle/
!Caddyfile
!nginx.conf

74
.github/workflows/container.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: container
on:
push:
# branches:
# - master
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
### extract branch name
- name: Extract branch name
if: github.event_name != 'pull_request'
shell: bash
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
id: extract_branch
- name: Extract branch name
if: github.event_name == 'pull_request'
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
- uses: actions/checkout@v2
- name: Use Node.js 14
uses: actions/setup-node@v1
with:
node-version: 14
- run: npm install
- run: npm run pack
env:
CI: true
### Prepare docker & login to Dockerhub
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
### Set container tag to 'latest' if branch is master, and to $BRANCH_NAME otherwise
- if: ${{ env.BRANCH_NAME }} == 'master'
run: echo "CONTAINER_TAG=latest" >> $GITHUB_ENV
- if: ${{ env.BRANCH_NAME }} != 'master'
run: echo "CONTAINER_TAG=${{ env.BRANCH_NAME }}" >> $GITHUB_ENV
### Build and push docker image
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
file: ./caddy.Dockerfile
push: true
tags: fluencelabs/dashboard:${{ env.CONTAINER_TAG }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
# docker commit --change='ENTRYPOINT ["caddy", "file-server", "--root", "/build", "--browse"]' caddy fluencelabs/fluence:demo

18
.github/workflows/deploy.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: deploy
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Deploy dashboard@master to DigitalOcean via SSH
uses: appleboy/ssh-action@v0.1.4
with:
HOST: ${{ secrets.DASHBOARD_HOST }}
USERNAME: ${{ secrets.DASHBOARD_USERNAME }}
KEY: ${{ secrets.DASHBOARD_SSHKEY }}
script: |
docker pull fluencelabs/dashboard:latest
docker rm -f dashboard
docker run -d --name dashboard -p443:443 -p80:80 -v caddy_data:/data fluencelabs/dashboard:latest

13
Caddyfile Normal file
View File

@ -0,0 +1,13 @@
:8080, dash.fluence.dev {
log {
output stderr
format console
}
tls alexey@fluence.one
encode zstd gzip
file_server
root * /bundle
try_files {path} /index.html
}

20
caddy.Dockerfile Normal file
View File

@ -0,0 +1,20 @@
FROM caddy
WORKDIR /
COPY ./bundle /bundle
COPY Caddyfile /Caddyfile
#RUN printf '\n\
#dash.fluence.dev {\n\
# try_files /bundle/{path} /bundle/index.html?{query}&p={path}\n\
#}\n\
#'\
#>> /tmp/hello
#RUN echo 'try_files /bundle/{path} /bundle/index.html?{query}&p={path}' > Caddyfile
VOLUME /data
#CMD ["caddy", "file-server", "--root", "/bundle", "--browse"]
CMD ["caddy", "run", "--config", "/Caddyfile"]
# DO NOT FORGET TO USE VOLUME OR CERTBOT WILL BAN: -v caddy_data:/data

View File

@ -23,7 +23,7 @@
"elm-community/intdict": "3.0.0",
"elm-community/list-extra": "8.2.4",
"elm-community/maybe-extra": "5.2.0",
"ivadzy/bbase64": "1.1.1",
"chelovek0v/bbase64": "1.0.1",
"lukewestby/elm-string-interpolate": "1.0.4",
"mpizenberg/elm-pointer-events": "4.0.2",
"rtfeldman/elm-iso8601-date-strings": "1.1.3"

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="favicon" type="image/ico" href="favicon.ico" />
<link rel="favicon" type="image/ico" href="images/favicon.ico" />
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@100;200&display=swap" rel="stylesheet">
@ -16,9 +16,7 @@
<title>Fluence Network Dashboard</title>
</head>
<body>
<script src="/bundle/bundle.js"></script>
<script src="/bundle.js"></script>
<div id="root"></div>
</body>
</html>

4
nginx.Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM nginx
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY ./bundle /usr/share/nginx/html

9
nginx.conf Normal file
View File

@ -0,0 +1,9 @@
server {
listen 80;
server_name frontend;
location / {
# This would be the directory where your React app's static files are stored at
root /usr/share/nginx/html;
try_files $uri /index.html;
}
}

87
package-lock.json generated
View File

@ -1937,12 +1937,6 @@
"integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
"dev": true
},
"acorn-walk": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.0.0.tgz",
"integrity": "sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA==",
"dev": true
},
"address": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
@ -15903,87 +15897,6 @@
}
}
},
"webpack-bundle-analyzer": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.2.0.tgz",
"integrity": "sha512-gmjpdL/AJeGAftSzA+bjIPiChUffjBelcH2+3woCUiRpQfuwrTJuWRyZuqegiwBAroMJp7gIwcJaGeol039zbQ==",
"dev": true,
"requires": {
"acorn": "^8.0.4",
"acorn-walk": "^8.0.0",
"chalk": "^4.1.0",
"commander": "^6.2.0",
"express": "^4.17.1",
"filesize": "^6.1.0",
"gzip-size": "^6.0.0",
"lodash": "^4.17.20",
"opener": "^1.5.2",
"ws": "^7.3.1"
},
"dependencies": {
"acorn": {
"version": "8.0.4",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz",
"integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"commander": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz",
"integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==",
"dev": true
},
"filesize": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz",
"integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==",
"dev": true
},
"gzip-size": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
"integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
"dev": true,
"requires": {
"duplexer": "^0.1.2"
}
}
}
},
"webpack-cli": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.2.0.tgz",

View File

@ -5,8 +5,7 @@
"main": "index.js",
"scripts": {
"start": "webpack-serve --open",
"pack": "webpack",
"dev": "parcel index.html",
"pack": "webpack --mode production",
"prettier-format": "prettier --config .prettierrc 'src/**/*.ts' --write"
},
"repository": {
@ -50,7 +49,6 @@
"ts-loader": "8.0.11",
"typescript": "4.1.2",
"webpack": "5.7.0",
"webpack-bundle-analyzer": "^4.2.0",
"webpack-cli": "4.2.0",
"webpack-nano": "^1.1.0",
"webpack-plugin-serve": "^1.2.0",

View File

@ -1,4 +1,6 @@
export const stage: { peerId: string; multiaddr: string }[] = [
export type Node = { peerId: string; multiaddr: string };
export const stage: Node[] = [
{
multiaddr: '/dns4/stage.fluence.dev/tcp/19001/wss/p2p/12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
peerId: '12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
@ -29,53 +31,117 @@ export const stage: { peerId: string; multiaddr: string }[] = [
},
];
export const faasNet: { peerId: string; multiaddr: string }[] = [
// net01.fluence.dev /ip4/165.227.164.206/tcp/9001/ws 12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9
// net01.fluence.dev /ip4/165.227.164.206/tcp/9990/ws 12D3KooWMhVpgfQxBLkQkJed8VFNvgN4iE6MD7xCybb1ZYWW2Gtz
// net01.fluence.dev /ip4/165.227.164.206/tcp/9100/ws 12D3KooWPnLxnY71JDxvB3zbjKu9k1BCYNthGZw6iGrLYsR1RnWM
// net02.fluence.dev /ip4/138.197.189.50/tcp/9001/ws 12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er
// net03.fluence.dev /ip4/157.230.23.49/tcp/9001/ws 12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb
// net04.fluence.dev /ip4/159.65.126.102/tcp/9001/ws 12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB
// net05.fluence.dev /ip4/142.93.169.49/tcp/9001/ws 12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb
// net06.fluence.dev /ip4/139.59.148.53/tcp/9001/ws 12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH
// net07.fluence.dev /ip4/206.81.30.129/tcp/9001/ws 12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv
// net08.fluence.dev /ip4/157.230.98.51/tcp/9001/ws 12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H
// net09.fluence.dev /ip4/159.89.2.70/tcp/9001/ws 12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg
// net10.fluence.dev /ip4/157.230.98.75/tcp/9001/ws 12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy
export const faasNet: Node[] = [
{
multiaddr: '/ip4/138.68.102.254/tcp/9001/ws/p2p/12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy',
peerId: '12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy',
},
{
multiaddr: '/ip4/165.227.165.192/tcp/9001/ws/p2p/12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB',
peerId: '12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB',
},
{
multiaddr: '/ip4/165.227.167.87/tcp/9001/ws/p2p/12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg',
peerId: '12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg',
},
{
multiaddr: '/ip4/138.68.70.143/tcp/9001/ws/p2p/12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH',
peerId: '12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH',
},
{
multiaddr: '/ip4/165.227.161.121/tcp/9001/ws/p2p/12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb',
peerId: '12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb',
},
{
multiaddr: '/ip4/159.89.12.142/tcp/9001/ws/p2p/12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb',
peerId: '12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb',
},
{
multiaddr: '/ip4/139.59.146.127/tcp/9001/ws/p2p/12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
multiaddr: '/ip4/165.227.164.206/tcp/9001/ws/p2p/12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
peerId: '12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
},
{
multiaddr: '/ip4/159.89.9.74/tcp/9001/ws/p2p/12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er',
peerId: '12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er',
},
{
multiaddr: '/ip4/159.89.6.161/tcp/9001/ws/p2p/12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H',
peerId: '12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H',
},
{
multiaddr: '/ip4/165.227.163.146/tcp/9001/ws/p2p/12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv',
peerId: '12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv',
},
{
multiaddr: '/ip4/139.59.146.127/tcp/9990/ws/p2p/12D3KooWMhVpgfQxBLkQkJed8VFNvgN4iE6MD7xCybb1ZYWW2Gtz',
multiaddr: '/ip4/165.227.164.206/tcp/9990/ws/p2p/12D3KooWMhVpgfQxBLkQkJed8VFNvgN4iE6MD7xCybb1ZYWW2Gtz',
peerId: '12D3KooWMhVpgfQxBLkQkJed8VFNvgN4iE6MD7xCybb1ZYWW2Gtz',
},
{
multiaddr: '/ip4/139.59.146.127/tcp/9100/ws/p2p/12D3KooWPnLxnY71JDxvB3zbjKu9k1BCYNthGZw6iGrLYsR1RnWM',
multiaddr: '/ip4/165.227.164.206/tcp/9100/ws/p2p/12D3KooWPnLxnY71JDxvB3zbjKu9k1BCYNthGZw6iGrLYsR1RnWM',
peerId: '12D3KooWPnLxnY71JDxvB3zbjKu9k1BCYNthGZw6iGrLYsR1RnWM',
},
{
multiaddr: '/ip4/138.197.189.50/tcp/9001/ws/p2p/12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er',
peerId: '12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er',
},
{
multiaddr: '/ip4/157.230.23.49/tcp/9001/ws/p2p/12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb',
peerId: '12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb',
},
{
multiaddr: '/ip4/159.65.126.102/tcp/9001/ws/p2p/12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB',
peerId: '12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB',
},
{
multiaddr: '/ip4/142.93.169.49/tcp/9001/ws/p2p/12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb',
peerId: '12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb',
},
{
multiaddr: '/ip4/139.59.148.53/tcp/9001/ws/p2p/12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH',
peerId: '12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH',
},
{
multiaddr: '/ip4/206.81.30.129/tcp/9001/ws/p2p/12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv',
peerId: '12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv',
},
{
multiaddr: '/ip4/157.230.98.51/tcp/9001/ws/p2p/12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H',
peerId: '12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H',
},
{
multiaddr: '/ip4/159.89.2.70/tcp/9001/ws/p2p/12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg',
peerId: '12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg',
},
{
multiaddr: '/ip4/157.230.98.75/tcp/9001/ws/p2p/12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy',
peerId: '12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy',
},
];
export const faasNetHttps: Node[] = [
{
multiaddr: '/dns4/net01.fluence.dev/tcp/19001/wss/p2p/12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
peerId: '12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE9',
},
{
multiaddr: '/dns4/net01.fluence.dev/tcp/19990/wss/p2p/12D3KooWMhVpgfQxBLkQkJed8VFNvgN4iE6MD7xCybb1ZYWW2Gtz',
peerId: '12D3KooWMhVpgfQxBLkQkJed8VFNvgN4iE6MD7xCybb1ZYWW2Gtz',
},
{
multiaddr: '/dns4/net01.fluence.dev/tcp/19100/wss/p2p/12D3KooWPnLxnY71JDxvB3zbjKu9k1BCYNthGZw6iGrLYsR1RnWM',
peerId: '12D3KooWPnLxnY71JDxvB3zbjKu9k1BCYNthGZw6iGrLYsR1RnWM',
},
{
multiaddr: '/dns4/net02.fluence.dev/tcp/19001/wss/p2p/12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er',
peerId: '12D3KooWHk9BjDQBUqnavciRPhAYFvqKBe4ZiPPvde7vDaqgn5er',
},
{
multiaddr: '/dns4/net03.fluence.dev/tcp/19001/wss/p2p/12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb',
peerId: '12D3KooWBUJifCTgaxAUrcM9JysqCcS4CS8tiYH5hExbdWCAoNwb',
},
{
multiaddr: '/dns4/net04.fluence.dev/tcp/19001/wss/p2p/12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB',
peerId: '12D3KooWJbJFaZ3k5sNd8DjQgg3aERoKtBAnirEvPV8yp76kEXHB',
},
{
multiaddr: '/dns4/net05.fluence.dev/tcp/19001/wss/p2p/12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb',
peerId: '12D3KooWCKCeqLPSgMnDjyFsJuWqREDtKNHx1JEBiwaMXhCLNTRb',
},
{
multiaddr: '/dns4/net06.fluence.dev/tcp/19001/wss/p2p/12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH',
peerId: '12D3KooWKnRcsTpYx9axkJ6d69LPfpPXrkVLe96skuPTAo76LLVH',
},
{
multiaddr: '/dns4/net07.fluence.dev/tcp/19001/wss/p2p/12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv',
peerId: '12D3KooWBSdm6TkqnEFrgBuSkpVE3dR1kr6952DsWQRNwJZjFZBv',
},
{
multiaddr: '/dns4/net08.fluence.dev/tcp/19001/wss/p2p/12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H',
peerId: '12D3KooWGzNvhSDsgFoHwpWHAyPf1kcTYCGeRBPfznL8J6qdyu2H',
},
{
multiaddr: '/dns4/net09.fluence.dev/tcp/19001/wss/p2p/12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg',
peerId: '12D3KooWF7gjXhQ4LaKj6j7ntxsPpGk34psdQicN2KNfBi9bFKXg',
},
{
multiaddr: '/dns4/net10.fluence.dev/tcp/19001/wss/p2p/12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy',
peerId: '12D3KooWB9P1xmV3c7ZPpBemovbwCiRRTKd3Kq2jsVPQN4ZukDfy',
},
];

View File

@ -22,17 +22,17 @@ import { registerService } from 'fluence/dist/globalState';
import { ServiceOne } from 'fluence/dist/service';
import * as serviceWorker from './serviceWorker';
import { Elm } from './Main.elm';
import {faasNet, stage} from './environments';
import { faasNetHttps, faasNet, stage } from './environments';
const relayIdx = 1;
export const relays: { peerId: string; multiaddr: string }[] = stage;
export const relays: { peerId: string; multiaddr: string }[] = faasNetHttps;
function genFlags(peerId: string): any {
return {
peerId,
relayId: relays[relayIdx].peerId,
knownPeers: relays.map((v) => v.peerId)
knownPeers: relays.map((v) => v.peerId),
};
}
@ -98,8 +98,6 @@ function event(name: string,peer: string,peers?: string[],identify?: string[],se
});
})();
Fluence.setLogLevel('trace')
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA

View File

@ -1,75 +1,82 @@
const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
const { WebpackPluginServe: Serve } = require('webpack-plugin-serve');
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
entry: {
app: ['./src/index.ts']
},
resolve: {
extensions: ['.js', '.ts', ".elm"]
},
devServer: {
contentBase: './bundle',
hot: false,
inline: false
},
devtool: "eval-source-map",
module: {
rules: [
{
test: /\.html$/,
use: [{loader: "file-loader?name=[name].[ext]"}]
module.exports = (env, argv) => {
const isDebug = argv.mode === 'development';
const isProduction = argv.mode === 'production';
},
{
test: [/\.elm$/],
exclude: [/elm-stuff/, /node_modules/],
use: [
{loader: "elm-hot-webpack-loader"},
{
loader: "elm-webpack-loader",
options:
{debug: true, forceWatch: false}
}
]
},
{test: /\.ts$/, loader: "ts-loader"},
{
test: /\.(png)$/,
loader: 'file-loader',
},
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
]
},
mode: "development",
watch: true,
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'bundle'),
publicPath: "/"
},
plugins: [
new CopyWebpackPlugin({
patterns: [
{from: './*.html'},
{from: './images/*.svg'},
{from: './favicon.ico'},
]
}),
new webpack.ProvidePlugin({
process: 'process/browser.js',
Buffer: ['buffer', 'Buffer'],
}),
new Serve({
historyFallback: true,
port: 55553,
host: 'localhost',
})
]
return {
entry: {
app: ['./src/index.ts'],
},
resolve: {
extensions: ['.js', '.ts', '.elm'],
},
devServer: {
contentBase: './bundle',
hot: false,
inline: false,
},
devtool: 'eval-source-map',
module: {
rules: [
{
test: /\.html$/,
use: [{ loader: 'file-loader?name=[name].[ext]' }],
},
{
test: [/\.elm$/],
exclude: [/elm-stuff/, /node_modules/],
use: [
{ loader: 'elm-hot-webpack-loader' },
{
loader: 'elm-webpack-loader',
options: {
debug: isDebug,
optimize: isProduction,
forceWatch: false,
},
},
],
},
{ test: /\.ts$/, loader: 'ts-loader' },
{
test: /\.(png)$/,
loader: 'file-loader',
},
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
],
},
mode: 'development',
watch: isDebug,
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'bundle'),
publicPath: '/',
},
optimization: {
minimize: isProduction,
minimizer: [new TerserPlugin()],
},
plugins: [
new CopyWebpackPlugin({
patterns: [{ from: './*.html' }, { from: './images/*.svg' }],
}),
new webpack.ProvidePlugin({
process: 'process/browser.js',
Buffer: ['buffer', 'Buffer'],
}),
new Serve({
historyFallback: true,
port: 55553,
host: 'localhost',
}),
],
};
};