underpost 2.8.85 → 2.8.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.development +7 -2
- package/.env.production +7 -2
- package/.env.test +7 -2
- package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -1
- package/.github/workflows/release.cd.yml +37 -0
- package/README.md +7 -24
- package/bin/build.js +1 -0
- package/bin/db.js +1 -3
- package/bin/deploy.js +43 -368
- package/bin/file.js +16 -3
- package/bin/util.js +1 -56
- package/cli.md +46 -21
- package/conf.js +3 -3
- package/manifests/deployment/{dd-template-development → dd-default-development}/deployment.yaml +16 -16
- package/manifests/deployment/{dd-template-development → dd-default-development}/proxy.yaml +3 -3
- package/manifests/deployment/mongo-express/deployment.yaml +12 -12
- package/manifests/grafana/deployment.yaml +57 -0
- package/manifests/grafana/kustomization.yaml +7 -0
- package/manifests/grafana/pvc.yaml +12 -0
- package/manifests/grafana/service.yaml +14 -0
- package/manifests/maas/nvim.sh +91 -0
- package/manifests/maas/ssh-cluster-info.sh +14 -0
- package/manifests/prometheus/deployment.yaml +82 -0
- package/package.json +3 -12
- package/src/api/file/file.service.js +28 -8
- package/src/api/user/user.router.js +31 -5
- package/src/api/user/user.service.js +11 -38
- package/src/cli/cluster.js +45 -25
- package/src/cli/cron.js +12 -45
- package/src/cli/db.js +149 -19
- package/src/cli/deploy.js +41 -110
- package/src/cli/fs.js +1 -0
- package/src/cli/index.js +24 -7
- package/src/cli/monitor.js +1 -4
- package/src/cli/repository.js +15 -6
- package/src/cli/run.js +94 -16
- package/src/client/Default.index.js +0 -2
- package/src/client/components/core/Account.js +6 -2
- package/src/client/components/core/Content.js +11 -7
- package/src/client/components/core/Css.js +5 -1
- package/src/client/components/core/CssCore.js +12 -0
- package/src/client/components/core/FullScreen.js +19 -28
- package/src/client/components/core/Input.js +7 -1
- package/src/client/components/core/LogIn.js +3 -0
- package/src/client/components/core/LogOut.js +1 -1
- package/src/client/components/core/Modal.js +32 -43
- package/src/client/components/core/ObjectLayerEngine.js +229 -4
- package/src/client/components/core/ObjectLayerEngineModal.js +441 -0
- package/src/client/components/core/Recover.js +5 -2
- package/src/client/components/core/Scroll.js +65 -120
- package/src/client/components/core/SignUp.js +1 -0
- package/src/client/components/core/ToggleSwitch.js +15 -1
- package/src/client/components/core/VanillaJs.js +48 -2
- package/src/client/components/default/MenuDefault.js +2 -2
- package/src/client/components/default/RoutesDefault.js +3 -3
- package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
- package/src/index.js +1 -1
- package/src/mailer/MailerProvider.js +37 -0
- package/src/server/client-build-docs.js +1 -1
- package/src/server/client-build-live.js +1 -1
- package/src/server/client-build.js +4 -12
- package/src/server/client-dev-server.js +1 -1
- package/src/server/client-icons.js +6 -78
- package/src/server/conf.js +83 -408
- package/src/server/proxy.js +2 -3
- package/src/server/runtime.js +1 -2
- package/src/server/start.js +5 -5
- package/test/api.test.js +3 -2
- package/docker-compose.yml +0 -67
- package/prometheus.yml +0 -36
package/src/server/start.js
CHANGED
|
@@ -79,11 +79,11 @@ class UnderpostStartUp {
|
|
|
79
79
|
}
|
|
80
80
|
}),
|
|
81
81
|
|
|
82
|
-
async callback(deployId = 'default', env = 'development', options = { build: false, run: false }) {
|
|
82
|
+
async callback(deployId = 'dd-default', env = 'development', options = { build: false, run: false }) {
|
|
83
83
|
if (options.build === true) await UnderpostStartUp.API.build(deployId, env);
|
|
84
84
|
if (options.run === true) await UnderpostStartUp.API.run(deployId, env);
|
|
85
85
|
},
|
|
86
|
-
async build(deployId = 'default', env = 'development') {
|
|
86
|
+
async build(deployId = 'dd-default', env = 'development') {
|
|
87
87
|
const buildBasePath = `/home/dd`;
|
|
88
88
|
const repoName = `engine-${deployId.split('-')[1]}`;
|
|
89
89
|
shellExec(`cd ${buildBasePath} && underpost clone underpostnet/${repoName}`);
|
|
@@ -100,19 +100,19 @@ class UnderpostStartUp {
|
|
|
100
100
|
}
|
|
101
101
|
shellExec(`node bin/deploy build-full-client ${deployId}`);
|
|
102
102
|
},
|
|
103
|
-
async run(deployId = 'default', env = 'development') {
|
|
103
|
+
async run(deployId = 'dd-default', env = 'development') {
|
|
104
104
|
const runCmd = env === 'production' ? 'run prod-img' : 'run dev-img';
|
|
105
105
|
if (fs.existsSync(`./engine-private/replica`)) {
|
|
106
106
|
const replicas = await fs.readdir(`./engine-private/replica`);
|
|
107
107
|
for (const replica of replicas) {
|
|
108
108
|
if (!replica.match(deployId)) continue;
|
|
109
109
|
shellExec(`node bin/deploy conf ${replica} ${env}`);
|
|
110
|
-
shellExec(`npm ${runCmd}
|
|
110
|
+
shellExec(`npm ${runCmd} ${replica}`, { async: true });
|
|
111
111
|
await awaitDeployMonitor(true);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
shellExec(`node bin/deploy conf ${deployId} ${env}`);
|
|
115
|
-
shellExec(`npm ${runCmd}
|
|
115
|
+
shellExec(`npm ${runCmd} ${deployId}`, { async: true });
|
|
116
116
|
await awaitDeployMonitor(true);
|
|
117
117
|
UnderpostRootEnv.API.set('container-status', `${deployId}-${env}-running-deployment`);
|
|
118
118
|
},
|
package/test/api.test.js
CHANGED
|
@@ -21,12 +21,13 @@ const BASE_URL =
|
|
|
21
21
|
|
|
22
22
|
describe(`GET 'Test' API Request `, async () => {
|
|
23
23
|
{
|
|
24
|
-
const
|
|
24
|
+
const youtubeId = '2aib-pmgUdQ';
|
|
25
|
+
const url = `${BASE_URL}/test/youtube-id/?url=https://www.youtube.com/watch?v=${youtubeId}`;
|
|
25
26
|
it(`youtube id from raw youtube url`, async () => {
|
|
26
27
|
logger.info('request info', { url });
|
|
27
28
|
const res = await axios.get(url);
|
|
28
29
|
logger.info('response', res.data);
|
|
29
|
-
return expect(res.data.data).equal(
|
|
30
|
+
return expect(res.data.data).equal(youtubeId);
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
{
|
package/docker-compose.yml
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# https://docs.docker.com/compose/compose-file/compose-file-v3
|
|
2
|
-
# https://docs.docker.com/engine/reference/commandline/compose/
|
|
3
|
-
version: '3'
|
|
4
|
-
services:
|
|
5
|
-
prometheus:
|
|
6
|
-
image: prom/prometheus
|
|
7
|
-
ports:
|
|
8
|
-
- 9090:9090
|
|
9
|
-
volumes:
|
|
10
|
-
- ./prometheus_data:/prometheus
|
|
11
|
-
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
12
|
-
command:
|
|
13
|
-
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
14
|
-
networks:
|
|
15
|
-
- load-balancer
|
|
16
|
-
|
|
17
|
-
grafana:
|
|
18
|
-
image: grafana/grafana
|
|
19
|
-
ports:
|
|
20
|
-
- 3000:3000
|
|
21
|
-
volumes:
|
|
22
|
-
- ./grafana_data:/var/lib/grafana
|
|
23
|
-
# - ./grafana.ini:/etc/grafana/grafana.ini
|
|
24
|
-
networks:
|
|
25
|
-
- load-balancer
|
|
26
|
-
depends_on:
|
|
27
|
-
- prometheus
|
|
28
|
-
|
|
29
|
-
underpost-engine:
|
|
30
|
-
build:
|
|
31
|
-
dockerfile: ./Dockerfile
|
|
32
|
-
context: . # workdir path
|
|
33
|
-
# image: underpost-engine
|
|
34
|
-
# container_name: <name> ignore for replicas
|
|
35
|
-
ports:
|
|
36
|
-
- '22'
|
|
37
|
-
- '80' # host port allocated dynamically, host ports are unique independent of replicas
|
|
38
|
-
- '443'
|
|
39
|
-
- '3306'
|
|
40
|
-
- '27017'
|
|
41
|
-
- '4001-4002:3001'
|
|
42
|
-
- '3002-3020'
|
|
43
|
-
volumes:
|
|
44
|
-
- ./logs:/code/logs
|
|
45
|
-
deploy:
|
|
46
|
-
mode: replicated
|
|
47
|
-
replicas: 2
|
|
48
|
-
restart_policy:
|
|
49
|
-
condition: on-failure
|
|
50
|
-
delay: 5s
|
|
51
|
-
max_attempts: 3
|
|
52
|
-
window: 120s
|
|
53
|
-
resources:
|
|
54
|
-
limits:
|
|
55
|
-
cpus: '2'
|
|
56
|
-
memory: 400M
|
|
57
|
-
reservations:
|
|
58
|
-
cpus: '0.25'
|
|
59
|
-
memory: 20M
|
|
60
|
-
labels: # labels in Compose file instead of Dockerfile
|
|
61
|
-
engine.version: '2.8.85'
|
|
62
|
-
networks:
|
|
63
|
-
- load-balancer
|
|
64
|
-
|
|
65
|
-
networks:
|
|
66
|
-
load-balancer:
|
|
67
|
-
driver: bridge
|
package/prometheus.yml
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# my global config
|
|
2
|
-
global:
|
|
3
|
-
scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
|
|
4
|
-
evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
|
|
5
|
-
# scrape_timeout is set to the global default (10s).
|
|
6
|
-
|
|
7
|
-
# Alertmanager configuration
|
|
8
|
-
alerting:
|
|
9
|
-
alertmanagers:
|
|
10
|
-
- static_configs:
|
|
11
|
-
- targets:
|
|
12
|
-
# - alertmanager:9093
|
|
13
|
-
|
|
14
|
-
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
|
15
|
-
rule_files:
|
|
16
|
-
# - "first_rules.yml"
|
|
17
|
-
# - "second_rules.yml"
|
|
18
|
-
|
|
19
|
-
# A scrape configuration containing exactly one endpoint to scrape:
|
|
20
|
-
# Here it's Prometheus itself.
|
|
21
|
-
scrape_configs:
|
|
22
|
-
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
|
|
23
|
-
- job_name: 'prometheus_service'
|
|
24
|
-
|
|
25
|
-
# metrics_path defaults to '/metrics'
|
|
26
|
-
# scheme defaults to 'http'.
|
|
27
|
-
|
|
28
|
-
static_configs:
|
|
29
|
-
- targets: ['host.docker.internal:9090']
|
|
30
|
-
|
|
31
|
-
- job_name: 'nodejs_service'
|
|
32
|
-
static_configs:
|
|
33
|
-
- targets: ['host.docker.internal:4001', 'host.docker.internal:4002']
|
|
34
|
-
# - targets: ['localhost:4001', 'localhost:4002']
|
|
35
|
-
# - targets: ["host.docker.internal:3002"] # Windows
|
|
36
|
-
# - targets: ["docker.for.mac.localhost:9090"] # macOs
|