79b127d406
Introduce an active watchdog that probes the Telegram client to detect zombie sessions and restart them in‑process. Add configurable disconnect flap detection with a sliding window to trigger restarts after repeated disconnects. New environment variables and config entries are added, and the Kurigram dependency is now version‑pinned.
54 lines
2.2 KiB
YAML
54 lines
2.2 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_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
|
|
|