From ac360f58199691e8675bf18d410629a727d22f81 Mon Sep 17 00:00:00 2001
From: folex <0xdxdy@gmail.com>
Date: Fri, 4 Dec 2020 19:46:37 +0300
Subject: [PATCH] Automate build, enable --mode production (#4)
---
.dockerignore | 5 +
.github/workflows/container.yml | 74 +++++++++++++++
.github/workflows/deploy.yml | 18 ++++
Caddyfile | 13 +++
caddy.Dockerfile | 20 ++++
elm.json | 2 +-
favicon.ico => images/favicon.ico | Bin
index.html | 6 +-
nginx.Dockerfile | 4 +
nginx.conf | 9 ++
package-lock.json | 87 ------------------
package.json | 4 +-
src/environments.ts | 148 +++++++++++++++++++++---------
src/index.ts | 8 +-
webpack.config.js | 145 +++++++++++++++--------------
15 files changed, 333 insertions(+), 210 deletions(-)
create mode 100644 .dockerignore
create mode 100644 .github/workflows/container.yml
create mode 100644 .github/workflows/deploy.yml
create mode 100644 Caddyfile
create mode 100644 caddy.Dockerfile
rename favicon.ico => images/favicon.ico (100%)
create mode 100644 nginx.Dockerfile
create mode 100644 nginx.conf
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..d5e2da4
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,5 @@
+*
+**/*
+!bundle/
+!Caddyfile
+!nginx.conf
diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml
new file mode 100644
index 0000000..4d2236a
--- /dev/null
+++ b/.github/workflows/container.yml
@@ -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
\ No newline at end of file
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..3751572
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -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
diff --git a/Caddyfile b/Caddyfile
new file mode 100644
index 0000000..eb84de7
--- /dev/null
+++ b/Caddyfile
@@ -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
+}
diff --git a/caddy.Dockerfile b/caddy.Dockerfile
new file mode 100644
index 0000000..10ab4ef
--- /dev/null
+++ b/caddy.Dockerfile
@@ -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
diff --git a/elm.json b/elm.json
index a8e15bc..fe97a81 100644
--- a/elm.json
+++ b/elm.json
@@ -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"
diff --git a/favicon.ico b/images/favicon.ico
similarity index 100%
rename from favicon.ico
rename to images/favicon.ico
diff --git a/index.html b/index.html
index bb784a5..a92036a 100644
--- a/index.html
+++ b/index.html
@@ -1,7 +1,7 @@
-
+
@@ -16,9 +16,7 @@
Fluence Network Dashboard
-
+
-
-
diff --git a/nginx.Dockerfile b/nginx.Dockerfile
new file mode 100644
index 0000000..e5a8aeb
--- /dev/null
+++ b/nginx.Dockerfile
@@ -0,0 +1,4 @@
+FROM nginx
+COPY ./nginx.conf /etc/nginx/conf.d/default.conf
+
+COPY ./bundle /usr/share/nginx/html
diff --git a/nginx.conf b/nginx.conf
new file mode 100644
index 0000000..a61c1a9
--- /dev/null
+++ b/nginx.conf
@@ -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;
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index 13ce246..2129063 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -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",
diff --git a/package.json b/package.json
index 6bc9bda..b96733c 100644
--- a/package.json
+++ b/package.json
@@ -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",
diff --git a/src/environments.ts b/src/environments.ts
index 82a7804..4d0790a 100644
--- a/src/environments.ts
+++ b/src/environments.ts
@@ -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',
+ },
];
diff --git a/src/index.ts b/src/index.ts
index d8fe595..6ab94b5 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -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
diff --git a/webpack.config.js b/webpack.config.js
index e6526d8..925fb5a 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -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',
+ }),
+ ],
+ };
};
-