Spaces:
Paused
Paused
| FROM ubuntu:22.04 | |
| # Install Electron runtime dependencies + xvfb for headless display | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| wget ca-certificates python3 \ | |
| xvfb \ | |
| libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6 \ | |
| libatk-bridge2.0-0 libdrm2 libxkbcommon0 libxcomposite1 \ | |
| libxdamage1 libxrandr2 libgbm1 libasound2 libxshmfence1 \ | |
| libatspi2.0-0 libsecret-1-0 libdbus-1-3 dbus-x11 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # Download and install the latest .deb release | |
| RUN wget -q -O /tmp/release.json \ | |
| "https://api.github.com/repos/xiaoY233/Chat2API/releases/latest" && \ | |
| DL_URL=$(python3 -c " | |
| import json, sys | |
| data = json.load(open('/tmp/release.json')) | |
| for a in data.get('assets', []): | |
| if a['name'].endswith('.deb') and 'amd64' in a['name']: | |
| print(a['browser_download_url']) | |
| sys.exit(0) | |
| ") && \ | |
| echo "Download: $DL_URL" && \ | |
| wget -q -O /tmp/chat2api.deb "$DL_URL" && \ | |
| dpkg -i /tmp/chat2api.deb 2>&1 || apt-get install -f -y --no-install-recommends && \ | |
| rm /tmp/chat2api.deb /tmp/release.json && \ | |
| echo "Chat2API installed: $(/opt/Chat2API/chat2api --version 2>/dev/null || echo 'electron-ready')" | |
| # Pre-configure the proxy to auto-start on boot | |
| RUN mkdir -p /data/.chat2api | |
| COPY entrypoint.sh /app/entrypoint.sh | |
| RUN chmod +x /app/entrypoint.sh | |
| ENV HOME=/data | |
| EXPOSE 7860 | |
| CMD ["/app/entrypoint.sh"] | |