# ════════════════════════════════════════════════════════════════════════
# Magic AI Docker Server v1.0
# Multi-stage build: serves Magic AI static files + API proxy
#
# Build:
#   docker build -t magic-ai-server .
#
# Run:
#   docker run -p 7432:7432 \
#     -e MAGIC_AI_KEY=mkai-your-key \
#     -e MAGIC_AI_ORIGIN=https://your-magic-ai.com \
#     magic-ai-server
#
# With Docker Compose:
#   docker-compose up -d
# ════════════════════════════════════════════════════════════════════════

FROM node:20-alpine AS base

LABEL maintainer="Magic AI <Magiccanvas7999>"
LABEL version="1.0.0"
LABEL description="Magic AI HTTP API Server"

WORKDIR /app

# ── Copy server files ─────────────────────────────────────────────────
COPY package.json ./
COPY server.js    ./

# Install dependencies (none needed for base server)
RUN npm install --omit=dev 2>/dev/null || true

# ── Copy Magic AI static files (if deploying alongside) ──────────────
# Uncomment and copy your Magic AI files here:
# COPY index.html ./public/
# COPY css/       ./public/css/
# COPY js/        ./public/js/

# ── Environment defaults ──────────────────────────────────────────────
ENV PORT=7432
ENV MAGIC_AI_ORIGIN=http://localhost:8080
ENV MAGIC_AI_KEY=""
ENV NODE_ENV=production

# ── Health check ──────────────────────────────────────────────────────
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
  CMD wget -qO- http://localhost:${PORT}/health || exit 1

# ── Expose port ───────────────────────────────────────────────────────
EXPOSE 7432

# ── Security: run as non-root ─────────────────────────────────────────
RUN addgroup -S magicai && adduser -S magicai -G magicai
USER magicai

# ── Start server ──────────────────────────────────────────────────────
CMD ["node", "server.js"]
