signal-bot/.env.sample
Krzysztof kuhy Rudnicki c9a90eb48a feat: watch several groups, and answer only where you were asked
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-29 15:03:24 +02:00

44 lines
1.7 KiB
Plaintext

# Copy to .env and fill in. Every value here is read by signal_bot/config.py.
# The bot refuses to start if any REQUIRED value is missing or blank.
# REQUIRED. The account signal-cli is linked to, in +E.164 form.
PHONE_NUMBER=
# REQUIRED. The groups the bot listens to, comma-separated. One entry is
# fine; several let a test group and the production group share one process.
#
# A linked Signal device receives every direct message and every group on the
# account. This value is the ONLY thing scoping the bot to its conversations,
# which is why it has no default and startup fails without it.
# Find the ids with: curl -s localhost:9922/v1/groups/$PHONE_NUMBER | jq
#
# Replies, rate limits and the daily tally are all per group: a command is
# answered in the group that asked and nowhere else, so there is no separate
# send target to configure. GROUP_ID is still accepted as the one-group
# spelling; GROUP_ID_SEND has been removed and now fails startup if set.
GROUP_IDS=
# Optional. The signal-cli-rest-api container. Point this at the fake server
# to run entirely offline. Default: http://localhost:9922
API_BASE_URL=
# Optional. Tally database. Survives restarts. Default: signal_bot.sqlite3
DATABASE_PATH=
# Optional. When the daily tally is posted. Default: 21:37
REPORT_HOUR=
REPORT_MINUTE=
# Optional. Per-user, per-command cooldown in seconds. Default: 10
COOLDOWN_SECONDS=
# Optional. Image APIs. Overridden by scripts/e2e.sh to serve local fixtures.
CAT_API_URL=
DOG_API_URL=
# Optional. Where the /healthz readiness probe binds.
# Default: 127.0.0.1:8137 -- deliberately not 8000, which unrelated dev
# servers grab, and below the ephemeral range so the kernel cannot take it.
BIND_HOST=
BIND_PORT=