This document provides a comprehensive reference for all environment variables supported by the Release Tracker project, including their purposes, usage examples, and default values.
config.yaml
# Local file
export CONFIG_SOURCE="config.yaml"
export CONFIG_SOURCE="/path/to/custom-config.yaml"
# HTTP(S) URL
export CONFIG_SOURCE="https://raw.githubusercontent.com/user/repo/main/config.yaml"
# S3 bucket
export CONFIG_SOURCE="s3://my-bucket/config.yaml"
public_repo
(for public repos), repo
(for private repos)export GH_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
read_api
, read_repository
export GITLAB_TOKEN="glpat-xxxxxxxxxxxxxxxxxxxx"
export DOCKER_TOKEN="dckr_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export APKMIRROR_TOKEN="your_apkmirror_api_token"
Used when loading configuration from S3 buckets or CloudFlare R2.
export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
export AWS_REGION="us-east-1"
export S3_ENDPOINT_URL="https://your-account-id.r2.cloudflarestorage.com"
Used for persistent state storage to track last seen releases.
localhost
(when not specified in config)export REDIS_HOST="redis-server.example.com"
export REDIS_HOST="127.0.0.1"
6379
export REDIS_PORT="6379"
export REDIS_PORT="16379" # Custom port
0
export REDIS_DB="0"
export REDIS_DB="1" # Use database 1
export REDIS_PASSWORD="your_redis_password"
# Discord webhook
export APPRISE_URL="discord://webhook_id/webhook_token"
# Telegram bot
export APPRISE_URL="tgram://bot_token/chat_id"
# Slack webhook
export APPRISE_URL="slack://webhook_token"
# Email (SMTP)
export APPRISE_URL="mailto://user:[email protected]:587/[email protected]"
# Multiple services (comma-separated)
export APPRISE_URL="discord://webhook1,tgram://bot_token/chat_id"
# Enable force notifications
export FORCE_NOTIFY="1"
export FORCE_NOTIFY="true"
export FORCE_NOTIFY="yes"
# Run with force notifications
FORCE_NOTIFY=1 python main.py
# Disable (default)
unset FORCE_NOTIFY
# Basic setup for development
export CONFIG_SOURCE="config.yaml"
export GH_TOKEN="ghp_your_development_token"
export APPRISE_URL="discord://your_webhook"
# Local Redis
export REDIS_HOST="localhost"
export REDIS_PORT="6379"
export REDIS_DB="0"
# Production setup with S3 config
export CONFIG_SOURCE="s3://prod-configs/release-tracker/config.yaml"
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# Authentication tokens
export GH_TOKEN="ghp_production_token"
export GITLAB_TOKEN="glpat_production_token"
export DOCKER_TOKEN="dckr_pat_production_token"
# Production Redis (managed service)
export REDIS_HOST="prod-redis.cache.amazonaws.com"
export REDIS_PORT="6379"
export REDIS_PASSWORD="your_redis_password"
export REDIS_DB="0"
# Production notifications
export APPRISE_URL="tgram://bot_token/chat_id,slack://webhook_token"
# Docker Compose with environment variables
version: '3.8'
services:
release-tracker:
image: release-tracker
environment:
- CONFIG_SOURCE=config.yaml
- GH_TOKEN=${GH_TOKEN}
- GITLAB_TOKEN=${GITLAB_TOKEN}
- APPRISE_URL=${APPRISE_URL}
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_DB=0
depends_on:
- redis
redis:
image: redis:7-alpine
# Testing with force notifications
export CONFIG_SOURCE="test-config.yaml"
export FORCE_NOTIFY="1"
export APPRISE_URL="mailto://[email protected]"
# Test Redis
export REDIS_HOST="localhost"
export REDIS_DB="15" # Use separate test database
.env
files for local development (add to .gitignore
)${VAR:-default}
REDIS_PASSWORD
)REDIS_DB
)# .env file for local development (DO NOT COMMIT)
CONFIG_SOURCE=config.yaml
GH_TOKEN=ghp_your_github_token_here
GITLAB_TOKEN=glpat_your_gitlab_token_here
APPRISE_URL=discord://your_webhook_id/your_webhook_token
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
# Load .env file in bash
set -a && source .env && set +a
# Then run the application
python main.py
Note: Environment variables in YAML configuration files use the ${VARIABLE_NAME}
syntax and support default values with ${VARIABLE_NAME:-default_value}
.