mirror of
https://github.com/netbirdio/dashboard.git
synced 2026-09-23 00:30:43 -07:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35656cd416 |
No files matched your search
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": ["next/core-web-vitals","prettier"],
|
|
||||||
"plugins": ["simple-import-sort"],
|
|
||||||
"rules": {
|
|
||||||
"simple-import-sort/imports": [
|
|
||||||
"warn",
|
|
||||||
{
|
|
||||||
"groups": [["^\\u0000", "^@?\\w", "^[^.]", "^\\."]]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"simple-import-sort/exports": "warn"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug/Issue report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: ['needs-triage']
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Describe the problem**
|
|
||||||
|
|
||||||
A clear and concise description of what the problem is.
|
|
||||||
|
|
||||||
**To Reproduce**
|
|
||||||
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Are you using NetBird Cloud?**
|
|
||||||
|
|
||||||
Please specify whether you use NetBird Cloud or self-host NetBird's control plane.
|
|
||||||
|
|
||||||
**NetBird version**
|
|
||||||
|
|
||||||
`netbird version`
|
|
||||||
|
|
||||||
**NetBird status -d output:**
|
|
||||||
|
|
||||||
If applicable, add the `netbird status -d' command output.
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
|
|
||||||
Add any other context about the problem here.
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: ['feature-request','needs-triage']
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
||||||
@@ -2,60 +2,55 @@ name: build and push
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- "feature/**"
|
|
||||||
- main
|
- main
|
||||||
tags:
|
tags:
|
||||||
- "**"
|
- "**"
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
env:
|
|
||||||
IMAGE_NAME: netbirdio/dashboard
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_n_push:
|
build_n_push:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: setup-node
|
- name: setup-node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: '18'
|
node-version: '16'
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependecies
|
||||||
run: npm install
|
run: npm install
|
||||||
|
|
||||||
- run: echo '{}' > .local-config.json
|
- name: Build
|
||||||
|
# skiping fail on warning for now
|
||||||
- name: Build
|
run: CI=false npm run build
|
||||||
run: npm run build
|
-
|
||||||
-
|
|
||||||
name: Set up QEMU
|
name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v1
|
||||||
-
|
-
|
||||||
name: Set up Docker Buildx
|
name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v1
|
||||||
-
|
-
|
||||||
name: Docker meta
|
name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v3
|
||||||
with:
|
with:
|
||||||
images: ${{ env.IMAGE_NAME }}
|
images: wiretrustee/dashboard
|
||||||
-
|
-
|
||||||
name: Login to DockerHub
|
name: Login to DockerHub
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.NB_DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.NB_DOCKER_TOKEN }}
|
password: ${{ secrets.DOCKER_TOKEN }}
|
||||||
-
|
-
|
||||||
name: Docker build and push
|
name: Docker build and push
|
||||||
uses: docker/build-push-action@v3
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: docker/Dockerfile
|
file: docker/Dockerfile
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
platforms: linux/amd64,linux/arm64,linux/arm
|
platforms: linux/amd64,linux/arm64,linux/arm
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
name: Codespell
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
name: Check
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: codespell
|
|
||||||
uses: codespell-project/actions-codespell@v2
|
|
||||||
with:
|
|
||||||
only_warn: 1
|
|
||||||
skip: package-lock.json,*.svg
|
|
||||||
+11
-23
@@ -2,42 +2,30 @@
|
|||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
/node_modules
|
/node_modules
|
||||||
|
/node_modules.bkp
|
||||||
/.pnp
|
/.pnp
|
||||||
.pnp.js
|
.pnp.js
|
||||||
|
|
||||||
# testing
|
# testing
|
||||||
/coverage
|
/coverage
|
||||||
|
|
||||||
# next.js
|
|
||||||
/.next/
|
|
||||||
/out/
|
|
||||||
|
|
||||||
# production
|
# production
|
||||||
/build
|
/build
|
||||||
/out
|
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.pem
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
# debug
|
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
|
|
||||||
# local env files
|
src/auth_config.json
|
||||||
.env*.local
|
.idea
|
||||||
|
.eslintcache
|
||||||
# vercel
|
src/.local-config.json
|
||||||
.vercel
|
/public/OidcServiceWorker.js
|
||||||
|
/public/OidcTrustedDomains.js
|
||||||
# typescript
|
|
||||||
*.tsbuildinfo
|
|
||||||
next-env.d.ts
|
|
||||||
|
|
||||||
# config
|
|
||||||
.local-config.json
|
|
||||||
.configs/.local-config.zitadel.json
|
|
||||||
.configs/.staging-config.json
|
|
||||||
.configs/.temp-config.json
|
|
||||||
.configs
|
|
||||||
@@ -1,3 +1,2 @@
|
|||||||
Mikhail Bragin (https://github.com/braginini)
|
Mikhail Bragin (https://github.com/braginini)
|
||||||
Maycon Santos (https://github.com/mlsmaycon)
|
Maycon Santos (https://github.com/mlsmaycon)
|
||||||
Wiretrustee UG (haftungsbeschränkt)
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
BSD 3-Clause License
|
BSD 3-Clause License
|
||||||
|
|
||||||
Copyright (c) 2024 Wiretrustee UG (haftungsbeschränkt) & AUTHORS
|
Copyright (c) 2021 Wiretrustee AUTHORS
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# NetBird Dashboard
|
# NetBird dashboard
|
||||||
|
|
||||||
This project is the UI for NetBird's Management service.
|
This project is the UI for NetBird's Management service.
|
||||||
|
|
||||||
@@ -17,15 +17,15 @@ The dashboard makes it possible to:
|
|||||||
- define access controls
|
- define access controls
|
||||||
|
|
||||||
## Some Screenshots
|
## Some Screenshots
|
||||||
<img src="./src/assets/screenshots/peers.png" alt="peers"/>
|
<img src="./media/auth.png" alt="auth"/>
|
||||||
<img src="./src/assets/screenshots/add-peer.png" alt="add-peer"/>
|
<img src="./media/peers.png" alt="peers"/>
|
||||||
|
<img src="./media/add-peer.png" alt="add-peer"/>
|
||||||
|
|
||||||
|
|
||||||
## Technologies Used
|
## Technologies Used
|
||||||
|
|
||||||
- NextJS
|
|
||||||
- ReactJS
|
- ReactJS
|
||||||
- Tailwind CSS
|
- AntD UI framework
|
||||||
- Auth0
|
- Auth0
|
||||||
- Nginx
|
- Nginx
|
||||||
- Docker
|
- Docker
|
||||||
@@ -36,58 +36,24 @@ Disclaimer. We believe that proper user management system is not a trivial task
|
|||||||
use Auth0 service that covers all our needs (user management, social login, JTW for the management API).
|
use Auth0 service that covers all our needs (user management, social login, JTW for the management API).
|
||||||
Auth0 so far is the only 3rd party dependency that can't be really self-hosted.
|
Auth0 so far is the only 3rd party dependency that can't be really self-hosted.
|
||||||
|
|
||||||
1. Install [Docker](https://docs.docker.com/get-docker/)
|
1. install [Docker](https://docs.docker.com/get-docker/)
|
||||||
2. Register [Auth0](https://auth0.com/) account
|
2. register [Auth0](https://auth0.com/) account
|
||||||
3. Running NetBird UI Dashboard requires the following Auth0 environmental variables to be set (see docker command below):
|
3. running Wiretrustee UI Dashboard requires the following Auth0 environmental variables to be set (see docker command below):
|
||||||
|
|
||||||
`AUTH0_DOMAIN` `AUTH0_CLIENT_ID` `AUTH0_AUDIENCE`
|
```AUTH0_DOMAIN``` ```AUTH0_CLIENT_ID``` ```AUTH0_AUDIENCE```
|
||||||
|
|
||||||
To obtain these, please use [Auth0 React SDK Guide](https://auth0.com/docs/quickstart/spa/react/01-login#configure-auth0) up until "Configure Allowed Web Origins"
|
To obtain these, please use [Auth0 React SDK Guide](https://auth0.com/docs/quickstart/spa/react/01-login#configure-auth0) up until "Configure Allowed Web Origins"
|
||||||
|
|
||||||
4. NetBird UI Dashboard uses NetBirds Management Service HTTP API, so setting `NETBIRD_MGMT_API_ENDPOINT` is required. Most likely it will be `http://localhost:33071` if you are hosting Management API on the same server.
|
4. Wiretrustee UI Dashboard uses Wiretrustee Management Service HTTP API, so setting ```WIRETRUSTEE_MGMT_API_ENDPOINT``` is required. Most likely it will be ```http://localhost:33071``` if you are hosting Management API on the same server.
|
||||||
5. Run docker container without SSL (Let's Encrypt):
|
5. Run docker container without SSL (Let's Encrypt):
|
||||||
|
|
||||||
```shell
|
```docker run -d --name wiretrustee-dashboard --rm -p 80:80 -p 443:443 -e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> -e AUTH0_CLIENT_ID=<SET YOUR CLIENT ID> -e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> -e WIRETRUSTEE_MGMT_API_ENDPOINT=<SET YOUR MANAGEMETN API URL> wiretrustee/dashboard:main```
|
||||||
docker run -d --name netbird-dashboard \
|
|
||||||
--rm -p 80:80 -p 443:443 \
|
|
||||||
-e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> \
|
|
||||||
-e AUTH0_CLIENT_ID=<SET YOUR CLIENT ID> \
|
|
||||||
-e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> \
|
|
||||||
-e NETBIRD_MGMT_API_ENDPOINT=<SET YOUR MANAGEMETN API URL> \
|
|
||||||
netbirdio/dashboard:main
|
|
||||||
```
|
|
||||||
6. Run docker container with SSL (Let's Encrypt):
|
6. Run docker container with SSL (Let's Encrypt):
|
||||||
|
|
||||||
```shell
|
```docker run -d --name wiretrustee-dashboard --rm -p 80:80 -p 443:443 -e NGINX_SSL_PORT=443 -e LETSENCRYPT_DOMAIN=<YOUR PUBLIC DOMAIN> -e LETSENCRYPT_EMAIL=<YOUR EMAIL> -e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> -e AUTH0_CLIENT_ID=<SET YOUR CLEITN ID> -e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> -e WIRETRUSTEE_MGMT_API_ENDPOINT=<SET YOUR MANAGEMETN API URL> wiretrustee/dashboard:main```
|
||||||
docker run -d --name netbird-dashboard \
|
|
||||||
--rm -p 80:80 -p 443:443 \
|
|
||||||
-e NGINX_SSL_PORT=443 \
|
|
||||||
-e LETSENCRYPT_DOMAIN=<YOUR PUBLIC DOMAIN> \
|
|
||||||
-e LETSENCRYPT_EMAIL=<YOUR EMAIL> \
|
|
||||||
-e AUTH0_DOMAIN=<SET YOUR AUTH DOMAIN> \
|
|
||||||
-e AUTH0_CLIENT_ID=<SET YOUR CLEITN ID> \
|
|
||||||
-e AUTH0_AUDIENCE=<SET YOUR AUDIENCE> \
|
|
||||||
-e NETBIRD_MGMT_API_ENDPOINT=<SET YOUR MANAGEMETN API URL> \
|
|
||||||
netbirdio/dashboard:main
|
|
||||||
```
|
|
||||||
|
|
||||||
## How to run local development
|
## How to run local development
|
||||||
|
1. Install node 16
|
||||||
1. Install [Node](https://nodejs.org/)
|
2. create and update the src/.local-config.json file. This file should contain values to be replaced from src/config.json
|
||||||
2. Create and update the `.local-config.json` file. This file should contain values to be replaced from `config.json`
|
3. run `npm install`
|
||||||
3. Run `npm install` to install dependencies
|
4. run `npm run start dev`
|
||||||
4. Run `npm run dev` to start the development server
|
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
||||||
|
|
||||||
You can start editing by modifying the code inside `src/..`
|
|
||||||
The page auto-updates as you edit the file.
|
|
||||||
|
|
||||||
## How to migrate from old dashboard (v1)
|
|
||||||
|
|
||||||
The new dashboard comes with a new docker image `netbirdio/dashboard:main`.
|
|
||||||
To migrate from the old dashboard (v1) `wiretrustee/dashboard:main` to the new one, please follow the steps below.
|
|
||||||
|
|
||||||
1. Stop the dashboard container `docker compose down dashboard`
|
|
||||||
2. Replace the docker image name in your `docker-compose.yml` with `netbirdio/dashboard:main`
|
|
||||||
3. Recreate the dashboard container `docker compose up -d --force-recreate dashboard`
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://ui.shadcn.com/schema.json",
|
|
||||||
"style": "default",
|
|
||||||
"rsc": true,
|
|
||||||
"tsx": true,
|
|
||||||
"tailwind": {
|
|
||||||
"config": "tailwind.config.ts",
|
|
||||||
"css": "src/app/globals.css",
|
|
||||||
"baseColor": "neutral",
|
|
||||||
"cssVariables": false
|
|
||||||
},
|
|
||||||
"aliases": {
|
|
||||||
"components": "@/components",
|
|
||||||
"utils": "@/utils/helpers"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"auth0Auth": "$USE_AUTH0",
|
|
||||||
"authAuthority": "$AUTH_AUTHORITY",
|
|
||||||
"authClientId": "$AUTH_CLIENT_ID",
|
|
||||||
"authClientSecret": "$AUTH_CLIENT_SECRET",
|
|
||||||
"authScopesSupported": "$AUTH_SUPPORTED_SCOPES",
|
|
||||||
"authAudience": "$AUTH_AUDIENCE",
|
|
||||||
"apiOrigin": "$NETBIRD_MGMT_API_ENDPOINT",
|
|
||||||
"grpcApiOrigin": "$NETBIRD_MGMT_GRPC_API_ENDPOINT",
|
|
||||||
"redirectURI": "$AUTH_REDIRECT_URI",
|
|
||||||
"silentRedirectURI": "$AUTH_SILENT_REDIRECT_URI",
|
|
||||||
"tokenSource": "$NETBIRD_TOKEN_SOURCE",
|
|
||||||
"dragQueryParams": "$NETBIRD_DRAG_QUERY_PARAMS",
|
|
||||||
"hotjarTrackID": "$NETBIRD_HOTJAR_TRACK_ID",
|
|
||||||
"googleAnalyticsID": "$NETBIRD_GOOGLE_ANALYTICS_ID"
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
import { defineConfig } from "cypress";
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
e2e: {
|
|
||||||
baseUrl: "http://localhost:3000",
|
|
||||||
},
|
|
||||||
component: {
|
|
||||||
devServer: {
|
|
||||||
framework: "next",
|
|
||||||
bundler: "webpack",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
viewportWidth: 1920,
|
|
||||||
viewportHeight: 1080,
|
|
||||||
});
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
describe("Click all tabs in peer modal", () => {
|
|
||||||
it("passes", () => {
|
|
||||||
cy.visit("/install");
|
|
||||||
cy.get("div").contains("Linux").click();
|
|
||||||
cy.get("[data-cy=copy-to-clipboard]").click();
|
|
||||||
cy.get("div").contains("Windows").click();
|
|
||||||
cy.get("[data-cy=copy-to-clipboard]").click();
|
|
||||||
cy.get("div").contains("Android").click();
|
|
||||||
cy.get("[data-cy=copy-to-clipboard]").click();
|
|
||||||
cy.get("div").contains("Docker").click();
|
|
||||||
cy.get("[data-cy=copy-to-clipboard]").click();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Using fixtures to represent data",
|
|
||||||
"email": "hello@cypress.io",
|
|
||||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
/// <reference types="cypress" />
|
|
||||||
// ***********************************************
|
|
||||||
// This example commands.ts shows you how to
|
|
||||||
// create various custom commands and overwrite
|
|
||||||
// existing commands.
|
|
||||||
//
|
|
||||||
// For more comprehensive examples of custom
|
|
||||||
// commands please read more here:
|
|
||||||
// https://on.cypress.io/custom-commands
|
|
||||||
// ***********************************************
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// -- This is a parent command --
|
|
||||||
// Cypress.Commands.add('login', (email, password) => { ... })
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// -- This is a child command --
|
|
||||||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// -- This is a dual command --
|
|
||||||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// -- This will overwrite an existing command --
|
|
||||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
|
||||||
//
|
|
||||||
// declare global {
|
|
||||||
// namespace Cypress {
|
|
||||||
// interface Chainable {
|
|
||||||
// login(email: string, password: string): Chainable<void>
|
|
||||||
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
|
||||||
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
|
||||||
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
// ***********************************************************
|
|
||||||
// This example support/e2e.ts is processed and
|
|
||||||
// loaded automatically before your test files.
|
|
||||||
//
|
|
||||||
// This is a great place to put global configuration and
|
|
||||||
// behavior that modifies Cypress.
|
|
||||||
//
|
|
||||||
// You can change the location of this file or turn off
|
|
||||||
// automatically serving support files with the
|
|
||||||
// 'supportFile' configuration option.
|
|
||||||
//
|
|
||||||
// You can read more here:
|
|
||||||
// https://on.cypress.io/configuration
|
|
||||||
// ***********************************************************
|
|
||||||
|
|
||||||
// Import commands.js using ES2015 syntax:
|
|
||||||
import './commands'
|
|
||||||
|
|
||||||
// Alternatively you can use CommonJS syntax:
|
|
||||||
// require('./commands')
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "es5",
|
|
||||||
"lib": ["es5", "dom"],
|
|
||||||
"baseUrl": "http://localhost:3000",
|
|
||||||
"types": ["cypress", "node"],
|
|
||||||
},
|
|
||||||
"include": ["**/*.ts"]
|
|
||||||
}
|
|
||||||
+1
-1
@@ -21,4 +21,4 @@ RUN chmod +x /usr/local/init_react_envs.sh
|
|||||||
# configure supervisor
|
# configure supervisor
|
||||||
COPY docker/supervisord.conf /etc/supervisord.conf
|
COPY docker/supervisord.conf /etc/supervisord.conf
|
||||||
# copy build files
|
# copy build files
|
||||||
COPY out/ /usr/share/nginx/html/
|
COPY build/ /usr/share/nginx/html/
|
||||||
+5
-5
@@ -1,20 +1,20 @@
|
|||||||
# NetBird Dashboard
|
# Wiretrustee Dashboard
|
||||||
NetBird Dashboard is NetBirds Management server UI. It allows users to signin, view setup keys and manage peers. This image is **not ready** for production use.
|
Wiretrustee Dashboard is a the Wiretrustee Managemenet server UI. It allow users to signin, view setup keys and manage peers. This image is **not ready** for production use.
|
||||||
## Tags
|
## Tags
|
||||||
```latest``` ```vX.X.X``` not available yet.
|
```latest``` ```vX.X.X``` not available yet.
|
||||||
|
|
||||||
```main``` built on every PR being merged to the repository
|
```main``` builded on every PR being merged to the repository
|
||||||
## How to use this image
|
## How to use this image
|
||||||
HTTP run:
|
HTTP run:
|
||||||
```shell
|
```shell
|
||||||
docker run -d --rm -p 80:80 wiretrustee/dashboard:main
|
docker run -d --rm -p 80:80 wiretrustee/dashboard:main
|
||||||
```
|
```
|
||||||
Using SSL certificate from Let's Encrypt®:
|
Using SSL certificate from Let's Encript®:
|
||||||
```shell
|
```shell
|
||||||
docker run -d --rm -p 80:80 -p 443:443 \
|
docker run -d --rm -p 80:80 -p 443:443 \
|
||||||
-e LETSENCRYPT_DOMAIN=app.mydomain.com \
|
-e LETSENCRYPT_DOMAIN=app.mydomain.com \
|
||||||
-e LETSENCRYPT_EMAIL=hello@mydomain.com \
|
-e LETSENCRYPT_EMAIL=hello@mydomain.com \
|
||||||
netbirdio/dashboard:main
|
wiretrustee/dashboard:main
|
||||||
```
|
```
|
||||||
> For SSL generation, you need to run this image in a server with proper public IP and a domain name pointing to it.
|
> For SSL generation, you need to run this image in a server with proper public IP and a domain name pointing to it.
|
||||||
## Environment variables
|
## Environment variables
|
||||||
|
|||||||
+7
-10
@@ -1,3 +1,4 @@
|
|||||||
|
# simple server configuration to replace nginx's default
|
||||||
server {
|
server {
|
||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server;
|
listen [::]:80 default_server;
|
||||||
@@ -5,15 +6,11 @@ server {
|
|||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri.html $uri/ =404;
|
try_files $uri /index.html;
|
||||||
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
|
}
|
||||||
expires off;
|
# You may need this to prevent return 404 recursion.
|
||||||
}
|
location = /404.html {
|
||||||
|
internal;
|
||||||
|
}
|
||||||
|
|
||||||
error_page 404 /404.html;
|
|
||||||
location = /404.html {
|
|
||||||
internal;
|
|
||||||
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
|
|
||||||
expires off;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Loaded 20 of 1040 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user