From c4b353aae84df9ec33e2db52f73c4ff0621b8a19 Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Sun, 7 Sep 2025 16:51:51 +0530 Subject: [PATCH] Added docs around scheduling using corn --- README.md | 24 ++++++++++++++---------- docs/ENVIRONMENT_VARIABLES.md | 26 +++++++++++++++++++------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index f962d0e..32c9383 100644 --- a/README.md +++ b/README.md @@ -216,28 +216,32 @@ Gitea Mirror provides powerful automatic synchronization features: - **Repository cleanup**: Removes repositories that no longer exist in GitHub - **Proper intervals**: Mirrors respect your configured sync intervals (not Gitea's default 24h) - **Smart scheduling**: Only syncs repositories that need updating -- **Auto-start on boot** (v3.5.3+): Automatically imports and mirrors all repositories when `SCHEDULE_ENABLED=true` or `GITEA_MIRROR_INTERVAL` is set +- **Auto-start on boot** (v3.5.3+): Automatically imports and mirrors all repositories when `SCHEDULE_ENABLED=true` or `GITEA_MIRROR_INTERVAL` is set - no manual clicks required! #### Configuration via Web Interface (Recommended) Navigate to the Configuration page and enable "Automatic Syncing" with your preferred interval. #### Configuration via Environment Variables -**Set it and forget it!** With these environment variables, Gitea Mirror will automatically: -1. Import all your GitHub repositories on startup -2. Mirror them to Gitea immediately -3. Keep them synchronized based on your interval -4. Auto-discover new repos you create/star on GitHub -5. Clean up repos you delete from GitHub +**🚀 Set it and forget it!** With these environment variables, Gitea Mirror will automatically: +1. **Import** all your GitHub repositories on startup (no manual import needed!) +2. **Mirror** them to Gitea immediately +3. **Keep them synchronized** based on your interval +4. **Auto-discover** new repos you create/star on GitHub +5. **Clean up** repos you delete from GitHub ```bash -# Enable automatic scheduling (required for auto features) +# Option 1: Enable automatic scheduling (triggers auto-start) SCHEDULE_ENABLED=true +SCHEDULE_INTERVAL=3600 # Check every hour (or use cron: "0 * * * *") -# Mirror interval (how often to sync) -GITEA_MIRROR_INTERVAL=8h # Every 8 hours (default) +# Option 2: Set mirror interval (also triggers auto-start) +GITEA_MIRROR_INTERVAL=8h # Every 8 hours # Other examples: 5m, 30m, 1h, 24h, 1d, 7d +# Advanced: Use cron expressions for specific times +SCHEDULE_INTERVAL="0 2 * * *" # Daily at 2 AM (optimize bandwidth usage) + # Auto-import new repositories (default: true) AUTO_IMPORT_REPOS=true diff --git a/docs/ENVIRONMENT_VARIABLES.md b/docs/ENVIRONMENT_VARIABLES.md index a4fd7a5..99f27e2 100644 --- a/docs/ENVIRONMENT_VARIABLES.md +++ b/docs/ENVIRONMENT_VARIABLES.md @@ -151,15 +151,27 @@ Configure automatic scheduled mirroring. | Variable | Description | Default | Options | |----------|-------------|---------|---------| | `SCHEDULE_ENABLED` | Enable automatic mirroring. **When set to `true`, automatically imports and mirrors all repositories on startup** (v3.5.3+) | `false` | `true`, `false` | -| `SCHEDULE_INTERVAL` | Interval in seconds or cron expression | `3600` | Number or cron string (e.g., `"0 2 * * *"`) | +| `SCHEDULE_INTERVAL` | Interval in seconds or cron expression. **Supports cron syntax for scheduled runs** (e.g., `"0 2 * * *"` for 2 AM daily) | `3600` | Number (seconds) or cron string | | `DELAY` | Legacy: same as SCHEDULE_INTERVAL | `3600` | Number (seconds) | -> **Note**: Setting either `SCHEDULE_ENABLED=true` or `GITEA_MIRROR_INTERVAL` triggers auto-start functionality where the service will: -> 1. Import all GitHub repositories on startup -> 2. Mirror them to Gitea immediately -> 3. Continue syncing at the configured interval -> 4. Auto-discover new repositories -> 5. Clean up deleted repositories (if configured) +> **🚀 Auto-Start Feature (v3.5.3+)** +> Setting either `SCHEDULE_ENABLED=true` or `GITEA_MIRROR_INTERVAL` triggers auto-start functionality where the service will: +> 1. **Import** all GitHub repositories on startup +> 2. **Mirror** them to Gitea immediately +> 3. **Continue syncing** at the configured interval +> 4. **Auto-discover** new repositories +> 5. **Clean up** deleted repositories (if configured) +> +> This eliminates the need for manual button clicks - perfect for Docker/Kubernetes deployments! + +> **⏰ Scheduling with Cron Expressions** +> Use cron expressions in `SCHEDULE_INTERVAL` to run at specific times: +> - `"0 2 * * *"` - Daily at 2 AM +> - `"0 */6 * * *"` - Every 6 hours +> - `"0 0 * * 0"` - Weekly on Sunday at midnight +> - `"0 3 * * 1-5"` - Weekdays at 3 AM (Monday-Friday) +> +> This is useful for optimizing bandwidth usage during low-activity periods. ### Execution Settings