File size: 1,826 Bytes
e110d9d
 
42a7d7b
 
e110d9d
 
 
fe4dc91
c45f3dd
e110d9d
4364654
e110d9d
 
 
 
 
 
82a08ca
e110d9d
 
c2b0f3c
4364654
e110d9d
 
 
42a7d7b
e110d9d
 
 
 
 
928c07f
b47e0f4
c45f3dd
6e18e02
b47e0f4
e110d9d
5636339
c2b0f3c
 
 
e110d9d
 
5636339
e110d9d
 
 
1cac4e8
e110d9d
b56c910
1cac4e8
320e776
e110d9d
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
FROM node:22-slim

ARG N8N_VERSION=latest

ENV DEBIAN_FRONTEND=noninteractive \
    N8N_PORT=5678 \
    HF_HUB_DISABLE_PROGRESS_BARS=1 \
    PYTHONUNBUFFERED=1 \
    PIP_ROOT_USER_ACTION=ignore

RUN apt-get update && apt-get install -y -q --no-install-recommends \
    ca-certificates \
    curl \
    git \
    jq \
    python3 \
    python3-pip \
    python3-venv \
    sqlite3 \
    tini \
    && pip3 install -q --no-cache-dir --break-system-packages huggingface_hub httpx \
    && npm install -g --loglevel=error n8n@${N8N_VERSION} \
    && rm -rf /var/lib/apt/lists/*

RUN mkdir -p /home/node/app /home/node/.n8n && \
    chmod 700 /home/node/.n8n && \
    chown -R node:node /home/node

WORKDIR /home/node/app

COPY --chown=node:node health-server.js /home/node/app/health-server.js
COPY --chown=node:node cloudflare-proxy.js /opt/cloudflare-proxy.js
COPY --chown=node:node cloudflare-proxy-setup.py /home/node/app/cloudflare-proxy-setup.py

# Set NODE_OPTIONS after preload scripts are copied
ENV NODE_OPTIONS="--require /opt/cloudflare-proxy.js"
COPY --chown=node:node n8n-sync.py /home/node/app/n8n-sync.py
COPY --chown=node:node cloudflare-keepalive-setup.py /home/node/app/cloudflare-keepalive-setup.py
COPY --chown=node:node gemini_web2api.py /home/node/app/gemini_web2api.py
COPY --chown=node:node keep_alive_server.py /home/node/app/keep_alive_server.py
COPY --chown=node:node dashboard.html /home/node/app/dashboard.html
COPY --chown=node:node start.sh /home/node/app/start.sh

RUN chmod +x /home/node/app/start.sh /home/node/app/cloudflare-keepalive-setup.py /home/node/app/cloudflare-proxy-setup.py

USER node

EXPOSE 7860

HEALTHCHECK --interval=30s --timeout=5s --start-period=90s \
  CMD curl -fsS http://localhost:7860/health || exit 1

ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["/home/node/app/start.sh"]