Files
Microsoft-Rewards-Script/docs/docker.md
Light dc7e122bce V2.1 (#375)
* feat: Implement edge version fetching with retry logic and caching

* chore: Update version to 2.1.0 in package.json

* fix: Update package version to 2.1.0 and enhance user agent metadata

* feat: Enhance 2FA handling with improved TOTP input and submission logic

* fix: Refactor getSystemComponents to improve mobile user agent string generation

* feat: Add support for cron expressions for advanced scheduling

* feat: Improve humanization feature with detailed logging for off-days configuration

* feat: Add live log streaming via webhook and enhance logging configuration

* fix: Remove unused @types/cron-parser dependency from devDependencies

* feat: Add cron-parser dependency and enhance Axios error handling for proxy authentication

* feat: Enhance dashboard data retrieval with retry logic and diagnostics capture

* feat: Add ready-to-use sample configurations and update configuration settings for better customization

* feat: Add buy mode detection and configuration methods for enhanced manual redemption

* feat: Migrate configuration from JSON to JSONC format for improved readability and comments support

feat: Implement centralized diagnostics capture for better error handling and reporting

fix: Update documentation references from config.json to config.jsonc

chore: Add .vscode to .gitignore for cleaner project structure

refactor: Enhance humanization and diagnostics capture logic in BrowserUtil and Login classes

* feat: Reintroduce ambiance declarations for the 'luxon' module to unlock TypeScript

* feat: Update search delay settings for improved performance and reliability

* feat: Update README and SECURITY documentation for clarity and improved data handling guidelines

* Enhance README and SECURITY documentation for Microsoft Rewards Script V2

- Updated README.md to improve structure, add badges, and enhance clarity on features and setup instructions.
- Expanded SECURITY.md to provide detailed data handling practices, security guidelines, and best practices for users.
- Included sections on data flow, credential management, and responsible use of the automation tool.
- Added a security checklist for users to ensure safe practices while using the script.

* feat: Réorganiser et enrichir la documentation du README pour une meilleure clarté et accessibilité

* feat: Updated and reorganized the README for better presentation and clarity

* feat: Revised and simplified the README for better clarity and accessibility

* Update README.md
2025-10-11 16:54:07 +02:00

3.2 KiB
Raw Blame History

🐳 Docker Guide

Lightweight containerized deployment
Automated Microsoft Rewards with minimal Docker footprint


🚀 Quick Start Checklist

  1. src/accounts.json populated with your Microsoft credentials
  2. src/config.jsonc present (defaults are fine; comments stay intact)
  3. Docker + Docker Compose installed locally (Desktop app or CLI)
# Build and start the container (scheduler runs automatically)
docker compose up -d

# Stream logs from the running container
docker logs -f microsoft-rewards-script

# Stop the stack when you are done
docker compose down

The compose file uses the same Playwright build as local runs but forces headless mode inside the container via FORCE_HEADLESS=1, matching the bundled image.


📦 What the Compose File Mounts

Host path Container path Purpose
./src/accounts.json /usr/src/microsoft-rewards-script/accounts.json Read-only account credentials
./src/config.jsonc /usr/src/microsoft-rewards-script/config.json Read-only runtime configuration
./sessions /usr/src/microsoft-rewards-script/sessions Persisted cookies & fingerprints

Prefer environment variables? The loader accepts the same overrides as local runs:

ACCOUNTS_FILE=/custom/accounts.json
ACCOUNTS_JSON='[{"email":"name@example.com","password":"hunter2"}]'

🌍 Useful Environment Variables

  • TZ — set container timezone (Europe/Paris, America/New_York, etc.)
  • NODE_ENV=production — default; keeps builds lean
  • FORCE_HEADLESS=1 — required in Docker (Chromium Headless Shell only)
  • Scheduler tuning (optional):
    • SCHEDULER_DAILY_JITTER_MINUTES_MIN / SCHEDULER_DAILY_JITTER_MINUTES_MAX
    • SCHEDULER_PASS_TIMEOUT_MINUTES
    • SCHEDULER_FORK_PER_PASS

🧠 Browser Footprint

The Docker image installs Chromium Headless Shell via npx playwright install --with-deps --only-shell. This keeps the image compact while retaining Chromiums Edge-compatible user agent. Installing full Edge or all browsers roughly doubles the footprint and adds instability, so we ship only the shell.


🔁 Alternate Commands

  • Default: npm run start:schedule (inside container) — keeps the scheduler alive
  • Single pass: docker compose run --rm app node ./dist/index.js
  • Custom script: Override command: in compose.yaml to suit your workflow

💡 Tips

  • Add TOTP secrets to accounts.json so the bot can respond to MFA prompts automatically
  • Keep the sessions volume; deleting it forces fresh logins and can trigger security reviews
  • Mixing proxies? Configure per-account proxies in accounts.json (see Proxy Setup)
  • Want notifications? Layer NTFY or Discord Webhooks on top once the container is stable

  • Getting Started — Prep work before switching to containers
  • Accounts & 2FA — Ensure every account can pass MFA headlessly
  • Scheduler — If you prefer a host-side cron instead of Docker
  • Diagnostics — Capture logs and debug a failing container