config from docker envs

This commit is contained in:
2026-02-24 21:45:13 +00:00
parent a0977c40de
commit 36a4583d63
3 changed files with 34 additions and 5 deletions

View File

@@ -8,6 +8,6 @@ __all__ = (
)
BOT_NAME = 'CraftSleuthBot'
BOT_NAME = 'DeletedPostsBot'
BASE_DIR = Path(__file__).parent.parent.parent
MSG_AWAIT_THRESHOLD = 5

View File

@@ -12,9 +12,10 @@ Example usage::
from config import config
print(config['client_id'])
"""
import os
config = {
"client_id": "",
"client_secret": "",
@@ -28,6 +29,26 @@ config = {
"sleep_minutes": 5,
}
# allow container/WC users to override values via environment variables
# variables are expected to be UPPERCASE versions of the keys (or prefixed
# with DP_). Numeric values will be converted to ints automatically.
for key in list(config):
# check both bare and prefixed variants
env_names = [key.upper(), f"DP_{key.upper()}"]
for env in env_names:
val = os.getenv(env)
if val is not None:
# cast numeric entries back to int when appropriate
if isinstance(config[key], int):
try:
config[key] = int(val)
except ValueError:
pass # leave original if conversion fails
else:
config[key] = val
break
# same data as a text template. both ``main.py`` and ``utils.actions`` import
# this so that the file can be created or reset without duplicating the
# literal configuration body.

View File

@@ -5,5 +5,13 @@ services:
restart: unless-stopped
volumes:
- /docker/data/deletedposts:/app/config
environment:
CLIENT_ID: "abc123"
CLIENT_SECRET: "secret"
USER_AGENT: "DeletedPostsBot/1.0"
USERNAME: "botuser"
PASSWORD: "botpass"
SUB_NAME: "my_subreddit"
MAX_DAYS: "90" # strings are converted to ints when the
MAX_POSTS: "500" # corresponding config value is an int
SLEEP_MINUTES: "10"