Spaces:
Runtime error
Runtime error
| # Gunakan image dasar Golang versi 1.24.1 | |
| FROM golang:1.24.1 | |
| # Tambahkan user non-root untuk keamanan (optional tapi best practice) | |
| RUN useradd -m -u 1001 appuser | |
| # Set working directory | |
| WORKDIR /app | |
| # Copy go.mod dan go.sum | |
| COPY go.mod go.sum ./ | |
| # Download dependencies | |
| RUN go mod download | |
| # Copy seluruh kode | |
| COPY . . | |
| # Buat file .env dengan variabel environment menggunakan Hugging Face secrets | |
| RUN --mount=type=secret,id=DB_PASSWORD,mode=0444,required=false \ | |
| --mount=type=secret,id=OPENAI_API_KEY,mode=0444,required=false \ | |
| --mount=type=secret,id=REPLICATE_API_TOKEN,mode=0444,required=false \ | |
| echo "DB_HOST=aws-0-ap-southeast-1.pooler.supabase.com" >> .env && \ | |
| echo "DB_USER=postgres.iuwuiuoisqnfdzlgwurl" >> .env && \ | |
| echo "DB_PASSWORD=$(cat /run/secrets/DB_PASSWORD 2>/dev/null)" >> .env && \ | |
| echo "DB_PORT=5432" >> .env && \ | |
| echo "DB_NAME=postgres" >> .env && \ | |
| echo "SALT=NZNZtY7dNPz8l0dWINJZLKafWaJrql1s" >> .env && \ | |
| echo "HOST_ADDRESS=0.0.0.0" >> .env && \ | |
| echo "HOST_PORT=7860" >> .env && \ | |
| echo "LOG_PATH=logs" >> .env && \ | |
| echo "EMAIL_VERIFICATION_DURATION=2" >> .env && \ | |
| echo "OPEN_AI_API_KEY=$(cat /run/secrets/OPENAI_API_KEY 2>/dev/null)" >> .env && \ | |
| echo "REPLICATE_API_TOKEN=$(cat /run/secrets/REPLICATE_API_TOKEN 2>/dev/null)" >> .env && \ | |
| echo "TURNSTILE_SECRET_KEY =$(cat /run/secrets/TURNSTILE_SECRET_KEY>/dev/null)" >> .env | |
| # Buat direktori audio dan logs, beri izin dan kepemilikan ke appuser | |
| RUN mkdir -p /app/images /app/logs /app/audio && \ | |
| chmod -R 777 /app/images /app/logs /app/audio && \ | |
| chown -R appuser:appuser /app/images /app/logs /app/audio | |
| # Build aplikasi | |
| RUN go build -o main . | |
| # Beralih ke user non-root | |
| USER appuser | |
| # Expose port untuk Hugging Face Spaces | |
| EXPOSE 7860 | |
| # Jalankan aplikasi | |
| CMD ["./main"] | |