Nik Afiq 39b7d6d4b4
All checks were successful
CI / changes (push) Successful in 19s
CI / test (push) Successful in 31s
CI / build-ai-gateway (push) Successful in 1m8s
CI / build-ha-gateway (push) Successful in 1m19s
CI / build-discord-bot (push) Successful in 59s
CI / build-alexa-bridge (push) Successful in 1m8s
CI / build-alert-bridge (push) Successful in 1m17s
CI / build-tts-gateway (push) Successful in 1m10s
CI / build-tts-sidecar (push) Has been skipped
CI / build-tts-model (push) Has been skipped
feat: add alert-bridge service for external cronjob -> Discord alerts
New standalone service that receives authenticated HTTP POSTs (e.g. from a
cronjob elsewhere on the home network) and posts them to a Discord channel
via an Incoming Webhook. Fire-and-forget, no dependency on discord-bot's bot
session at all - mirrors alexa-bridge's precedent of a small bridge service
with its own HTTP listener and auth rather than adding an inbound edge to an
existing internal service.

Wires alert-bridge into go.work, CI (changes filter, test job, new
build-alert-bridge job), and the other five Dockerfiles' COPY lines.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-01 22:45:18 +09:00

38 lines
1.2 KiB
Docker

FROM golang:1.26-alpine AS builder
WORKDIR /workspace
COPY go.work go.work.sum ./
# Manifests only, copied first, so `go mod download` gets its own cache layer
# invalidated only by dependency changes - not by every source edit below.
COPY gen/go.mod gen/go.sum ./gen/
COPY ai-gateway/go.mod ai-gateway/go.sum ./ai-gateway/
COPY discord-bot/go.mod discord-bot/go.sum ./discord-bot/
COPY tts-gateway/go.mod tts-gateway/go.sum ./tts-gateway/
COPY alexa-bridge/go.mod alexa-bridge/go.sum ./alexa-bridge/
COPY alert-bridge/go.mod alert-bridge/go.sum ./alert-bridge/
COPY ha-gateway/go.mod ha-gateway/go.sum ./ha-gateway/
WORKDIR /workspace/ha-gateway
RUN go mod download
WORKDIR /workspace
COPY gen/ ./gen/
COPY ai-gateway/ ./ai-gateway/
COPY discord-bot/ ./discord-bot/
COPY tts-gateway/ ./tts-gateway/
COPY alexa-bridge/ ./alexa-bridge/
COPY alert-bridge/ ./alert-bridge/
COPY ha-gateway/ ./ha-gateway/
WORKDIR /workspace/ha-gateway
ARG VERSION=dev
RUN CGO_ENABLED=0 GOOS=linux go build \
-ldflags="-s -w -X main.version=${VERSION}" \
-o /ha-gateway ./cmd/gateway
FROM gcr.io/distroless/static:nonroot
COPY --from=builder /ha-gateway /ha-gateway
EXPOSE 50051
ENTRYPOINT ["/ha-gateway"]