# ── RaíTV Proxy — Hugging Face Spaces Docker Image ────────────────────────── # HF Spaces exige: porta 7860 + usuário não-root FROM node:20-slim # Metadados LABEL maintainer="RaíTV Proxy" LABEL version="2.0.0" # Diretório de trabalho WORKDIR /app # Copia apenas os arquivos de dependências primeiro (otimiza cache de build) COPY package.json package-lock.json* ./ # Instala dependências de produção RUN npm ci --omit=dev # Copia o restante do código COPY . . # Hugging Face Spaces EXIGE a porta 7860 ENV PORT=7860 ENV NODE_ENV=production # Expõe a porta EXPOSE 7860 # Usuário não-root (boa prática + requerido pelo HF) RUN addgroup --system appgroup && adduser --system --ingroup appgroup appuser USER appuser # Healthcheck HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD node -e "require('http').get('http://localhost:7860/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))" # Inicia o servidor CMD ["node", "server.js"]