manu-sapiens commited on
Commit
18e92b1
·
1 Parent(s): b59d98b

tweaking nginx

Browse files
Files changed (5) hide show
  1. Dockerfile +21 -10
  2. README.md +1 -1
  3. myNodeServer.js +2 -99
  4. nginx.conf +4 -4
  5. run.sh +14 -5
Dockerfile CHANGED
@@ -6,25 +6,36 @@ RUN mkdir -p /var/cache/nginx \
6
  /var/log/nginx \
7
  /var/lib/nginx
8
  RUN touch /var/run/nginx.pid
9
- RUN chown -R pn:pn /var/cache/nginx \
10
  /var/log/nginx \
11
  /var/lib/nginx \
12
  /var/run/nginx.pid
13
 
14
-
15
- RUN curl -L https://github.com/omnitool-ai/omnitool/raw/main/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1 -o _tempfile.bin
16
- RUN mkdir -p /app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/
17
- RUN chmod 777 /app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/
18
- RUN mv _tempfile.bin /app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1 && chown -R root /app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1
19
- RUN chmod 777 /app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  # FROM node:20.6.1
22
- WORKDIR /app
23
- COPY --chown=root . /app
24
 
25
  RUN yarn install
26
 
27
- EXPOSE 4444
28
 
29
  CMD ["bash", "run.sh"]
30
 
 
6
  /var/log/nginx \
7
  /var/lib/nginx
8
  RUN touch /var/run/nginx.pid
9
+ RUN chown -R root:root /var/cache/nginx \
10
  /var/log/nginx \
11
  /var/lib/nginx \
12
  /var/run/nginx.pid
13
 
14
+
15
+ ENV HOME=/home/root \
16
+ PATH=/home/root/.local/bin:$PATH
17
+ WORKDIR $HOME/app
18
+
19
+ RUN mkdir -p $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/
20
+ RUN chmod 777 $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/
21
+ RUN curl -L https://github.com/omnitool-ai/omnitool/raw/main/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1 -o $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1
22
+ RUN chmod 777 $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1
23
+ #RUN mv _tempfile.bin $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1 && chown -R root $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1
24
+ RUN mkdir $HOME/app/node_modules
25
+ RUN chmod 777 $HOME/app/node_modules
26
+
27
+ # Install dependencies and build app as non-root
28
+ #USER root
29
+
30
+ #COPY --chown=root _tempfile.bin $HOME/app/packages/omni-server/config.default/models/nsfwjs/mobilenet-v2-quant/group1-shard1of1
31
 
32
  # FROM node:20.6.1
33
+
34
+ COPY --chown=root . $HOME/app
35
 
36
  RUN yarn install
37
 
38
+ EXPOSE 1687
39
 
40
  CMD ["bash", "run.sh"]
41
 
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: 🐳
4
  colorFrom: yellow
5
  colorTo: gray
6
  sdk: docker
7
- app_port: 4444
8
  ---
9
  # Omnitool.ai - Your Open Source AI Desktop
10
 
 
4
  colorFrom: yellow
5
  colorTo: gray
6
  sdk: docker
7
+ app_port: 1687
8
  ---
9
  # Omnitool.ai - Your Open Source AI Desktop
10
 
myNodeServer.js CHANGED
@@ -1,87 +1,12 @@
1
  const fastify = require('fastify')({ logger: true });
2
- const { spawn } = require('child_process');
3
-
4
- let OMNITOOL_READY = false;
5
- let ALREADY_STARTING = false;
6
  let MANAGEMENT_SERVER_PORT = 7860;
7
  let SERVER_HOST = '0.0.0.0';
8
- console.log(`************ Management Server ************`);
9
- let omnitoolLogs = [];
10
-
11
- async function startOmnitoolServer() {
12
- if (ALREADY_STARTING) return;
13
- ALREADY_STARTING = true;
14
-
15
- console.log('Starting Omnitool Server...');
16
- return new Promise((resolve, reject) => {
17
- const omnitoolStartProcess = spawn('./omnitool_start.sh');
18
-
19
- omnitoolStartProcess.stdout.on('data', (data) => {
20
- omnitoolLogs.push(data.toString());
21
- console.log(`omnitool stdout: ${data}`);
22
- if (data.toString().includes(`Server has started and is ready to accept connections`)) {
23
- OMNITOOL_READY = true;
24
- console.log('Omnitool server started successfully');
25
- resolve();
26
- }
27
- });
28
-
29
- omnitoolStartProcess.stderr.on('data', (data) => {
30
- console.error(`omnitool stderr: ${data}`);
31
- });
32
-
33
- omnitoolStartProcess.on('close', (code) => {
34
- console.log(`Omnitool server process exited with code ${code}`);
35
- if (!OMNITOOL_READY) {
36
- ALREADY_STARTING = false;
37
- reject(`Omnitool server did not start within the timeout period.`);
38
- }
39
- });
40
- });
41
- }
42
 
43
  fastify.get('/', async (request, reply) => {
44
  const localUrl = request.headers['host'];
45
 
46
- if (!OMNITOOL_READY) {
47
- let htmlContent = `
48
- <html>
49
- <head><title>Proxy Server</title></head>
50
- <body>
51
- <button id="startServerButton" onclick="startServer()">Start Omnitool Server</button>
52
- <button onclick="window.location.href='http://${localUrl}'">${localUrl}</button>
53
- <div id="logs" style="white-space: pre-wrap;"></div>
54
- <script>
55
- function startServer() {
56
- document.getElementById('startServerButton').disabled = true;
57
- fetch('/start-omnitool-server')
58
- .then(response => response.json())
59
- .then(data => {
60
- startLogPolling();
61
- });
62
- }
63
-
64
- function startLogPolling() {
65
- const interval = setInterval(() => {
66
- fetch('/omnitool-logs')
67
- .then(response => response.json())
68
- .then(data => {
69
- document.getElementById('logs').innerText = data.logs.join("\\n");
70
- if (data.ready) {
71
- clearInterval(interval);
72
- window.location.reload(); // Refresh the page when Omnitool is ready
73
- }
74
- });
75
- }, 1000);
76
- }
77
-
78
- startLogPolling();
79
- </script>
80
- </body>
81
- </html>
82
- `;
83
- reply.type('text/html').send(htmlContent);
84
- } else {
85
  let htmlContent = `
86
  <html>
87
  <head><title>Proxy Server</title></head>
@@ -97,28 +22,6 @@ fastify.get('/', async (request, reply) => {
97
  </html>
98
  `;
99
  reply.type('text/html').send(htmlContent);
100
- }
101
- });
102
-
103
- fastify.get('/omnitool-logs', async (request, reply) => {
104
- reply.send({ logs: omnitoolLogs, ready: OMNITOOL_READY });
105
- });
106
-
107
- fastify.get('/start-omnitool-server', async (request, reply) => {
108
- if (!OMNITOOL_READY) {
109
- if (ALREADY_STARTING) {
110
- return { message: "Omnitool server already starting" };
111
- }
112
- try {
113
- await startOmnitoolServer();
114
- reply.send({ message: "Omnitool server started successfully" });
115
- } catch (error) {
116
- console.error(error);
117
- reply.send({ message: `Error starting Omnitool server: ${error}` });
118
- }
119
- } else {
120
- reply.send({ message: "Omnitool server already running" });
121
- }
122
  });
123
 
124
  const start = async () => {
 
1
  const fastify = require('fastify')({ logger: true });
 
 
 
 
2
  let MANAGEMENT_SERVER_PORT = 7860;
3
  let SERVER_HOST = '0.0.0.0';
4
+ console.log(`************ Management Server v 0.002 ************`);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  fastify.get('/', async (request, reply) => {
7
  const localUrl = request.headers['host'];
8
 
9
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  let htmlContent = `
11
  <html>
12
  <head><title>Proxy Server</title></head>
 
22
  </html>
23
  `;
24
  reply.type('text/html').send(htmlContent);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  });
26
 
27
  const start = async () => {
nginx.conf CHANGED
@@ -1,12 +1,12 @@
1
  server {
2
- listen 4444 default_server;
3
- listen [::]:4444 default_server;
4
 
5
  server_name _;
6
 
7
  location / {
8
- # Serve myNodeServer 7860
9
- proxy_pass http://localhost:7860;
10
  proxy_http_version 1.1;
11
  proxy_set_header Upgrade $http_upgrade;
12
  proxy_set_header Connection 'upgrade';
 
1
  server {
2
+ listen 1687 default_server;
3
+ listen [::]:1687 default_server;
4
 
5
  server_name _;
6
 
7
  location / {
8
+ # Serve myNodeServer 1689
9
+ proxy_pass http://localhost:1689;
10
  proxy_http_version 1.1;
11
  proxy_set_header Upgrade $http_upgrade;
12
  proxy_set_header Connection 'upgrade';
run.sh CHANGED
@@ -1,18 +1,27 @@
1
  #!/bin/bash
2
 
3
  # Start Nginx
 
4
  service nginx start
5
 
6
  # Start the Node.js server in the background
7
- node myNodeServer.js --port 7860 --host 0.0.0.0 & echo $! > node_server.pid
 
8
 
9
  # Start the main application with yarn in the background
10
- # yarn
11
- # yarn start -u -rb -R blocks & echo $! > yarn_service.pid
 
 
 
12
 
13
  # The script waits here for the yarn start process to terminate
14
- wait $(cat node_server.pid)
 
15
 
16
  # Cleanup: terminate and clean up background services
 
17
  pkill -F node_server.pid
18
- rm node_server.pid
 
 
 
1
  #!/bin/bash
2
 
3
  # Start Nginx
4
+ echo "Starting Nginx..."
5
  service nginx start
6
 
7
  # Start the Node.js server in the background
8
+ echo "Starting Node.js server..."
9
+ node myNodeServer.js --port 1689 --host 0.0.0.0 & echo $! > node_server.pid
10
 
11
  # Start the main application with yarn in the background
12
+ echo "Starting Yarn..."
13
+ yarn
14
+
15
+ echo "Starting Yarn service..."
16
+ yarn start -u -rb -R blocks & echo $! > yarn_service.pid
17
 
18
  # The script waits here for the yarn start process to terminate
19
+ echo "Waiting for Yarn to terminate..."
20
+ wait $(cat yarn_service.pid)
21
 
22
  # Cleanup: terminate and clean up background services
23
+ echo "Cleaning up..."
24
  pkill -F node_server.pid
25
+
26
+ echo "killing .pid files..."
27
+ rm node_server.pid yarn_service.pid