github-actions[bot] commited on
Commit
5fcea3d
·
0 Parent(s):

deploy: 93a94083 — 2026-07-09 21:56 UTC

Browse files
Files changed (5) hide show
  1. Dockerfile +21 -0
  2. LAST_COMMIT_DATE.txt +1 -0
  3. README.md +11 -0
  4. SOURCE_COMMIT_SHA.txt +1 -0
  5. start.sh +51 -0
Dockerfile ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:20-alpine
2
+
3
+ WORKDIR /bootstrap
4
+
5
+ RUN apk add --no-cache bash git ca-certificates openssh-client shadow python3 make g++
6
+
7
+ ENV NODE_ENV=production
8
+ ENV NODE_OPTIONS="--max-old-space-size=8192"
9
+ ENV PORT=7860
10
+ ENV UV_THREADPOOL_SIZE=4
11
+ ENV ROOT_PASSWORD=""
12
+ ENV ADMIN_TERMINAL_SECRET=""
13
+ COPY start.sh /bootstrap/start.sh
14
+ RUN chmod +x /bootstrap/start.sh
15
+
16
+ EXPOSE 7860
17
+
18
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
19
+ CMD node -e "const http=require('http'); const req=http.get({host:'127.0.0.1',port:process.env.PORT||7860,path:'/api/health',timeout:5000},(res)=>process.exit(res.statusCode===200?0:1)); req.on('error',()=>process.exit(1)); req.on('timeout',()=>{req.destroy();process.exit(1)});"
20
+
21
+ CMD ["/bootstrap/start.sh"]
LAST_COMMIT_DATE.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ 2026-07-10T00:56:59+03:00
README.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Pulltime Backend
3
+ emoji: 🚀
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: docker
7
+ app_port: 7860
8
+ pinned: false
9
+ ---
10
+
11
+ Pulltime uptime monitoring platform — backend API server (Fastify + Node.js).
SOURCE_COMMIT_SHA.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ 93a94083c620957f259c8b6d907fe65412de3f5a
start.sh ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ -z "${GH_REPO_TOKEN:-}" ]; then
5
+ echo "GH_REPO_TOKEN secret missing. Configure it in Hugging Face Space Settings -> Variables and secrets." >&2
6
+ exit 1
7
+ fi
8
+
9
+ REPO_SLUG="${GH_REPO_SLUG:-shs3131/pulltime}"
10
+ REPO_REF="${GH_REPO_REF:-main}"
11
+ APP_SUBDIR="${GH_APP_SUBDIR:-server}"
12
+ APP_DIR="/runtime/app"
13
+
14
+ if [ -n "${ROOT_PASSWORD:-}" ]; then
15
+ if command -v chpasswd >/dev/null 2>&1; then
16
+ echo "root:${ROOT_PASSWORD}" | chpasswd
17
+ echo "ROOT_PASSWORD applied for root user."
18
+ else
19
+ echo "chpasswd not found. Install shadow package in the image." >&2
20
+ exit 1
21
+ fi
22
+ fi
23
+
24
+ mkdir -p /runtime
25
+ rm -rf "$APP_DIR"
26
+
27
+ # Clone private GitHub repository using token auth (stable for github.com HTTPS)
28
+ git clone --depth 1 --branch "$REPO_REF" "https://x-access-token:${GH_REPO_TOKEN}@github.com/${REPO_SLUG}.git" "$APP_DIR"
29
+
30
+ cd "$APP_DIR/$APP_SUBDIR"
31
+
32
+ if [ ! -f package.json ]; then
33
+ echo "package.json not found in ${APP_SUBDIR}. Check GH_APP_SUBDIR." >&2
34
+ exit 1
35
+ fi
36
+
37
+ ALLOW_LOCKFILE_BYPASS="${ALLOW_LOCKFILE_BYPASS:-true}"
38
+
39
+ if npm ci --omit=dev; then
40
+ echo "Dependencies installed with npm ci."
41
+ else
42
+ if [ "${ALLOW_LOCKFILE_BYPASS}" = "true" ]; then
43
+ echo "npm ci failed (lock mismatch). Falling back to npm install --omit=dev." >&2
44
+ npm install --omit=dev --no-audit --no-fund
45
+ else
46
+ echo "npm ci failed and lockfile bypass is disabled (ALLOW_LOCKFILE_BYPASS=false)." >&2
47
+ exit 1
48
+ fi
49
+ fi
50
+
51
+ exec npm start