harsh-dev commited on
Commit
c9cfeba
·
unverified ·
1 Parent(s): 3fef310
Files changed (1) hide show
  1. Dockerfile +41 -26
Dockerfile CHANGED
@@ -2,7 +2,9 @@ FROM node:22-bookworm
2
 
3
  ENV NODE_ENV=production \
4
  HOME=/root \
5
- DSH_WORKSPACE=/data/research
 
 
6
 
7
  RUN mkdir -p /data/research /app \
8
  && npm install -g @deepseek-ai/dsh@latest \
@@ -13,32 +15,27 @@ RUN mkdir -p /data/research /app \
13
  WORKDIR /app
14
 
15
  RUN cat > /app/proxy.js <<'EOF'
16
- const http = require('http');
17
- const httpProxy = require('http-proxy');
18
 
19
  const proxy = httpProxy.createProxyServer({
20
- target: 'http://127.0.0.1:7861',
21
- changeOrigin: true,
22
  ws: true,
23
- xfwd: false,
24
- secure: false
25
  });
26
 
27
- proxy.on('proxyReq', (proxyReq) => {
28
- proxyReq.setHeader('Host', '127.0.0.1:7861');
29
- proxyReq.setHeader('Origin', 'http://127.0.0.1:7861');
30
- proxyReq.removeHeader('Referer');
31
- });
32
-
33
- proxy.on('error', (err, req, res) => {
34
- console.error('Proxy error:', err.message);
35
 
36
  if (res && !res.headersSent) {
37
- res.writeHead(502, { 'Content-Type': 'text/plain' });
 
 
38
  }
39
 
40
  if (res && !res.writableEnded) {
41
- res.end('DSH backend unavailable');
42
  }
43
  });
44
 
@@ -46,31 +43,49 @@ const server = http.createServer((req, res) => {
46
  proxy.web(req, res);
47
  });
48
 
49
- server.on('upgrade', (req, socket, head) => {
50
  proxy.ws(req, socket, head);
51
  });
52
 
53
- server.listen(7860, '0.0.0.0', () => {
54
- console.log('Public proxy listening on 0.0.0.0:7860');
55
  });
56
  EOF
57
 
58
  RUN cat > /app/start.sh <<'EOF'
59
  #!/bin/sh
60
- set -e
61
 
62
  mkdir -p /data/research
63
 
 
 
 
 
 
 
64
  echo "Starting DeepSeek Harness..."
65
- dsh web --no-open --port 7861 &
 
 
 
 
 
66
 
67
  DSH_PID=$!
68
 
69
  echo "Waiting for DSH..."
70
  for i in $(seq 1 60); do
71
  if curl -fsS "http://127.0.0.1:7861/" >/dev/null 2>&1; then
 
72
  break
73
  fi
 
 
 
 
 
 
74
  sleep 1
75
  done
76
 
@@ -79,9 +94,9 @@ node /app/proxy.js &
79
 
80
  PROXY_PID=$!
81
 
82
- trap 'kill $DSH_PID $PROXY_PID 2>/dev/null || true' TERM INT EXIT
83
 
84
- wait $DSH_PID
85
  EOF
86
 
87
  RUN chmod +x /app/start.sh \
@@ -89,8 +104,8 @@ RUN chmod +x /app/start.sh \
89
  && apt-get install -y --no-install-recommends curl \
90
  && rm -rf /var/lib/apt/lists/*
91
 
92
- EXPOSE 7860
93
-
94
  WORKDIR /data/research
95
 
 
 
96
  CMD ["/app/start.sh"]
 
2
 
3
  ENV NODE_ENV=production \
4
  HOME=/root \
5
+ DSH_WORKSPACE=/data/research \
6
+ DSH_PORT=7861 \
7
+ HF_PORT=7860
8
 
9
  RUN mkdir -p /data/research /app \
10
  && npm install -g @deepseek-ai/dsh@latest \
 
15
  WORKDIR /app
16
 
17
  RUN cat > /app/proxy.js <<'EOF'
18
+ const http = require("http");
19
+ const httpProxy = require("http-proxy");
20
 
21
  const proxy = httpProxy.createProxyServer({
22
+ target: "http://127.0.0.1:7861",
23
+ changeOrigin: false,
24
  ws: true,
25
+ xfwd: false
 
26
  });
27
 
28
+ proxy.on("error", (err, req, res) => {
29
+ console.error("Proxy error:", err.message);
 
 
 
 
 
 
30
 
31
  if (res && !res.headersSent) {
32
+ res.writeHead(502, {
33
+ "Content-Type": "text/plain"
34
+ });
35
  }
36
 
37
  if (res && !res.writableEnded) {
38
+ res.end("DSH backend unavailable");
39
  }
40
  });
41
 
 
43
  proxy.web(req, res);
44
  });
45
 
46
+ server.on("upgrade", (req, socket, head) => {
47
  proxy.ws(req, socket, head);
48
  });
49
 
50
+ server.listen(7860, "0.0.0.0", () => {
51
+ console.log("Proxy listening on 0.0.0.0:7860");
52
  });
53
  EOF
54
 
55
  RUN cat > /app/start.sh <<'EOF'
56
  #!/bin/sh
57
+ set -eu
58
 
59
  mkdir -p /data/research
60
 
61
+ TRUSTED_HOST_ARGS=""
62
+
63
+ if [ -n "${SPACE_HOST:-}" ]; then
64
+ TRUSTED_HOST_ARGS="--trusted-host ${SPACE_HOST}"
65
+ fi
66
+
67
  echo "Starting DeepSeek Harness..."
68
+ echo "Trusted host: ${SPACE_HOST:-not-set}"
69
+
70
+ dsh web \
71
+ --no-open \
72
+ --port 7861 \
73
+ $TRUSTED_HOST_ARGS &
74
 
75
  DSH_PID=$!
76
 
77
  echo "Waiting for DSH..."
78
  for i in $(seq 1 60); do
79
  if curl -fsS "http://127.0.0.1:7861/" >/dev/null 2>&1; then
80
+ echo "DSH is ready."
81
  break
82
  fi
83
+
84
+ if ! kill -0 "$DSH_PID" 2>/dev/null; then
85
+ echo "DSH exited unexpectedly."
86
+ exit 1
87
+ fi
88
+
89
  sleep 1
90
  done
91
 
 
94
 
95
  PROXY_PID=$!
96
 
97
+ trap 'kill "$DSH_PID" "$PROXY_PID" 2>/dev/null || true' TERM INT EXIT
98
 
99
+ wait "$DSH_PID"
100
  EOF
101
 
102
  RUN chmod +x /app/start.sh \
 
104
  && apt-get install -y --no-install-recommends curl \
105
  && rm -rf /var/lib/apt/lists/*
106
 
 
 
107
  WORKDIR /data/research
108
 
109
+ EXPOSE 7860
110
+
111
  CMD ["/app/start.sh"]