proxy / Dockerfile
Elysiadev11's picture
Create Dockerfile
d01a676 verified
# ============================================================
# 9Router - Hugging Face Spaces Dockerfile
# Port: 7860 (wajib untuk HF Spaces)
# ============================================================
FROM node:20-slim
# Install git dan dependencies sistem
RUN apt-get update && apt-get install -y \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Set working directory
WORKDIR /app
# Clone repo 9router
RUN git clone https://github.com/decolua/9router.git .
# Install dependencies npm
RUN npm install
# Build Next.js app
RUN npm run build
# Buat direktori untuk data storage
RUN mkdir -p /data /root/.9router
# ============================================================
# Environment Variables
# Set defaults yang aman - override via HF Spaces Secrets
# ============================================================
ENV PORT=7860
ENV HOSTNAME=0.0.0.0
ENV NODE_ENV=production
ENV DATA_DIR=/data
# BASE_URL akan di-set otomatis saat runtime jika ada SPACE_HOST
# Secrets ini HARUS di-set di HF Spaces Settings:
# INITIAL_PASSWORD - password login dashboard
# JWT_SECRET - secret untuk JWT token
# API_KEY_SECRET - secret untuk API keys
# MACHINE_ID_SALT - salt untuk machine ID
# Fallback defaults (GANTI via Secrets di HF Spaces!)
ENV INITIAL_PASSWORD=changeme123
ENV JWT_SECRET=please-change-this-jwt-secret-in-hf-spaces-settings
ENV API_KEY_SECRET=please-change-this-api-key-secret
ENV MACHINE_ID_SALT=please-change-this-salt
ENV REQUIRE_API_KEY=false
ENV AUTH_COOKIE_SECURE=true
ENV ENABLE_REQUEST_LOGS=false
# Expose port HF Spaces
EXPOSE 7860
# Script startup: set BASE_URL dari SPACE_HOST jika tersedia
COPY start-hf.sh /app/start-hf.sh
RUN chmod +x /app/start-hf.sh
CMD ["/app/start-hf.sh"]