| FROM node:20-alpine AS build | |
| WORKDIR /app | |
| RUN apk add --no-cache python3 make g++ curl | |
| COPY package.json package-lock.json ./ | |
| COPY prisma ./prisma | |
| RUN npm ci && npx prisma generate | |
| COPY . . | |
| ENV DATABASE_URL="file:./data/nexova.db" | |
| RUN mkdir -p data && npm run build | |
| FROM node:20-alpine | |
| WORKDIR /app | |
| ENV NODE_ENV=production PORT=7860 HOSTNAME=0.0.0.0 DATABASE_URL="file:/app/data/nexova.db" | |
| RUN apk add --no-cache curl sqlite | |
| COPY --from=build /app/.next/standalone ./ | |
| COPY --from=build /app/.next/static ./.next/static | |
| COPY --from=build /app/public ./public | |
| COPY scripts ./scripts | |
| RUN chmod +x scripts/*.sh && \ | |
| addgroup -g 1001 -S app && adduser -S app -u 1001 && \ | |
| mkdir -p /app/data && chown -R app:app /app | |
| USER app | |
| EXPOSE 7860 | |
| CMD ["sh", "scripts/start.sh"] | |