FROM node:20-alpine

WORKDIR /app

# Install dependencies first (layer cache)
COPY package.json ./
RUN npm install --omit=dev

# Copy source
COPY src/ ./src/

# Data directory for persistent files (mounted as a volume)
RUN mkdir -p /data

EXPOSE 3001

ENV NODE_ENV=production \
    PORT=3001 \
    DB_PATH=/data/dns-cache.json \
    SETTINGS_PATH=/data/settings.json \
    USERS_PATH=/data/users.json \
    AUDIT_PATH=/data/audit-log.json \
    SECRETS_PATH=/data/secrets.json \
    IPAM_PATH=/data/ipam.json

CMD ["node", "src/index.js"]
