diff --git a/apps/broker/Dockerfile b/apps/broker/Dockerfile index 189342b..4e4798c 100644 --- a/apps/broker/Dockerfile +++ b/apps/broker/Dockerfile @@ -37,7 +37,7 @@ COPY --from=deps --chown=bun:bun /deploy /app EXPOSE 7900 -HEALTHCHECK --interval=15s --timeout=5s --start-period=10s --retries=3 \ +HEALTHCHECK --interval=10s --timeout=5s --start-period=30s --retries=5 \ CMD bun -e "fetch('http://localhost:7900/health').then(r=>{process.exit(r.ok?0:1)}).catch(()=>process.exit(1))" # Non-root user (oven/bun image ships with 'bun' uid 1000) diff --git a/apps/broker/src/telegram-bridge.ts b/apps/broker/src/telegram-bridge.ts index 07247c4..273d686 100644 --- a/apps/broker/src/telegram-bridge.ts +++ b/apps/broker/src/telegram-bridge.ts @@ -1404,13 +1404,15 @@ export async function bootTelegramBridge( pushHandler, ); - // Start Grammy long-polling + // Start Grammy long-polling (fire-and-forget, must not crash broker) console.log("[tg-bridge] starting bot..."); bot.start({ onStart: () => console.log( `[tg-bridge] bot running — ${meshConnections.size} mesh(es), ${chatMeshes.size} chat(s)`, ), + }).catch((err: unknown) => { + console.error("[tg-bridge] bot.start() error:", err instanceof Error ? err.message : String(err)); }); }