021f16cf14
Introduce `tg_watchdog_heartbeat_every` to emit periodic INFO heartbeats. Add cumulative diagnostics counters and richer logging for watchdog probes, restart reasons, and disconnect‑flap triggers. Update defaults and tests accordingly.
55 lines
2.4 KiB
YAML
55 lines
2.4 KiB
YAML
volumes:
|
|
pyrogram_bridge:
|
|
|
|
services:
|
|
pyrogram_bridge:
|
|
image: ghcr.io/vvzvlad/pyrogram-bridge:latest
|
|
container_name: pyrogram-bridge
|
|
environment:
|
|
TG_API_ID: XXX
|
|
TG_API_HASH: XXX
|
|
# TG_PROXY_HOST: 10.0.0.1 # MTProto proxy host (SOCKS5). Prefer a literal IP over a hostname:
|
|
# # a hostname is re-resolved on every reconnect, so flaky DNS during a
|
|
# # network blip can wedge Pyrogram's reconnect.
|
|
# TG_PROXY_PORT: 1080 # MTProto proxy SOCKS5 port (default: 1080)
|
|
# TG_PROXY_USERNAME: XXX # SOCKS5 username (optional)
|
|
# TG_PROXY_PASSWORD: XXX # SOCKS5 password (optional)
|
|
# TG_WATCHDOG_ENABLED: "True" # Active liveness watchdog: detects 'zombie' sessions and restarts in-process (default: True)
|
|
# TG_WATCHDOG_INTERVAL: 60 # Seconds between liveness probes (default: 60)
|
|
# TG_WATCHDOG_TIMEOUT: 10 # Seconds to wait for each get_me probe (default: 10)
|
|
# TG_WATCHDOG_FAILURES: 3 # Consecutive failed probes before restart (default: 3)
|
|
# TG_WATCHDOG_HEARTBEAT_EVERY: 30 # Emit an INFO watchdog heartbeat every N successful probes (default: 30)
|
|
# TG_DISCONNECT_FLAP_LIMIT: 3 # Disconnect events within the flap window before an in-process restart (default: 3)
|
|
# TG_DISCONNECT_FLAP_WINDOW: 120 # Flap detection window in seconds (default: 120)
|
|
PYROGRAM_BRIDGE_URL: https://pgbridge.example.com
|
|
API_PORT: 80
|
|
TOKEN: ХХХ
|
|
TIME_BASED_MERGE: True
|
|
SHOW_BRIDGE_LINK: True
|
|
SHOW_POST_FLAGS: True
|
|
TZ: Europe/Moscow
|
|
restart: always
|
|
volumes:
|
|
- pyrogram_bridge:/app/data
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: 5
|
|
max-size: 10m
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.pgbridge.rule: Host(`pgbridge.example.com`)
|
|
traefik.http.services.pgbridge.loadBalancer.server.port: 80
|
|
traefik.http.routers.pgbridge.entrypoints: websecure
|
|
traefik.http.routers.pgbridge.tls: true
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
autoheal: true
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-s", "-f", "-o", "/dev/null", "http://127.0.0.1:80/rss/vvzvlad_lytdybr?limit=1"]
|
|
interval: 30m
|
|
timeout: 5s
|
|
retries: 2
|
|
start_period: 30s
|
|
start_interval: 5s
|
|
|