feat(bot): add self-hosted scheduled dispatch support

Co-authored-by: claw <stanislavkalishin+claw@gmail.com>
This commit is contained in:
2026-03-30 15:27:15 +02:00
parent 94c1f48794
commit 575a68b3bb
13 changed files with 331 additions and 40 deletions

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.7
FROM oven/bun:1.3.10 AS deps
FROM oven/bun:1.3.10-alpine AS deps
WORKDIR /app
COPY bun.lock package.json tsconfig.base.json ./
@@ -25,19 +25,23 @@ WORKDIR /app
COPY apps ./apps
COPY packages ./packages
RUN bun run --filter @household/bot build
RUN bun run --filter @household/bot build \
&& mkdir -p packages/db/dist \
&& bun build packages/db/src/migrate.ts --outdir packages/db/dist --target bun
FROM oven/bun:1.3.10 AS runtime
FROM oven/bun:1.3.10-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=8080
COPY --from=build /app/apps/bot/dist ./apps/bot/dist
COPY --from=build /app/packages/db/dist ./packages/db/dist
COPY --from=build /app/packages/db/drizzle ./packages/db/drizzle
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD bun -e "fetch('http://127.0.0.1:' + (process.env.PORT ?? '8080') + '/health').then((res) => process.exit(res.ok ? 0 : 1)).catch(() => process.exit(1))"
CMD bun -e "fetch('http://127.0.0.1:' + (process.env.PORT ?? '8080') + '/healthz').then((res) => process.exit(res.ok ? 0 : 1)).catch(() => process.exit(1))"
CMD ["bun", "apps/bot/dist/index.js"]