mirror of
https://github.com/TheFunny/TelegramTwitterMediaBot.git
synced 2026-09-23 23:32:05 +00:00
P2 of the logging plan (the README recipe landed with the code change): - `docker-compose.yml.example`: one `x-logging` anchor applied to all three services. json-file grows without limit by default, so a long-running bot and the proxy in front of it fill the disk; capped at 10m × 3 files. - The startup `config:` line now reports what the process actually resolved — the state DB path (a mistyped `DATA_DIR` or a surprising CWD was invisible until it bit), both TTLs, the caption-quote setting (`off` rather than a bare `0`) and whether a proxy is configured. The proxy URL is never printed (it may embed credentials) and admin ids — chat identifiers — stay at `debug`. Verified: `docker compose config -q` accepts the file, and a scripted fake-API run shows `caption quote off` / `link cache TTL 3600s` under overrides, `proxy=yes` with no credential in any line, and the ids at `debug` only.
87 lines
2.2 KiB
Plaintext
87 lines
2.2 KiB
Plaintext
# JSON-file logs grow without limit by default: a long-running bot (and the
|
|
# proxy in front of it) will fill the disk. One cap, applied to every service
|
|
# below via the anchor.
|
|
x-logging: &default-logging
|
|
driver: json-file
|
|
options:
|
|
max-size: '10m'
|
|
max-file: '3'
|
|
|
|
services:
|
|
nginx-proxy:
|
|
image: nginxproxy/nginx-proxy:1.11.6-alpine
|
|
restart: always
|
|
ports:
|
|
- '80:80'
|
|
- '443:443'
|
|
volumes:
|
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
|
- certs:/etc/nginx/certs:ro
|
|
- html:/usr/share/nginx/html:ro
|
|
networks: [proxy]
|
|
labels:
|
|
- 'com.github.nginx-proxy.nginx'
|
|
container_name: nginx-proxy
|
|
logging: *default-logging
|
|
|
|
acme-companion:
|
|
image: nginxproxy/acme-companion
|
|
restart: always
|
|
environment:
|
|
DEFAULT_EMAIL: ''
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- certs:/etc/nginx/certs:rw
|
|
- html:/usr/share/nginx/html:rw
|
|
- acme:/etc/acme.sh
|
|
networks: [proxy]
|
|
container_name: acme-companion
|
|
depends_on:
|
|
- nginx-proxy
|
|
logging: *default-logging
|
|
|
|
tgxmb:
|
|
image: yoursfunny/telegram-twitter-media-bot:latest
|
|
restart: always
|
|
environment:
|
|
LOCAL_USER_ID: '1000'
|
|
TELOXIDE_TOKEN: ''
|
|
BOT_ADMIN: ''
|
|
PIXIV_REFRESH_TOKEN: ''
|
|
TWITTER_AUTH_TOKEN: ''
|
|
EDIT_MESSAGE_TTL_SECONDS: '86400'
|
|
LINK_CACHE_TTL_SECONDS: '604800'
|
|
RUST_LOG: 'info'
|
|
VIRTUAL_HOST: '<YOUR_DOMAIN>'
|
|
VIRTUAL_PORT: '8443'
|
|
# ACME_HOST: 'your.domain.com'
|
|
WEBHOOK: 'true'
|
|
WEBHOOK_LISTEN: '0.0.0.0'
|
|
WEBHOOK_PORT: '8443'
|
|
WEBHOOK_URL: 'https://<YOUR_DOMAIN>/'
|
|
WEBHOOK_SECRET_TOKEN: ''
|
|
volumes:
|
|
- ./data:/app/data
|
|
networks: [proxy]
|
|
depends_on:
|
|
- nginx-proxy
|
|
container_name: tgxmb
|
|
logging: *default-logging
|
|
# Webhook mode only: the bot listens on WEBHOOK_PORT; nginx-proxy shows
|
|
# 502s while this is down, so surface it to the orchestrator.
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/127.0.0.1/8443'"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
volumes:
|
|
certs:
|
|
html:
|
|
acme:
|
|
|
|
networks:
|
|
proxy:
|
|
name: proxy
|