Spaces:
Running
Running
| # ============================================================ | |
| # 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"] |