No description
  • Python 98.7%
  • Dockerfile 1.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-18 05:16:20 +02:00
.github Update astral-sh/setup-uv action to v10.0.1 (#234) 2026-08-14 09:14:43 +00:00
.vscode Use curl-cffi for some requests so we don't get 403 2025-12-22 23:09:31 +01:00
extras Add multi-platform GitHub Actions workflow to build distributable executables 2025-11-04 20:45:34 +01:00
pages Make JSON files only have giveaways that has not ended 2026-05-10 23:09:46 +02:00
src/discord_free_game_notifier Use human-readable rule names 2026-08-18 05:13:37 +02:00
tests Use human-readable rule names 2026-08-18 05:13:37 +02:00
.dockerignore Use uv:python3.14 builder and simplify Docker build 2025-11-05 17:38:42 +01:00
.env.example Add Sentry error tracking 2025-12-22 22:24:53 +01:00
.git-blame-ignore-revs Add previous commit to git blame ignore 2026-08-18 05:16:20 +02:00
.gitattributes Add trailing newline to .gitattributes 2025-11-04 01:07:37 +01:00
.gitignore Use uv.lock 2025-11-16 20:49:23 +01:00
.pre-commit-config.yaml Update dependencies 2026-08-18 05:12:00 +02:00
CONTRIBUTING.md Update Epic game data for Christmas Sale 2025 2025-12-12 00:19:56 +01:00
docker-compose.yml Add .dockerignore; switch to multi-stage Dockerfile (uv builder, Python 3.14) and update docker-compose image tag to latest 2025-11-04 02:40:57 +01:00
Dockerfile Optimize Dockerfile: add uv.lock binding and use --frozen flag for dependency sync 2025-11-16 20:50:02 +01:00
LICENSE Initial commit 2021-12-28 23:53:24 +01:00
pyproject.toml Use human-readable rule names 2026-08-18 05:13:37 +02:00
README.md Add Sentry error tracking 2025-12-22 22:24:53 +01:00
uv.lock Update dependencies 2026-08-18 05:12:00 +02:00

discord-free-game-notifier

Discord webhook notifications for free games on Steam, Epic, GOG, and Ubisoft.

Setup

Docker: See docker-compose.yml

Available tags:

  • latest - Latest build from master branch
  • 2.0.0 - Pin to specific version (recommended for stability)
  • 2.0 - Pin to minor version (gets patch updates)
  • 2 - Pin to major version

Direct:

# Install uv
# Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh

# Configure: Copy .env.example to .env and set WEBHOOK_URL

# Run (checks at :01, :16, :31, :46 each hour)
uv run python -m discord_free_game_notifier.main

Configuration

All settings are configured via environment variables (or .env file):

Required Settings

  • WEBHOOK_URL - Main Discord webhook URL for all game notifications

Optional Store-Specific Webhooks

Send notifications to different webhooks based on the game store:

  • STEAM_WEBHOOK - Discord webhook URL for Steam games
  • EPIC_WEBHOOK - Discord webhook URL for Epic Games
  • GOG_WEBHOOK - Discord webhook URL for GOG games
  • UBISOFT_WEBHOOK - Discord webhook URL for Ubisoft games

Filter Settings

Control which games you want to be notified about:

  • PLATFORMS - Comma-separated list of platforms: pc, android, ios

    • Examples:
      • PLATFORMS=pc - Only PC games
      • PLATFORMS=android,ios - Only mobile games
      • PLATFORMS=pc,android,ios or leave empty - All platforms (default)
  • STORES - Comma-separated list of stores: steam, epic, gog, ubisoft

    • Examples:
      • STORES=steam,epic - Only Steam and Epic Games
      • STORES=epic - Only Epic Games
      • Leave empty - All stores (default)

Other Settings

  • LOG_LEVEL - Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL). Default: INFO
  • SENTRY_DSN - Sentry DSN for error tracking. Enabled by default. Set to empty string (SENTRY_DSN=) to disable error reporting. You can also set your own DSN from sentry.io

Example Configuration

# Main webhook (required if no store-specific webhooks are set)
WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN

# Optional: Send Steam games to a different channel
STEAM_WEBHOOK=https://discord.com/api/webhooks/STEAM_WEBHOOK_ID/STEAM_WEBHOOK_TOKEN

# Optional: Only check Steam and Epic, only PC games
STORES=steam,epic
PLATFORMS=pc

# Optional: Adjust logging
LOG_LEVEL=INFO

# Optional: Disable Sentry error tracking (enabled by default)
# SENTRY_DSN=

# Optional: Use your own Sentry DSN
# SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id

Data Storage

  • Windows: %APPDATA%/TheLovinator/discord_free_game_notifier
  • Linux: ~/.local/share/discord_free_game_notifier/