Introduce a new telemetry ingestion service (misc/data/service.go) that implements an HTTP server to accept telemetry payloads, validate and sanitize inputs, apply rate limiting, compute dedupe hashes, and forward records to PocketBase with token-based auth. Add module file (misc/data/go.mod) setting module telemetry-ingest and Go version 1.25.5. Update Dockerfile to use golang:1.25-alpine and remove baked-in environment defaults (so runtime envs are required), keeping the build stage and final CMD. These changes add the core ingestion logic, dependency module, and align the build image/version.
15 lines
343 B
Docker
15 lines
343 B
Docker
# build stage
|
|
FROM golang:1.25-alpine AS build
|
|
WORKDIR /src
|
|
COPY . .
|
|
RUN go build -trimpath -ldflags "-s -w" -o /out/telemetry-ingest ./main.go
|
|
|
|
# runtime stage
|
|
FROM alpine:3.23
|
|
RUN adduser -D -H -s /sbin/nologin app
|
|
USER app
|
|
WORKDIR /app
|
|
COPY --from=build /out/telemetry-ingest /app/telemetry-ingest
|
|
EXPOSE 8080
|
|
CMD ["/app/telemetry-ingest"]
|