mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-17 21:43:59 +00:00
* first commit * Addition of a personalized activity manager and refactoring of the logic of activities * Adding diagnostics management, including screenshot and HTML content, as well as improvements to humanize page interactions and +. * Adding the management of newspapers and webhook settings, including filtering messages and improving the structure of the summaries sent. * Adding a post-execution auto-date functionality, including options to update via Git and Docker, as well as a new configuration interface to manage these parameters. * Adding accounts in Docker, with options to use an environmental file or online JSON data, as well as minimum validations for responsible accounts. * Improving the Microsoft Rewards script display with a new headband and better log management, including colors and improved formatting for the console. * v2 * Refactor ESLint configuration and scripts for improved TypeScript support and project structure * Addition of the detection of suspended accounts with the gesture of the improved errors and journalization of banishment reasons * Adding an integrated planner for programmed task execution, with configuration in Config.json and + * Edit * Remove texte * Updating of documentation and adding the management of humanization in the configuration and +. * Adding manual purchase method allowing users to spend points without automation, with monitoring of expenses and notifications. * Correction of documentation and improvement of configuration management for manual purchase mode, adding complete documentation and appropriate banner display. * Add comprehensive documentation for job state persistence, NTFY notifications, proxy configuration, scheduling, and auto-update features - Introduced job state persistence documentation to track progress and resume tasks. - Added NTFY push notifications integration guide for real-time alerts. - Documented proxy configuration options for enhanced privacy and network management. - Included scheduling configuration for automated script execution. - Implemented auto-update configuration to keep installations current with Git and Docker options. * Ajout d'Unt Système de Rapport d'Erreurs Communautaire pour Améliorerer le Débogage, incluant la Configuration et l'Envoi de Résumés D'Erreurs Anonyés à un webhook Discord. * Mini Edit * Mise à Jour du Readme.md pour Améliorerer la Présentation et La Claté, Ajout d'Un section sur les notifications en Temps Raine et Mise à Jour des badges pour la meille unibilité. * Documentation update * Edit README.md * Edit * Update README with legacy version link * Improvement of location data management and webhooks, adding configurations normalization * Force update for PR * Improvement of documentation and configuration options for Cron integration and Docker use * Improvement of planning documentation and adding a multi-pan-pancake in the daily execution script * Deletion of the CommunityReport functionality in accordance with the project policy * Addition of randomization of start -up schedules and surveillance time for planner executions * Refactor Docker setup to use built-in scheduler, removing cron dependencies and simplifying configuration options * Adding TOTP support for authentication, update of interfaces and configuration files to include Totp secret, and automatic generation of the Totp code when connecting. * Fix [LOGIN-NO-PROMPT] No dialogs (xX) * Reset the Totp field for email_1 in the accounts.example.json file * Reset the Totp field for email_1 in the Readme.md file * Improvement of Bing Research: Use of the 'Attacked' method for the research field, management of overlays and adding direct navigation in the event of entry failure. * Adding a complete security policy, including directives on vulnerability management, coordinated disclosure and user security advice. * Remove advanced environment variables section from README * Configuration and dockerfile update: Passage to Node 22, addition of management of the purchase method, deletion of obsolete scripts * Correction of the order of the sections in the Readme.md for better readability * Update of Readm and Security Policy: Addition of the method of purchase and clarification of security and confidentiality practices. * Improvement of the readability of the Readm and deletion of the mention of reporting of vulnerabilities in the security document. * Addition of humanization management and adaptive throttling to simulate more human behavior in bot activities. * Addition of humanization management: activation/deactivation of human gestures, configuration update and adding documentation on human mode. * Deletion of community error report functionality to respect the privacy policy * Addition of immediate banning alerts and vacation configuration in the Microsoft Rewards bot * Addition of immediate banning alerts and vacation configuration in the Microsoft Rewards bot * Added scheduling support: support for 12h and 24h formats, added options for time zone, and immediate execution on startup. * Added window size normalization and page rendering to fit typical screens, with injected CSS styles to prevent excessive zooming. * Added security incident management: detection of hidden recovery emails, automation blocking, and global alerts. Updated configuration files and interfaces to include recovery emails. Improved security incident documentation. * Refactor incident alert handling: unified alert sender * s * Added security incident management: detect recovery email inconsistencies and send unified alerts. Implemented helper methods to manage alerts and compromised modes. * Added heartbeat management for the scheduler: integrated a heartbeat file to report liveliness and adjusted the watchdog configuration to account for heartbeat updates. * Edit webook * Updated security alert management: fixed the recovery email hidden in the documentation and enabled the conclusion webhook for notifications. * Improved security alert handling: added structured sending to webhooks for better visibility and updated callback interval in compromised mode. * Edit conf * Improved dependency installation: Added the --ignore-scripts option for npm ci and npm install. Updated comments in compose.yaml for clarity. * Refactor documentation structure and enhance logging: - Moved documentation files from 'information' to 'docs' directory for better organization. - Added live logging configuration to support webhook logs with email redaction. - Updated file paths in configuration and loading functions to accommodate new structure. - Adjusted scheduler behavior to prevent immediate runs unless explicitly set. - Improved error handling for account and config file loading. - Enhanced security incident documentation with detailed recovery steps. * Fix docs * Remove outdated documentation on NTFY, Proxy, Scheduling, Security, and Auto-Update configurations; update Browser class to prioritize headless mode based on environment variable. * Addition of documentation for account management and Totp, Docker Guide, and Update of the Documentation Index. * Updating Docker documentation: simplification of instructions and adding links to detailed guides. Revision of configuration options and troubleshooting sections. * Edit * Edit docs * Enhance documentation for Scheduler, Security, and Auto-Update features - Revamped the Scheduler documentation to include detailed features, configuration options, and usage examples. - Expanded the Security guide with comprehensive incident response strategies, privacy measures, and monitoring practices. - Updated the Auto-Update section to clarify configuration, methods, and best practices for maintaining system integrity. * Improved error handling and added crash recovery in the Microsoft Rewards bot. Added configuration for automatic restart and handling of local search queries when trends fail. * Fixed initial point counting in MicrosoftRewardsBot and improved error handling when sending summaries to webhooks. * Added unified support for notifications and improved handling of webhook configurations in the normalizeConfig and log functions. * UPDATE LOGIN * EDIT LOGIN * Improved login error handling: added recovery mismatch detection and the ability to switch to password authentication. * Added a full reference to configuration in the documentation and improved log and error handling in the code. * Added context management for conclusion webhooks and improved user configuration for notifications. * Mini edit * Improved logic for extracting masked emails for more accurate matching during account recovery.
395 lines
9.3 KiB
Markdown
395 lines
9.3 KiB
Markdown
# 🔄 Auto-Update System
|
|
|
|
<div align="center">
|
|
|
|
**🚀 Automatic updates to keep your installation current**
|
|
*Set it and forget it*
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## 🎯 What is Auto-Update?
|
|
|
|
The automatic update system runs **after script completion** to keep your installation current with the latest features, bug fixes, and security patches.
|
|
|
|
### **Key Features**
|
|
- 🔄 **Automatic updates** — Runs after each script completion
|
|
- 🛡️ **Safe by design** — Fast-forward only Git updates
|
|
- 🐳 **Docker support** — Container image updates
|
|
- 🛠️ **Custom scripts** — Extensible update process
|
|
- 🔒 **Error resilient** — Failed updates don't break main script
|
|
|
|
---
|
|
|
|
## ⚙️ Configuration
|
|
|
|
### **Basic Setup**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": true,
|
|
"docker": false,
|
|
"scriptPath": "setup/update/update.mjs"
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Configuration Options**
|
|
|
|
| Setting | Description | Default |
|
|
|---------|-------------|---------|
|
|
| `git` | Enable Git-based updates | `true` |
|
|
| `docker` | Enable Docker container updates | `false` |
|
|
| `scriptPath` | Path to custom update script | `"setup/update/update.mjs"` |
|
|
|
|
---
|
|
|
|
## 🚀 Update Methods
|
|
|
|
### **Git Updates (`git: true`)**
|
|
|
|
#### **What It Does**
|
|
- 📥 **Fetches latest changes** from remote repository
|
|
- ⚡ **Fast-forward only pulls** (safe updates)
|
|
- 📦 **Reinstalls dependencies** (`npm ci`)
|
|
- 🔨 **Rebuilds the project** (`npm run build`)
|
|
|
|
#### **Requirements**
|
|
- ✅ Git installed and available in PATH
|
|
- ✅ Repository is a Git clone (not downloaded ZIP)
|
|
- ✅ No uncommitted local changes
|
|
- ✅ Internet connectivity
|
|
|
|
#### **Process**
|
|
```bash
|
|
git fetch --all --prune
|
|
git pull --ff-only
|
|
npm ci
|
|
npm run build
|
|
```
|
|
|
|
### **Docker Updates (`docker: true`)**
|
|
|
|
#### **What It Does**
|
|
- 📥 **Pulls latest container images**
|
|
- 🔄 **Restarts services** with new images
|
|
- 💾 **Preserves configurations** and mounted volumes
|
|
|
|
#### **Requirements**
|
|
- ✅ Docker and Docker Compose installed
|
|
- ✅ `docker-compose.yml` file present
|
|
- ✅ Proper container registry access
|
|
|
|
#### **Process**
|
|
```bash
|
|
docker compose pull
|
|
docker compose up -d
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ Custom Update Scripts
|
|
|
|
### **Default Script**
|
|
- **Path** — `setup/update/update.mjs`
|
|
- **Format** — ES modules
|
|
- **Arguments** — Command line flags
|
|
|
|
### **Script Arguments**
|
|
- `--git` — Enable Git update process
|
|
- `--docker` — Enable Docker update process
|
|
- Both flags can be combined
|
|
|
|
### **Custom Script Example**
|
|
```javascript
|
|
// custom-update.mjs
|
|
import { execSync } from 'child_process'
|
|
|
|
const args = process.argv.slice(2)
|
|
|
|
if (args.includes('--git')) {
|
|
console.log('🔄 Running custom Git update...')
|
|
execSync('git pull && npm install', { stdio: 'inherit' })
|
|
}
|
|
|
|
if (args.includes('--docker')) {
|
|
console.log('🐳 Running custom Docker update...')
|
|
execSync('docker-compose pull && docker-compose up -d', { stdio: 'inherit' })
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## ⏰ Execution Timing
|
|
|
|
### **When Updates Run**
|
|
| Scenario | Update Runs |
|
|
|----------|-------------|
|
|
| **Normal completion** | ✅ All accounts processed successfully |
|
|
| **Error completion** | ✅ Script finished with errors but completed |
|
|
| **Interruption** | ❌ Script killed or crashed mid-execution |
|
|
|
|
### **Update Sequence**
|
|
1. **🏁 Main script completion** — All accounts processed
|
|
2. **📊 Conclusion webhook** sent (if enabled)
|
|
3. **🚀 Update process begins**
|
|
4. **📥 Git updates** (if enabled)
|
|
5. **🐳 Docker updates** (if enabled)
|
|
6. **🔚 Process exits**
|
|
|
|
---
|
|
|
|
## 🛡️ Safety Features
|
|
|
|
### **Git Safety**
|
|
- ⚡ **Fast-forward only** — Prevents overwriting local changes
|
|
- 📦 **Dependency verification** — Ensures `npm ci` succeeds
|
|
- 🔨 **Build validation** — Confirms TypeScript compilation works
|
|
|
|
### **Error Handling**
|
|
- ✅ **Update failures** don't break main script
|
|
- 🔇 **Silent failures** — Errors logged but don't crash process
|
|
- 🔄 **Rollback protection** — Failed updates don't affect current installation
|
|
|
|
### **Concurrent Execution**
|
|
- 🔒 **Single update process** — Multiple instances don't conflict
|
|
- 🚫 **Lock-free design** — No file locking needed
|
|
- 🎯 **Independent updates** — Each script copy updates separately
|
|
|
|
---
|
|
|
|
## 📊 Monitoring Updates
|
|
|
|
### **Log Output**
|
|
```
|
|
[UPDATE] Starting post-run update process
|
|
[UPDATE] Git update enabled, Docker update disabled
|
|
[UPDATE] Running: git fetch --all --prune
|
|
[UPDATE] Running: git pull --ff-only
|
|
[UPDATE] Running: npm ci
|
|
[UPDATE] Running: npm run build
|
|
[UPDATE] Update completed successfully
|
|
```
|
|
|
|
### **Update Verification**
|
|
```powershell
|
|
# Check if updates are pending
|
|
git status
|
|
|
|
# View recent commits
|
|
git log --oneline -5
|
|
|
|
# Verify build status
|
|
npm run build
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Use Cases
|
|
|
|
### **Development Environment**
|
|
| Benefit | Description |
|
|
|---------|-------------|
|
|
| **Synchronized** | Keep local installation current with repository |
|
|
| **Automated** | Automatic dependency updates |
|
|
| **Seamless** | Integration of bug fixes and features |
|
|
|
|
### **Production Deployment**
|
|
| Benefit | Description |
|
|
|---------|-------------|
|
|
| **Security** | Automated security patches |
|
|
| **Features** | Updates without manual intervention |
|
|
| **Consistent** | Same update process across servers |
|
|
|
|
### **Docker Environments**
|
|
| Benefit | Description |
|
|
|---------|-------------|
|
|
| **Images** | Container image updates |
|
|
| **Security** | Patches in base images |
|
|
| **Automated** | Service restarts |
|
|
|
|
---
|
|
|
|
## 📋 Best Practices
|
|
|
|
### **Git Configuration**
|
|
- 🧹 **Clean working directory** — Commit or stash local changes
|
|
- 🌿 **Stable branch** — Use `main` or `stable` for auto-updates
|
|
- 📝 **Regular commits** — Keep repository history clean
|
|
- 💾 **Backup data** — Sessions and accounts before updates
|
|
|
|
### **Docker Configuration**
|
|
- 🏷️ **Image tagging** — Use specific tags, not `latest` for production
|
|
- 💾 **Volume persistence** — Ensure data volumes are mounted
|
|
- 🔗 **Service dependencies** — Configure proper startup order
|
|
- 🎯 **Resource limits** — Set appropriate memory and CPU limits
|
|
|
|
### **Monitoring**
|
|
- 📝 **Check logs regularly** — Monitor update success/failure
|
|
- 🧪 **Test after updates** — Verify script functionality
|
|
- 💾 **Backup configurations** — Preserve working setups
|
|
- 📊 **Version tracking** — Record successful versions
|
|
|
|
---
|
|
|
|
## 🛠️ Troubleshooting
|
|
|
|
### **Git Issues**
|
|
|
|
| Error | Solution |
|
|
|-------|----------|
|
|
| **"Not a git repository"** | Clone repository instead of downloading ZIP |
|
|
| **"Local changes would be overwritten"** | Commit or stash local changes |
|
|
| **"Fast-forward not possible"** | Repository diverged - reset to remote state |
|
|
|
|
#### **Git Reset Command**
|
|
```powershell
|
|
# Reset to remote state (⚠️ loses local changes)
|
|
git fetch origin
|
|
git reset --hard origin/main
|
|
```
|
|
|
|
### **Docker Issues**
|
|
|
|
| Error | Solution |
|
|
|-------|----------|
|
|
| **"Docker not found"** | Install Docker and Docker Compose |
|
|
| **"Permission denied"** | Add user to docker group |
|
|
| **"No docker-compose.yml"** | Create compose file or use custom script |
|
|
|
|
#### **Docker Permission Fix**
|
|
```powershell
|
|
# Windows: Ensure Docker Desktop is running
|
|
# Linux: Add user to docker group
|
|
sudo usermod -aG docker $USER
|
|
```
|
|
|
|
### **Network Issues**
|
|
|
|
| Error | Solution |
|
|
|-------|----------|
|
|
| **"Could not resolve host"** | Check internet connectivity |
|
|
| **"Connection timeout"** | Check firewall and proxy settings |
|
|
|
|
---
|
|
|
|
## 🔧 Manual Updates
|
|
|
|
### **Git Manual Update**
|
|
```powershell
|
|
git fetch --all --prune
|
|
git pull --ff-only
|
|
npm ci
|
|
npm run build
|
|
```
|
|
|
|
### **Docker Manual Update**
|
|
```powershell
|
|
docker compose pull
|
|
docker compose up -d
|
|
```
|
|
|
|
### **Dependencies Only**
|
|
```powershell
|
|
npm ci
|
|
npm run build
|
|
```
|
|
|
|
---
|
|
|
|
## ⚙️ Update Configuration
|
|
|
|
### **Complete Disable**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": false,
|
|
"docker": false
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Selective Enable**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": true, // Keep Git updates
|
|
"docker": false // Disable Docker updates
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Custom Script Path**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": true,
|
|
"docker": false,
|
|
"scriptPath": "my-custom-update.mjs"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🔒 Security Considerations
|
|
|
|
### **Git Security**
|
|
- ✅ **Trusted remote** — Updates pull from configured remote only
|
|
- ⚡ **Fast-forward only** — Prevents malicious rewrites
|
|
- 📦 **NPM registry** — Dependencies from official registry
|
|
|
|
### **Docker Security**
|
|
- 🏷️ **Verified images** — Container images from configured registries
|
|
- ✍️ **Image signatures** — Verify when possible
|
|
- 🔍 **Security scanning** — Regular scanning of base images
|
|
|
|
### **Script Execution**
|
|
- 👤 **Same permissions** — Update scripts run with same privileges
|
|
- 🚫 **No escalation** — No privilege escalation during updates
|
|
- 🔍 **Review scripts** — Custom scripts should be security reviewed
|
|
|
|
---
|
|
|
|
## 🎯 Environment Examples
|
|
|
|
### **Development**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": true,
|
|
"docker": false
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Production**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": false,
|
|
"docker": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Hybrid**
|
|
```json
|
|
{
|
|
"update": {
|
|
"git": true,
|
|
"docker": true,
|
|
"scriptPath": "setup/update/production-update.mjs"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🔗 Related Guides
|
|
|
|
- **[Getting Started](./getting-started.md)** — Initial setup and configuration
|
|
- **[Docker](./docker.md)** — Container deployment and management
|
|
- **[Scheduler](./schedule.md)** — Automated timing and execution
|
|
- **[Security](./security.md)** — Privacy and data protection |