FROM golang:1.25 AS builder

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/ingest-gateway ./cmd/ingest-gateway && \
    CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/query-api ./cmd/query-api && \
    CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/web-ui ./cmd/web-ui && \
    CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/event-processor ./cmd/event-processor && \
    CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/openclaw-monitor ./cmd/openclaw-monitor && \
    CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/swarm-monitor ./cmd/swarm-monitor

FROM debian:bookworm-slim

RUN apt-get update && apt-get install -y \
    awscli \
    ca-certificates \
    curl \
    libvirt-clients \
    openssh-client \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /usr/local/bin/* /usr/local/bin/

ENV AGENTMON_ADDR=:8080
ENV AGENTMON_QUERY_ADDR=:8081
ENV AGENTMON_UI_ADDR=:8082
ENV DATABASE_URL=postgres://postgres:pass@postgres:5432/agentmon?sslmode=disable
ENV NATS_URL=nats://nats:4222
ENV NATS_TOPIC=agentmon.events.v1
ENV OPENCLAW_REGISTRY=/openclaw-registry/openclaw-instances.json
ENV POLL_INTERVAL=30s

CMD ["ingest-gateway"]
