forked from external-repos/noisedash
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e961568178 | ||
|
|
8595a3f155 | ||
|
|
9f376ae56f | ||
|
|
cba9cd6e85 | ||
|
|
7b080e0163 | ||
|
|
0618f9e8d6 | ||
|
|
1c3f09fcb8 | ||
|
|
98419b6248 | ||
|
|
2d2f1810d1 | ||
|
|
c9fcf06503 | ||
|
|
53c05dfe56 | ||
|
|
2dc54c7347 |
@@ -1,4 +1,4 @@
|
|||||||
FROM node:16
|
FROM node:20
|
||||||
LABEL maintainer="kaythomas@pm.me"
|
LABEL maintainer="kaythomas@pm.me"
|
||||||
WORKDIR /var/noisedash
|
WORKDIR /var/noisedash
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -23,6 +23,9 @@ Requires docker and docker-compose
|
|||||||
|
|
||||||
* Download the provided [docker-compose.yml file](https://github.com/kaythomas0/noisedash/blob/main/docker-compose.yml)
|
* Download the provided [docker-compose.yml file](https://github.com/kaythomas0/noisedash/blob/main/docker-compose.yml)
|
||||||
* In the same directory as the docker-compose file, created a folder called `config`, and inside it, put the provided [config file](https://github.com/kaythomas0/noisedash/blob/main/config/default.json)
|
* In the same directory as the docker-compose file, created a folder called `config`, and inside it, put the provided [config file](https://github.com/kaythomas0/noisedash/blob/main/config/default.json)
|
||||||
|
* `maxSampleSize` is in bytes - 10GB by default
|
||||||
|
* Keep `tls` as `false` if using an external web server like nginx
|
||||||
|
* `production.json` exists in the source code and is left empty intentionally for the reason outlined here: https://github.com/node-config/node-config/wiki/Strict-Mode#node_env-value-of-node_env-did-not-match-any-deployment-config-file-names=
|
||||||
* Edit the config file to your preference
|
* Edit the config file to your preference
|
||||||
* Bring the container up:
|
* Bring the container up:
|
||||||
|
|
||||||
@@ -34,9 +37,26 @@ docker-compose up -d
|
|||||||
|
|
||||||
(Raspberry Pi compatible images are available, see armv7 images on [Docker Hub](https://hub.docker.com/repository/docker/noisedash/noisedash))
|
(Raspberry Pi compatible images are available, see armv7 images on [Docker Hub](https://hub.docker.com/repository/docker/noisedash/noisedash))
|
||||||
|
|
||||||
|
## Kubernetes
|
||||||
|
|
||||||
|
You can apply the manifest.yaml in the kubernetes folder to install Noisedash into your Kubernetes cluster.
|
||||||
|
|
||||||
|
Optionally, uncomment the last lines in the file to also create an ingress. The ingress, commented out by default, needs to have the clusterIssuser annotation set to your cluster issuer (default: letsencrypt-prod) and the ingress class set to your Ingress class (default: Nginx)
|
||||||
|
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
$ kubectl apply -f ./kubernetes/manifest.yaml
|
||||||
|
persistentvolumeclaim/db-pvc created
|
||||||
|
persistentvolumeclaim/samples-pvc created
|
||||||
|
deployment.apps/noisedash created
|
||||||
|
service/noisedash created
|
||||||
|
configmap/noisedashcfg created
|
||||||
|
ingress.networking.k8s.io/noisedashingress created
|
||||||
|
```
|
||||||
|
|
||||||
## From Source
|
## From Source
|
||||||
|
|
||||||
Requires node 16 and npm
|
Requires node 20 and npm
|
||||||
|
|
||||||
* Clone the repo:
|
* Clone the repo:
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
"listeningPort": 1432,
|
"listeningPort": 1432,
|
||||||
"sessionFileStorePath": "sessions",
|
"sessionFileStorePath": "sessions",
|
||||||
"sampleUploadPath": "samples",
|
"sampleUploadPath": "samples",
|
||||||
"maxSampleSize": 10737418240, // In bytes, 10GB by default
|
"maxSampleSize": 10737418240,
|
||||||
"logFile": "log/noisedash.log",
|
"logFile": "log/noisedash.log",
|
||||||
"tls": false, // Keep this as false if using an external web server like nginx
|
"tls": false,
|
||||||
"tlsKey": "certs/key.pem",
|
"tlsKey": "certs/key.pem",
|
||||||
"tlsCert": "certs/cert.pem"
|
"tlsCert": "certs/cert.pem"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{} // Left empty intentionally: https://github.com/node-config/node-config/wiki/Strict-Mode#node_env-value-of-node_env-did-not-match-any-deployment-config-file-names=
|
{}
|
||||||
240
kubernetes/manifest.yaml
Normal file
240
kubernetes/manifest.yaml
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: db-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: samples-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: noisedash
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: noisedash
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: noisedash
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: noisedash
|
||||||
|
image: noisedash/noisedash:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 1432
|
||||||
|
volumeMounts:
|
||||||
|
- name: db
|
||||||
|
mountPath: /var/noisedash/db
|
||||||
|
- name: samples
|
||||||
|
mountPath: /var/noisedash/samples
|
||||||
|
- name: config
|
||||||
|
mountPath: /var/noisedash/config/default.json
|
||||||
|
subPath: config.json
|
||||||
|
volumes:
|
||||||
|
- name: db
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: db-pvc
|
||||||
|
- name: samples
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: samples-pvc
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: noisedashcfg
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: noisedash
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: noisedash
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 1432
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: noisedashcfg
|
||||||
|
data:
|
||||||
|
config.json: |
|
||||||
|
{
|
||||||
|
"Server": {
|
||||||
|
"listeningPort": 1432,
|
||||||
|
"sessionFileStorePath": "sessions",
|
||||||
|
"sampleUploadPath": "samples",
|
||||||
|
"maxSampleSize": 10737418240,
|
||||||
|
"logFile": "log/noisedash.log",
|
||||||
|
"tls": false,
|
||||||
|
"tlsKey": "certs/key.pem",
|
||||||
|
"tlsCert": "certs/cert.pem"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
kubernetes.io/ingress.class: nginx
|
||||||
|
kubernetes.io/tls-acme: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: noisedash
|
||||||
|
name: noisedashingress
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: noisedash.freshbrewed.science
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: noisedash
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- noisedash.freshbrewed.science
|
||||||
|
secretName: noisedash-tls
|
||||||
|
builder@DESKTOP-QADGF36:~/Workspaces/pyplanereport$
|
||||||
|
builder@DESKTOP-QADGF36:~/Workspaces/pyplanereport$ cat noiseall.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: db-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: samples-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: noisedash
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: noisedash
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: noisedash
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: noisedash
|
||||||
|
image: noisedash/noisedash:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 1432
|
||||||
|
volumeMounts:
|
||||||
|
- name: db
|
||||||
|
mountPath: /var/noisedash/db
|
||||||
|
- name: samples
|
||||||
|
mountPath: /var/noisedash/samples
|
||||||
|
- name: config
|
||||||
|
mountPath: /var/noisedash/config/default.json
|
||||||
|
subPath: config.json
|
||||||
|
volumes:
|
||||||
|
- name: db
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: db-pvc
|
||||||
|
- name: samples
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: samples-pvc
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: noisedashcfg
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: noisedash
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: noisedash
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 1432
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: noisedashcfg
|
||||||
|
data:
|
||||||
|
config.json: |
|
||||||
|
{
|
||||||
|
"Server": {
|
||||||
|
"listeningPort": 1432,
|
||||||
|
"sessionFileStorePath": "sessions",
|
||||||
|
"sampleUploadPath": "samples",
|
||||||
|
"maxSampleSize": 10737418240,
|
||||||
|
"logFile": "log/noisedash.log",
|
||||||
|
"tls": false,
|
||||||
|
"tlsKey": "certs/key.pem",
|
||||||
|
"tlsCert": "certs/cert.pem"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# ---
|
||||||
|
# apiVersion: networking.k8s.io/v1
|
||||||
|
# kind: Ingress
|
||||||
|
# metadata:
|
||||||
|
# annotations:
|
||||||
|
# cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
# kubernetes.io/ingress.class: nginx
|
||||||
|
# kubernetes.io/tls-acme: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
||||||
|
# labels:
|
||||||
|
# app.kubernetes.io/instance: noisedash
|
||||||
|
# name: noisedashingress
|
||||||
|
# spec:
|
||||||
|
# rules:
|
||||||
|
# - host: noisedash.freshbrewed.science
|
||||||
|
# http:
|
||||||
|
# paths:
|
||||||
|
# - backend:
|
||||||
|
# service:
|
||||||
|
# name: noisedash
|
||||||
|
# port:
|
||||||
|
# number: 80
|
||||||
|
# path: /
|
||||||
|
# pathType: ImplementationSpecific
|
||||||
|
# tls:
|
||||||
|
# - hosts:
|
||||||
|
# - noisedash.freshbrewed.science
|
||||||
|
# secretName: noisedash-tls
|
||||||
7360
package-lock.json
generated
7360
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "noisedash",
|
"name": "noisedash",
|
||||||
"version": "0.6.12",
|
"version": "0.7.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"author": "Kay Thomas <kaythomas@pm.me> (https://kaythomas.dev)",
|
"author": "Kay Thomas <kaythomas@pm.me> (https://kaythomas.dev)",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vscode/sqlite3": "^5.0.8",
|
"@vscode/sqlite3": "^5.0.8",
|
||||||
"axios": "^0.21.4",
|
"axios": "^1.6.0",
|
||||||
"config": "^3.3.6",
|
"config": "^3.3.6",
|
||||||
"connect-history-api-fallback": "^1.6.0",
|
"connect-history-api-fallback": "^1.6.0",
|
||||||
"cookie-parser": "^1.4.5",
|
"cookie-parser": "^1.4.5",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
"session-file-store": "^1.5.0",
|
"session-file-store": "^1.5.0",
|
||||||
"tone": "^14.7.77",
|
"tone": "^14.7.77",
|
||||||
"vue": "^2.6.11",
|
"vue": "^2.7.16",
|
||||||
"vue-router": "^3.5.4",
|
"vue-router": "^3.5.4",
|
||||||
"vuetify": "^2.6.10",
|
"vuetify": "^2.6.10",
|
||||||
"winston": "^3.3.3"
|
"winston": "^3.3.3"
|
||||||
@@ -44,11 +44,11 @@
|
|||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^5.1.0",
|
"eslint-plugin-promise": "^5.1.0",
|
||||||
"eslint-plugin-standard": "^4.0.0",
|
"eslint-plugin-standard": "^4.0.0",
|
||||||
"eslint-plugin-vue": "^8.0.3",
|
"eslint-plugin-vue": "^7.20.0",
|
||||||
"sass": "~1.32.0",
|
"sass": "~1.32.0",
|
||||||
"sass-loader": "^10.0.0",
|
"sass-loader": "^10.0.0",
|
||||||
"vue-cli-plugin-vuetify": "^2.5.8",
|
"vue-cli-plugin-vuetify": "^2.5.8",
|
||||||
"vue-template-compiler": "^2.6.11",
|
"vue-template-compiler": "^2.7.16",
|
||||||
"vuetify-loader": "^1.7.3"
|
"vuetify-loader": "^1.7.3"
|
||||||
},
|
},
|
||||||
"bugs": "https://github.com/kaythomas0/noisedash/issues",
|
"bugs": "https://github.com/kaythomas0/noisedash/issues",
|
||||||
|
|||||||
Reference in New Issue
Block a user