[GH-ISSUE #72] Automatic Mirroring and some docker compose flags not working #37

Closed
opened 2026-02-27 15:54:42 +03:00 by kerem · 22 comments
Owner

Originally created by @Tailscale-VPS on GitHub (Aug 10, 2025).
Original GitHub issue: https://github.com/RayLabsHQ/gitea-mirror/issues/72

Originally assigned to: @arunavo4 on GitHub.

My Docker compose

services:
  gitea-mirror:
    image: docker.gitea.com/gitea:1.24.4
    container_name: gitea-mirror
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    environment:
      - USER_UID=1001
      - USER_GID=1001
      - GITEA__service__DISABLE_REGISTRATION=true
      - GITEA__service__REQUIRE_SIGNIN_VIEW=true
    volumes:
      - /home/ubuntu/docker/stacks/app-data/gitea-mirror:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    labels:
      - traefik.enable=true
      - traefik.http.routers.gitea-mirror-rtr.entrypoints=websecure
      - traefik.http.routers.gitea-mirror-rtr.rule=Host(`site.example.com`)
      - traefik.http.routers.gitea-mirror-rtr.middlewares=chain-authelia@file
      - traefik.http.routers.gitea-mirror-rtr.service=gitea-mirror-svc
      - traefik.http.services.gitea-mirror-svc.loadbalancer.server.port=3000
    restart: unless-stopped

  gitea-mirror-backend:
    image: ghcr.io/raylabshq/gitea-mirror:v3.2.6
    container_name: gitea-mirror-backend
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    user: 1001:1001
    environment:
      - NODE_ENV=production
      - HOST=0.0.0.0
      - PORT=4321
      - DATABASE_URL=file:data/gitea-mirror.db
      - BETTER_AUTH_URL=https://site-backend.example.com
      - BETTER_AUTH_TRUSTED_ORIGINS=https://site-backend.example.com
      - BETTER_AUTH_SECRET={Secret-here}
      - ENCRYPTION_SECRET={Secret-here}
      - GITHUB_USERNAME=Tailscale-VPS
      - GITHUB_TOKEN={Secret-here}
      - GITHUB_TYPE=personal
      - PRIVATE_REPOSITORIES=true
      - PUBLIC_REPOSITORIES=true
      - INCLUDE_ARCHIVED=false
      - SKIP_FORKS=false
      - MIRROR_STARRED=true
      - STARRED_REPOS_ORG=starred
      - MIRROR_ORGANIZATIONS=true
      - PRESERVE_ORG_STRUCTURE=true
      - ONLY_MIRROR_ORGS=false
      - MIRROR_STRATEGY=preserve
      - SKIP_STARRED_ISSUES=false
      - GITEA_URL=http://gitea-mirror:3000
      - GITEA_TOKEN={Secret-here}
      - GITEA_USERNAME=homelab10400
      - GITEA_ORGANIZATION=github-mirrors
      - GITEA_ORG_VISIBILITY=public
      - GITEA_MIRROR_INTERVAL=8h
      - GITEA_LFS=false
      - GITEA_CREATE_ORG=true
      - GITEA_PRESERVE_VISIBILITY=true
      - GITEA_ADD_TOPICS=true
      - GITEA_TOPIC_PREFIX=gh-
      - GITEA_FORK_STRATEGY=full-copy
      - MIRROR_RELEASES=true
      - MIRROR_WIKI=true
      - MIRROR_METADATA=true
      - MIRROR_ISSUES=true
      - MIRROR_PULL_REQUESTS=true
      - MIRROR_LABELS=true
      - MIRROR_MILESTONES=true
      - SCHEDULE_ENABLED=true
      - SCHEDULE_INTERVAL=3600
      - SCHEDULE_CONCURRENT=false
      - SCHEDULE_BATCH_SIZE=10
      - SCHEDULE_PAUSE_BETWEEN_BATCHES=5000
      - SCHEDULE_RETRY_ATTEMPTS=3
      - SCHEDULE_RETRY_DELAY=60000
      - SCHEDULE_TIMEOUT=3600000
      - SCHEDULE_AUTO_RETRY=true
      - SCHEDULE_ONLY_MIRROR_UPDATED=false
      - SCHEDULE_UPDATE_INTERVAL=86400000
      - SCHEDULE_SKIP_RECENTLY_MIRRORED=true
      - SCHEDULE_RECENT_THRESHOLD=3600000
      - SCHEDULE_CLEANUP_BEFORE_MIRROR=false
      - SCHEDULE_LOG_LEVEL=info
      - SCHEDULE_TIMEZONE=Asia/Kolkata
      - CLEANUP_ENABLED=true
      - CLEANUP_RETENTION_DAYS=7
      - CLEANUP_DELETE_FROM_GITEA=true
      - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true
      - CLEANUP_ORPHANED_REPO_ACTION=archive
      - CLEANUP_DRY_RUN=false
      - CLEANUP_BATCH_SIZE=10
      - CLEANUP_PAUSE_BETWEEN_DELETES=2000
    volumes:
      - /home/ubuntu/docker/stacks/app-data/gitea-mirror-backend:/app/data
    labels:
      - traefik.enable=true
      - traefik.http.routers.gitea-mirror-backend-rtr.entrypoints=websecure
      - traefik.http.routers.gitea-mirror-backend-rtr.rule=Host(`site-backend.example.com`)
      - traefik.http.routers.gitea-mirror-backend-rtr.middlewares=chain-authelia@file
      - traefik.http.routers.gitea-mirror-backend-rtr.service=gitea-mirror-backend-svc
      - traefik.http.services.gitea-mirror-backend-svc.loadbalancer.server.port=4321
    healthcheck:
      test:
        [
          "CMD",
          "wget",
          "--no-verbose",
          "--tries=3",
          "--spider",
          "http://localhost:4321/api/health",
        ]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 15s
    depends_on:
      - gitea-mirror
    restart: unless-stopped

networks:
  proxy:
    external: true

Env Variables probably related to issue

      - GITEA_MIRROR_INTERVAL=8h
      - SCHEDULE_ENABLED=true
      - SCHEDULE_INTERVAL=3600
      - SCHEDULE_UPDATE_INTERVAL=86400000
      - SCHEDULE_SKIP_RECENTLY_MIRRORED=true
      - SCHEDULE_RECENT_THRESHOLD=3600000
      - CLEANUP_DELETE_FROM_GITEA=true
      - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true
      - CLEANUP_ORPHANED_REPO_ACTION=archive
      - CLEANUP_DRY_RUN=false

Image
Image
Image

ISSUES
1 - The GITEA_MIRROR_INTERVAL=8h counts time from the container startup OR from the time the repo was mirrored? Because as you can see i have mirrored the repos at August 9, 2025 at 11:00 PM and the container was restarted at August 10, 2025 at 04:00 AM. Till now there was no logs of mirroring again.Even when -SCHEDULE_INTERVAL=3600

Reason - Probably because of ?
- SCHEDULE_UPDATE_INTERVAL=86400000
- SCHEDULE_SKIP_RECENTLY_MIRRORED=true
- SCHEDULE_RECENT_THRESHOLD=3600000

2 - I have removed star from the winlator repo yesterday but its still not deleted from gite/gitea-mirror. Even though these flags are there
- CLEANUP_DELETE_FROM_GITEA=true
- CLEANUP_DELETE_IF_NOT_IN_GITHUB=true
- CLEANUP_ORPHANED_REPO_ACTION=archive
- CLEANUP_DRY_RUN=false

Reason - Same as for 1

After Solving the above, I believe you can aslo close https://github.com/RayLabsHQ/gitea-mirror/issues/50

Originally created by @Tailscale-VPS on GitHub (Aug 10, 2025). Original GitHub issue: https://github.com/RayLabsHQ/gitea-mirror/issues/72 Originally assigned to: @arunavo4 on GitHub. My Docker compose ``` services: gitea-mirror: image: docker.gitea.com/gitea:1.24.4 container_name: gitea-mirror security_opt: - no-new-privileges:true networks: - proxy environment: - USER_UID=1001 - USER_GID=1001 - GITEA__service__DISABLE_REGISTRATION=true - GITEA__service__REQUIRE_SIGNIN_VIEW=true volumes: - /home/ubuntu/docker/stacks/app-data/gitea-mirror:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro labels: - traefik.enable=true - traefik.http.routers.gitea-mirror-rtr.entrypoints=websecure - traefik.http.routers.gitea-mirror-rtr.rule=Host(`site.example.com`) - traefik.http.routers.gitea-mirror-rtr.middlewares=chain-authelia@file - traefik.http.routers.gitea-mirror-rtr.service=gitea-mirror-svc - traefik.http.services.gitea-mirror-svc.loadbalancer.server.port=3000 restart: unless-stopped gitea-mirror-backend: image: ghcr.io/raylabshq/gitea-mirror:v3.2.6 container_name: gitea-mirror-backend security_opt: - no-new-privileges:true networks: - proxy user: 1001:1001 environment: - NODE_ENV=production - HOST=0.0.0.0 - PORT=4321 - DATABASE_URL=file:data/gitea-mirror.db - BETTER_AUTH_URL=https://site-backend.example.com - BETTER_AUTH_TRUSTED_ORIGINS=https://site-backend.example.com - BETTER_AUTH_SECRET={Secret-here} - ENCRYPTION_SECRET={Secret-here} - GITHUB_USERNAME=Tailscale-VPS - GITHUB_TOKEN={Secret-here} - GITHUB_TYPE=personal - PRIVATE_REPOSITORIES=true - PUBLIC_REPOSITORIES=true - INCLUDE_ARCHIVED=false - SKIP_FORKS=false - MIRROR_STARRED=true - STARRED_REPOS_ORG=starred - MIRROR_ORGANIZATIONS=true - PRESERVE_ORG_STRUCTURE=true - ONLY_MIRROR_ORGS=false - MIRROR_STRATEGY=preserve - SKIP_STARRED_ISSUES=false - GITEA_URL=http://gitea-mirror:3000 - GITEA_TOKEN={Secret-here} - GITEA_USERNAME=homelab10400 - GITEA_ORGANIZATION=github-mirrors - GITEA_ORG_VISIBILITY=public - GITEA_MIRROR_INTERVAL=8h - GITEA_LFS=false - GITEA_CREATE_ORG=true - GITEA_PRESERVE_VISIBILITY=true - GITEA_ADD_TOPICS=true - GITEA_TOPIC_PREFIX=gh- - GITEA_FORK_STRATEGY=full-copy - MIRROR_RELEASES=true - MIRROR_WIKI=true - MIRROR_METADATA=true - MIRROR_ISSUES=true - MIRROR_PULL_REQUESTS=true - MIRROR_LABELS=true - MIRROR_MILESTONES=true - SCHEDULE_ENABLED=true - SCHEDULE_INTERVAL=3600 - SCHEDULE_CONCURRENT=false - SCHEDULE_BATCH_SIZE=10 - SCHEDULE_PAUSE_BETWEEN_BATCHES=5000 - SCHEDULE_RETRY_ATTEMPTS=3 - SCHEDULE_RETRY_DELAY=60000 - SCHEDULE_TIMEOUT=3600000 - SCHEDULE_AUTO_RETRY=true - SCHEDULE_ONLY_MIRROR_UPDATED=false - SCHEDULE_UPDATE_INTERVAL=86400000 - SCHEDULE_SKIP_RECENTLY_MIRRORED=true - SCHEDULE_RECENT_THRESHOLD=3600000 - SCHEDULE_CLEANUP_BEFORE_MIRROR=false - SCHEDULE_LOG_LEVEL=info - SCHEDULE_TIMEZONE=Asia/Kolkata - CLEANUP_ENABLED=true - CLEANUP_RETENTION_DAYS=7 - CLEANUP_DELETE_FROM_GITEA=true - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true - CLEANUP_ORPHANED_REPO_ACTION=archive - CLEANUP_DRY_RUN=false - CLEANUP_BATCH_SIZE=10 - CLEANUP_PAUSE_BETWEEN_DELETES=2000 volumes: - /home/ubuntu/docker/stacks/app-data/gitea-mirror-backend:/app/data labels: - traefik.enable=true - traefik.http.routers.gitea-mirror-backend-rtr.entrypoints=websecure - traefik.http.routers.gitea-mirror-backend-rtr.rule=Host(`site-backend.example.com`) - traefik.http.routers.gitea-mirror-backend-rtr.middlewares=chain-authelia@file - traefik.http.routers.gitea-mirror-backend-rtr.service=gitea-mirror-backend-svc - traefik.http.services.gitea-mirror-backend-svc.loadbalancer.server.port=4321 healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health", ] interval: 30s timeout: 10s retries: 5 start_period: 15s depends_on: - gitea-mirror restart: unless-stopped networks: proxy: external: true ``` Env Variables probably related to issue ``` - GITEA_MIRROR_INTERVAL=8h - SCHEDULE_ENABLED=true - SCHEDULE_INTERVAL=3600 - SCHEDULE_UPDATE_INTERVAL=86400000 - SCHEDULE_SKIP_RECENTLY_MIRRORED=true - SCHEDULE_RECENT_THRESHOLD=3600000 - CLEANUP_DELETE_FROM_GITEA=true - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true - CLEANUP_ORPHANED_REPO_ACTION=archive - CLEANUP_DRY_RUN=false ``` ![Image](https://github.com/user-attachments/assets/3c3b53b3-3817-4b1a-8827-2829ef1b60ad) ![Image](https://github.com/user-attachments/assets/693718ac-6628-47d2-b9dd-a15b02caeada) ![Image](https://github.com/user-attachments/assets/bff51a6e-32b0-49a2-9f3f-4be16828f592) ISSUES 1 - The GITEA_MIRROR_INTERVAL=8h counts time from the container startup OR from the time the repo was mirrored? Because as you can see i have mirrored the repos at August 9, 2025 at 11:00 PM and the container was restarted at August 10, 2025 at 04:00 AM. Till now there was no logs of mirroring again.Even when -SCHEDULE_INTERVAL=3600 Reason - Probably because of ? - SCHEDULE_UPDATE_INTERVAL=86400000 - SCHEDULE_SKIP_RECENTLY_MIRRORED=true - SCHEDULE_RECENT_THRESHOLD=3600000 2 - I have removed star from the winlator repo yesterday but its still not deleted from gite/gitea-mirror. Even though these flags are there - CLEANUP_DELETE_FROM_GITEA=true - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true - CLEANUP_ORPHANED_REPO_ACTION=archive - CLEANUP_DRY_RUN=false Reason - Same as for 1 After Solving the above, I believe you can aslo close https://github.com/RayLabsHQ/gitea-mirror/issues/50
kerem 2026-02-27 15:54:42 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 11, 2025):

UPDATE
It's been more than 24hr's that repo's was clonned and winlator was removed from starred from github, Still no automatic mirror/delete ran after that.

Image
Image
Image

So it's probably not the flags

  • SCHEDULE_UPDATE_INTERVAL=86400000
  • SCHEDULE_SKIP_RECENTLY_MIRRORED=true
  • SCHEDULE_RECENT_THRESHOLD=3600000

Container restarts at 4.00 AM IST

LOGS AFTER RESTART TILL NOW

gitea-mirror-backend-2025-08-11T12-04-47.log

<!-- gh-comment-id:3174503700 --> @Tailscale-VPS commented on GitHub (Aug 11, 2025): UPDATE It's been more than 24hr's that repo's was clonned and winlator was removed from starred from github, Still no automatic mirror/delete ran after that. ![Image](https://github.com/user-attachments/assets/bad5b939-fd9d-4715-a023-38fd9f956586) ![Image](https://github.com/user-attachments/assets/0c8435c6-af27-4a5f-bbaa-8066fc571ce1) ![Image](https://github.com/user-attachments/assets/e6e3bf64-9156-478d-a737-ee343e49d3d7) So it's probably not the flags - SCHEDULE_UPDATE_INTERVAL=86400000 - SCHEDULE_SKIP_RECENTLY_MIRRORED=true - SCHEDULE_RECENT_THRESHOLD=3600000 Container restarts at 4.00 AM IST LOGS AFTER RESTART TILL NOW [gitea-mirror-backend-2025-08-11T12-04-47.log](https://github.com/user-attachments/files/21714262/gitea-mirror-backend-2025-08-11T12-04-47.log)
Author
Owner

@arunavo4 commented on GitHub (Aug 12, 2025):

@Tailscale-VPS Thank you for the detailed logs and info. I will test and fix this today.

<!-- gh-comment-id:3177752950 --> @arunavo4 commented on GitHub (Aug 12, 2025): @Tailscale-VPS Thank you for the detailed logs and info. I will test and fix this today.
Author
Owner

@arunavo4 commented on GitHub (Aug 28, 2025):

@Tailscale-VPS Have a look at v3.3.0

<!-- gh-comment-id:3233826616 --> @arunavo4 commented on GitHub (Aug 28, 2025): @Tailscale-VPS Have a look at v3.3.0
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 28, 2025):

Sure ill test in within 24hrs.

<!-- gh-comment-id:3234680742 --> @Tailscale-VPS commented on GitHub (Aug 28, 2025): Sure ill test in within 24hrs.
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 29, 2025):

@arunavo4 Here are the new findings

Docker compose ENV used -

      - SCHEDULE_ENABLED=true
      - SCHEDULE_INTERVAL=300
      - SCHEDULE_CONCURRENT=true
      - SCHEDULE_BATCH_SIZE=5
      - SCHEDULE_PAUSE_BETWEEN_BATCHES=5000
      - SCHEDULE_RETRY_ATTEMPTS=3
      - SCHEDULE_RETRY_DELAY=60000
      - SCHEDULE_TIMEOUT=3600000
      - SCHEDULE_AUTO_RETRY=true
      - SCHEDULE_ONLY_MIRROR_UPDATED=false
      - SCHEDULE_UPDATE_INTERVAL=300000
      - SCHEDULE_SKIP_RECENTLY_MIRRORED=true
      - SCHEDULE_RECENT_THRESHOLD=3600000
      - SCHEDULE_CLEANUP_BEFORE_MIRROR=true
      - SCHEDULE_NOTIFY_ON_FAILURE=true
      - SCHEDULE_NOTIFY_ON_SUCCESS=false
      - SCHEDULE_LOG_LEVEL=infoaking it as 
      - SCHEDULE_TIMEZONE=Asia/Kolkata
      - CLEANUP_ENABLED=true
      - CLEANUP_RETENTION_DAYS=7
      - CLEANUP_DELETE_FROM_GITEA=true
      - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true
      - CLEANUP_ORPHANED_REPO_ACTION=archive
      - CLEANUP_DRY_RUN=false
      - CLEANUP_BATCH_SIZE=10
      - CLEANUP_PAUSE_BETWEEN_DELETES=2000

The sync is running at every 5min which is correct but then update interval value which it should also take 5min is not working correctly .

  • It's automatically taking/changing it as 24 hr. (Probably because visitiing the UI changes the value and UI variable value is > value set in compose ENV varibale)

  • Even if i set it to 1hr from the ui , It's functioning is not correct -
    It's counting the time from the last sync happened for eg is last sync is at 4.00 PM then update should be at 5.00 PM but a bit later last sync will be at 4.05 PM then the update is also changig to 5.05 PM.
    Considering the above the update will never happen until sync interval is > update interval.

  • I have tried removing satrred repo from github , but i dont know will it be removed from the mirror when the sync runs or when the update runs.
    If its deleted when the sync runs then its not working.
    If its when the update runs , then ill wait cuz the update part is a bit broken currently.

Questions/Suggestion

  • I beleive your are checking for the repos user have forked,starred,etc in its github and matching them to mirror when the update runs?
    If thats right the will it also pick up new starred,forked repos automatically when it runs update?
    If YES, then i will like to point out that when new repos are found (tested from clean setup and clicking on import from github) and if sync happens, then it will do noting because they are not mirrored yet, I don't know if itts a bug or not yet implemented.
    IN SHORT USER HAVE TO CLICK MIRROR FOR EVERY NEW REPO SO THAT MIRROR FUNCTION CORRECTLY

  • It's a minor thing but if say the above is not a bug and u were going to implemet it correctly then i would suggest to add a variable for Import from github also , currently even after setting up everything as ENV in compose , the user still needs to click on Import from github else repos will not come.

Ideally what should have happenned -

After initial setup,user should just need to do things with its github only, like fork,star new repos or remove old repos from starred.
In backend gitea mirror should do rest of the work like importing github repos and sync to gitea using compose parameters.

Log snippet if required -

Starting automatic mirror scheduler service...
[Scheduler] Starting scheduler service
[Scheduler] Scheduler service started, checking every 1m for scheduled tasks
[Scheduler] To trigger manual sync, check your configuration intervals and ensure SCHEDULE_ENABLED=true or use GITEA_MIRROR_INTERVAL
Starting repository cleanup service...
[Repository Cleanup] Starting repository cleanup service
[Repository Cleanup] Service started, checking every 6 hours
[Scheduler] No configurations with scheduling enabled (found 0 active configs)
[Repository Cleanup] No configurations with repository cleanup enabled
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-29T10:04:20.906Z
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-29T10:04:20.906Z
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */0 * * *
[Scheduler] Parsed interval "0 */0 * * *" as 0ms
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T10:01:53.647Z (in 0ms)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 2 * * *
[Scheduler] Parsed interval "0 2 * * *" as 1d
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:02:53.648Z (in 1d)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Starting automatic cleanup service...
Running cleanup for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI with 7 days retention (604800 seconds)
Cleanup completed for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 events, 0 jobs deleted
Updated cleanup config for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI, next run: 2025-08-30T10:03:53.645Z (24h interval for 7d retention)
Automatic cleanup completed. Processed 1 users.
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:03:53.652Z (in 1d)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:04:53.654Z (in 1d)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
🛑 Received shutdown signal, forwarding to application...
📡 Received SIGTERM signal
🛑 Graceful shutdown initiated by signal: SIGTERM
📊 Shutdown status: 0 active jobs, 3 callbacks
📝 Step 1: Saving active job states...
No active jobs to save
🔧 Step 2: Executing shutdown callbacks...
Executing 3 shutdown callbacks...
🛑 Shutting down cleanup service...
🛑 Stopping cleanup service...
✅ Cleanup service stopped
🛑 Shutting down scheduler service...
[Scheduler] Scheduler service stopped
🛑 Shutting down repository cleanup service...
[Repository Cleanup] Service stopped
✅ Shutdown callback 1 completed
✅ Shutdown callback 2 completed
✅ Shutdown callback 3 completed
✅ Completed all shutdown callbacks
💾 Step 3: Closing database connections...
✅ Graceful shutdown completed successfully
No custom CA certificates found in /app/certs
System CA bundle mounted, configuring Node.js to use it...
NODE_EXTRA_CA_CERTS set to: /etc/ssl/certs/ca-certificates.crt
Database already exists, checking for issues...
🔧 Fixing database location issues...
✅ Database location fixed
Database exists, checking integrity...
Setting application version: 3.3.0
Checking for environment configuration...
Loading configuration from environment variables...
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
=== Gitea Mirror Environment Configuration ===
Loading configuration from environment variables...
[ENV Config Loader] Found environment configuration, initializing...
[ENV Config Loader] Updating existing configuration with environment variables
[ENV Config Loader] Configuration initialized successfully from environment variables
✅ Environment configuration loaded successfully in 49ms
✅ Environment configuration loaded successfully
Running startup recovery...
Running startup recovery using compiled script...
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
=== Gitea Mirror Startup Recovery ===
Timeout: 30000ms
Force recovery: false
Checking if recovery is needed...
✅ No jobs need recovery. Startup can proceed.
✅ Startup recovery completed successfully
Running repository status repair...
Running repository repair using compiled script...
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
Repair process complete.
✅ Repository status repair completed successfully
Starting Gitea Mirror...
10:05:22 [@astrojs/node] Server listening on 
  local: https://localhost:4321 	
  network: https://172.19.0.16:4321/
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
🔧 Initializing shutdown manager and signal handlers...
🔧 Initializing shutdown manager...
✅ Shutdown manager initialized
🔧 Setting up signal handlers for graceful shutdown...
✅ Signal handlers registered successfully
✅ Shutdown manager and signal handlers initialized
[ENV Config Loader] Found environment configuration, initializing...
[ENV Config Loader] Updating existing configuration with environment variables
[ENV Config Loader] Configuration initialized successfully from environment variables
✅ No recovery needed (startup script likely handled it)
Starting automatic database cleanup service...
Starting background cleanup service...
✅ Cleanup service started. Will run every 60 minutes.
Starting automatic mirror scheduler service...
[Scheduler] Starting scheduler service
[Scheduler] Scheduler service started, checking every 1m for scheduled tasks
[Scheduler] To trigger manual sync, check your configuration intervals and ensure SCHEDULE_ENABLED=true or use GITEA_MIRROR_INTERVAL
Starting repository cleanup service...
[Repository Cleanup] Starting repository cleanup service
[Repository Cleanup] Service started, checking every 6 hours
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 300
[Scheduler] Parsed interval "300" as 5m
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T10:10:26.935Z (in 5m)
[Repository Cleanup] Processing 1 configurations
[Repository Cleanup] Starting repository cleanup for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Repository Cleanup] No orphaned repositories found for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Event published successfully with ID 21fa7afa-ef79-4207-a90b-63bb3e5af413
Event published successfully with ID b43261e9-060e-420e-b594-5f2f2950527d
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:06:26.933Z (in 1d)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:07:26.934Z (in 1d)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-30T10:07:26.934Z
Job 93f15e5d-08a0-4bc9-b665-5d093be2a0b5 has no log data
Job 6cd18a8b-d6d4-47e7-b7f7-1f38f58dc8b7 has no log data
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:09:26.936Z (in 1d)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Event published successfully with ID 5eec4545-6da5-4c0f-9eac-8130bb6af278
Created new job c927ae00-987c-4b21-a0f4-55f61fcb3de0 with 2 items
Registered active job: c927ae00-987c-4b21-a0f4-55f61fcb3de0 (1 total active jobs)
Starting mirror for repository: AdrenoToolsDrivers

[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */1 * * *
[Scheduler] Parsed interval "0 */1 * * *" as 1h
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T11:22:26.964Z (in 1h)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
Event published successfully with ID 3c051f2f-c278-417e-95b6-58973c1a28d8
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */1 * * *
[Scheduler] Parsed interval "0 */1 * * *" as 1h
[Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T11:23:26.966Z (in 1h)
[Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-29T11:23:26.966Z
Job 93f15e5d-08a0-4bc9-b665-5d093be2a0b5 has no log data
Job 6cd18a8b-d6d4-47e7-b7f7-1f38f58dc8b7 has no log data
Job c927ae00-987c-4b21-a0f4-55f61fcb3de0 has no log data
Job 8832a14b-54d7-4828-b39b-00e3263cc1be has no log data
Job 4a29014a-6dd0-421f-b42b-becd2532cefa has no log data

Image
Image
Image
Image
Image
Image

<!-- gh-comment-id:3236743924 --> @Tailscale-VPS commented on GitHub (Aug 29, 2025): @arunavo4 Here are the new findings Docker compose ENV used - ``` - SCHEDULE_ENABLED=true - SCHEDULE_INTERVAL=300 - SCHEDULE_CONCURRENT=true - SCHEDULE_BATCH_SIZE=5 - SCHEDULE_PAUSE_BETWEEN_BATCHES=5000 - SCHEDULE_RETRY_ATTEMPTS=3 - SCHEDULE_RETRY_DELAY=60000 - SCHEDULE_TIMEOUT=3600000 - SCHEDULE_AUTO_RETRY=true - SCHEDULE_ONLY_MIRROR_UPDATED=false - SCHEDULE_UPDATE_INTERVAL=300000 - SCHEDULE_SKIP_RECENTLY_MIRRORED=true - SCHEDULE_RECENT_THRESHOLD=3600000 - SCHEDULE_CLEANUP_BEFORE_MIRROR=true - SCHEDULE_NOTIFY_ON_FAILURE=true - SCHEDULE_NOTIFY_ON_SUCCESS=false - SCHEDULE_LOG_LEVEL=infoaking it as - SCHEDULE_TIMEZONE=Asia/Kolkata - CLEANUP_ENABLED=true - CLEANUP_RETENTION_DAYS=7 - CLEANUP_DELETE_FROM_GITEA=true - CLEANUP_DELETE_IF_NOT_IN_GITHUB=true - CLEANUP_ORPHANED_REPO_ACTION=archive - CLEANUP_DRY_RUN=false - CLEANUP_BATCH_SIZE=10 - CLEANUP_PAUSE_BETWEEN_DELETES=2000 ``` The sync is running at every 5min which is correct but then update interval value which it should also take 5min is not working correctly . - It's automatically taking/changing it as 24 hr. (Probably because visitiing the UI changes the value and UI variable value is > value set in compose ENV varibale) - Even if i set it to 1hr from the ui , It's functioning is not correct - It's counting the time from the last sync happened for eg is last sync is at 4.00 PM then update should be at 5.00 PM but a bit later last sync will be at 4.05 PM then the update is also changig to 5.05 PM. Considering the above the update will never happen until sync interval is > update interval. - I have tried removing satrred repo from github , but i dont know will it be removed from the mirror when the sync runs or when the update runs. If its deleted when the sync runs then its not working. If its when the update runs , then ill wait cuz the update part is a bit broken currently. **Questions/Suggestion** - I beleive your are checking for the repos user have forked,starred,etc in its github and matching them to mirror when the update runs? If thats right the will it also pick up new starred,forked repos automatically when it runs update? If YES, then i will like to point out that when new repos are found (tested from clean setup and clicking on import from github) and if sync happens, then it will do noting because they are not mirrored yet, I don't know if itts a bug or not yet implemented. IN SHORT USER HAVE TO CLICK MIRROR FOR EVERY NEW REPO SO THAT MIRROR FUNCTION CORRECTLY - It's a minor thing but if say the above is not a bug and u were going to implemet it correctly then i would suggest to add a variable for Import from github also , currently even after setting up everything as ENV in compose , the user still needs to click on Import from github else repos will not come. Ideally what should have happenned - After initial setup,user should just need to do things with its github only, like fork,star new repos or remove old repos from starred. In backend gitea mirror should do rest of the work like importing github repos and sync to gitea using compose parameters. Log snippet if required - ``` Starting automatic mirror scheduler service... [Scheduler] Starting scheduler service [Scheduler] Scheduler service started, checking every 1m for scheduled tasks [Scheduler] To trigger manual sync, check your configuration intervals and ensure SCHEDULE_ENABLED=true or use GITEA_MIRROR_INTERVAL Starting repository cleanup service... [Repository Cleanup] Starting repository cleanup service [Repository Cleanup] Service started, checking every 6 hours [Scheduler] No configurations with scheduling enabled (found 0 active configs) [Repository Cleanup] No configurations with repository cleanup enabled [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-29T10:04:20.906Z [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-29T10:04:20.906Z [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */0 * * * [Scheduler] Parsed interval "0 */0 * * *" as 0ms [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T10:01:53.647Z (in 0ms) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 2 * * * [Scheduler] Parsed interval "0 2 * * *" as 1d [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:02:53.648Z (in 1d) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Starting automatic cleanup service... Running cleanup for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI with 7 days retention (604800 seconds) Cleanup completed for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 events, 0 jobs deleted Updated cleanup config for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI, next run: 2025-08-30T10:03:53.645Z (24h interval for 7d retention) Automatic cleanup completed. Processed 1 users. [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:03:53.652Z (in 1d) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:04:53.654Z (in 1d) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI 🛑 Received shutdown signal, forwarding to application... 📡 Received SIGTERM signal 🛑 Graceful shutdown initiated by signal: SIGTERM 📊 Shutdown status: 0 active jobs, 3 callbacks 📝 Step 1: Saving active job states... No active jobs to save 🔧 Step 2: Executing shutdown callbacks... Executing 3 shutdown callbacks... 🛑 Shutting down cleanup service... 🛑 Stopping cleanup service... ✅ Cleanup service stopped 🛑 Shutting down scheduler service... [Scheduler] Scheduler service stopped 🛑 Shutting down repository cleanup service... [Repository Cleanup] Service stopped ✅ Shutdown callback 1 completed ✅ Shutdown callback 2 completed ✅ Shutdown callback 3 completed ✅ Completed all shutdown callbacks 💾 Step 3: Closing database connections... ✅ Graceful shutdown completed successfully No custom CA certificates found in /app/certs System CA bundle mounted, configuring Node.js to use it... NODE_EXTRA_CA_CERTS set to: /etc/ssl/certs/ca-certificates.crt Database already exists, checking for issues... 🔧 Fixing database location issues... ✅ Database location fixed Database exists, checking integrity... Setting application version: 3.3.0 Checking for environment configuration... Loading configuration from environment variables... Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully === Gitea Mirror Environment Configuration === Loading configuration from environment variables... [ENV Config Loader] Found environment configuration, initializing... [ENV Config Loader] Updating existing configuration with environment variables [ENV Config Loader] Configuration initialized successfully from environment variables ✅ Environment configuration loaded successfully in 49ms ✅ Environment configuration loaded successfully Running startup recovery... Running startup recovery using compiled script... Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully === Gitea Mirror Startup Recovery === Timeout: 30000ms Force recovery: false Checking if recovery is needed... ✅ No jobs need recovery. Startup can proceed. ✅ Startup recovery completed successfully Running repository status repair... Running repository repair using compiled script... Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully Repair process complete. ✅ Repository status repair completed successfully Starting Gitea Mirror... 10:05:22 [@astrojs/node] Server listening on local: https://localhost:4321 network: https://172.19.0.16:4321/ Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully 🔧 Initializing shutdown manager and signal handlers... 🔧 Initializing shutdown manager... ✅ Shutdown manager initialized 🔧 Setting up signal handlers for graceful shutdown... ✅ Signal handlers registered successfully ✅ Shutdown manager and signal handlers initialized [ENV Config Loader] Found environment configuration, initializing... [ENV Config Loader] Updating existing configuration with environment variables [ENV Config Loader] Configuration initialized successfully from environment variables ✅ No recovery needed (startup script likely handled it) Starting automatic database cleanup service... Starting background cleanup service... ✅ Cleanup service started. Will run every 60 minutes. Starting automatic mirror scheduler service... [Scheduler] Starting scheduler service [Scheduler] Scheduler service started, checking every 1m for scheduled tasks [Scheduler] To trigger manual sync, check your configuration intervals and ensure SCHEDULE_ENABLED=true or use GITEA_MIRROR_INTERVAL Starting repository cleanup service... [Repository Cleanup] Starting repository cleanup service [Repository Cleanup] Service started, checking every 6 hours [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 300 [Scheduler] Parsed interval "300" as 5m [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T10:10:26.935Z (in 5m) [Repository Cleanup] Processing 1 configurations [Repository Cleanup] Starting repository cleanup for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Repository Cleanup] No orphaned repositories found for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Event published successfully with ID 21fa7afa-ef79-4207-a90b-63bb3e5af413 Event published successfully with ID b43261e9-060e-420e-b594-5f2f2950527d [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:06:26.933Z (in 1d) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:07:26.934Z (in 1d) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-30T10:07:26.934Z Job 93f15e5d-08a0-4bc9-b665-5d093be2a0b5 has no log data Job 6cd18a8b-d6d4-47e7-b7f7-1f38f58dc8b7 has no log data [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-30T10:09:26.936Z (in 1d) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Event published successfully with ID 5eec4545-6da5-4c0f-9eac-8130bb6af278 Created new job c927ae00-987c-4b21-a0f4-55f61fcb3de0 with 2 items Registered active job: c927ae00-987c-4b21-a0f4-55f61fcb3de0 (1 total active jobs) Starting mirror for repository: AdrenoToolsDrivers [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */1 * * * [Scheduler] Parsed interval "0 */1 * * *" as 1h [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T11:22:26.964Z (in 1h) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Publishing event to channel mirror-status:JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI Event published successfully with ID 3c051f2f-c278-417e-95b6-58973c1a28d8 [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Using interval source for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI: 0 */1 * * * [Scheduler] Parsed interval "0 */1 * * *" as 1h [Scheduler] Next sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI scheduled for: 2025-08-29T11:23:26.966Z (in 1h) [Scheduler] No repositories to sync for user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Skipping user JWfDpcgqdR6xvQEGAdQ3IhnferRmEQQI - next run at 2025-08-29T11:23:26.966Z Job 93f15e5d-08a0-4bc9-b665-5d093be2a0b5 has no log data Job 6cd18a8b-d6d4-47e7-b7f7-1f38f58dc8b7 has no log data Job c927ae00-987c-4b21-a0f4-55f61fcb3de0 has no log data Job 8832a14b-54d7-4828-b39b-00e3263cc1be has no log data Job 4a29014a-6dd0-421f-b42b-becd2532cefa has no log data ``` ![Image](https://github.com/user-attachments/assets/dba3e406-60cb-4333-bf01-dc0ae869739d) ![Image](https://github.com/user-attachments/assets/d5490b0a-3c01-411a-85e8-ecfd8c55a4d8) ![Image](https://github.com/user-attachments/assets/98f3e470-319a-438a-8e1b-6c59104ed36c) ![Image](https://github.com/user-attachments/assets/86b2e5a7-1a78-496a-8159-7272c90eb9b9) ![Image](https://github.com/user-attachments/assets/8d219bf7-e55f-48a2-8da1-0d29afe44f7b) ![Image](https://github.com/user-attachments/assets/ba1245f7-f841-482b-8dd4-cc117fe292b4)
Author
Owner

@arunavo4 commented on GitHub (Aug 29, 2025):

@Tailscale-VPS Looking into it, also what is the screen resolution of this android tablet I am guessing?. I want to optimse the UI better.

<!-- gh-comment-id:3236758583 --> @arunavo4 commented on GitHub (Aug 29, 2025): @Tailscale-VPS Looking into it, also what is the screen resolution of this android tablet I am guessing?. I want to optimse the UI better.
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 29, 2025):

@Tailscale-VPS Looking into it, also what is the screen resolution of this android tablet I am guessing?. I want to optimse the UI better.

Yes its a Tab
Aspect Ratio - 7:5
Resolution- 3000 x 2120 (303 PPI)

<!-- gh-comment-id:3236789534 --> @Tailscale-VPS commented on GitHub (Aug 29, 2025): > [@Tailscale-VPS](https://github.com/Tailscale-VPS) Looking into it, also what is the screen resolution of this android tablet I am guessing?. I want to optimse the UI better. Yes its a [Tab](https://www.gsmarena.com/oneplus_pad_2-13210.php) Aspect Ratio - 7:5 Resolution- 3000 x 2120 (303 PPI)
Author
Owner

@arunavo4 commented on GitHub (Aug 29, 2025):

@Tailscale-VPS Try v3.5.0 I have updated the UI and also your automation stuff, taken all your suggestions.

<!-- gh-comment-id:3237504351 --> @arunavo4 commented on GitHub (Aug 29, 2025): @Tailscale-VPS Try v3.5.0 I have updated the UI and also your automation stuff, taken all your suggestions.
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 29, 2025):

@arunavo4 checked v3.5.0 UI looks good and here is what i have found -

  • The Auto import is working as expected (Even tested 2-3 times again and again, it works fine for initial setup and also when the schedular runs)

  • Auto mirroring still not works , So repos are stuck to imported only.

  • Schedular logic seems to work fine now (Also in logs u can see it tries to delete the winlator repo when schedular runs so i believe the delete functionality is also working fine, ignore the errors those are there because there was no repo named winlator in gitea as it was not mirrored)

  • Talking about the Scheduling time,It's not working correctly.It still has same issue and i think i found out why it's behaving this way.

What is happenning
After the initial setup using compose variables it will work fine as long as the user has not visited the configuration page from the UI.
What happens is as u are using UI values preference > Compose ENV, and you have also defined default vaules for sync and database cleanup in UI (Daily and Weekly).
The compose Env is getting overidden when the user visits the UI configuration page (You can see in log2 or in the Screenshots)

Why does this not happen earlier
The reason is simple, because other settings were blank and there were no default prefilled values, and after taking the compose env values , The UI values becomes = Compose ENV values , so no issue happens.

Suggestion
We can either remove default value from the Automation part of the UI OR we need to put a custom option there so that default value = Custom ,
And the custom value either user can put through UI or it will be filled directly through compose ENV like rest of the values.

gitea-mirror-backend-2025-08-29T17-46-11.log

gitea-mirror-backend-2025-08-29T17-57-23.log

Image
Image
Image
Image

<!-- gh-comment-id:3237848924 --> @Tailscale-VPS commented on GitHub (Aug 29, 2025): @arunavo4 checked v3.5.0 UI looks good and here is what i have found - - The Auto import is working as expected (Even tested 2-3 times again and again, it works fine for initial setup and also when the schedular runs) - Auto mirroring still not works , So repos are stuck to imported only. - Schedular logic seems to work fine now (Also in logs u can see it tries to delete the winlator repo when schedular runs so i believe the delete functionality is also working fine, ignore the errors those are there because there was no repo named winlator in gitea as it was not mirrored) - Talking about the Scheduling time,It's not working correctly.It still has same issue and i think i found out why it's behaving this way. **What is happenning** After the initial setup using compose variables it will work fine as long as the user has not visited the configuration page from the UI. What happens is as u are using UI values preference > Compose ENV, and you have also defined default vaules for sync and database cleanup in UI (Daily and Weekly). The compose Env is getting overidden when the user visits the UI configuration page (You can see in log2 or in the Screenshots) **Why does this not happen earlier** The reason is simple, because other settings were blank and there were no default prefilled values, and after taking the compose env values , The UI values becomes = Compose ENV values , so no issue happens. **Suggestion** We can either remove default value from the Automation part of the UI OR we need to put a custom option there so that default value = Custom , And the custom value either user can put through UI or it will be filled directly through compose ENV like rest of the values. [gitea-mirror-backend-2025-08-29T17-46-11.log](https://github.com/user-attachments/files/22051503/gitea-mirror-backend-2025-08-29T17-46-11.log) [gitea-mirror-backend-2025-08-29T17-57-23.log](https://github.com/user-attachments/files/22051504/gitea-mirror-backend-2025-08-29T17-57-23.log) ![Image](https://github.com/user-attachments/assets/c23eec8a-a5bd-4706-a8ee-920d53dda6cd) ![Image](https://github.com/user-attachments/assets/605bebb2-8bc1-47f8-b704-c81febaf1d8e) ![Image](https://github.com/user-attachments/assets/128251da-7178-40c6-9434-f9cdf24f02fc) ![Image](https://github.com/user-attachments/assets/9338f865-490b-4a6c-a263-4aa47bc4eec5)
Author
Owner

@arunavo4 commented on GitHub (Aug 29, 2025):

@Tailscale-VPS thanks for the detailed info. Btw there is no automatic mirroring at the start. You need to first mirror the repos and only then automatic mirroring starts. Okay maybe now I understand the confusion I should change it to automatic syncing sorry for wording it wrong.

But you need to first start the mirroring manually using either mirror all button or mirroring them one by one. The reason this is done so that people who don't want to mirror certain repos can skip repos and do all that so that automatic syncing can start.

<!-- gh-comment-id:3237934630 --> @arunavo4 commented on GitHub (Aug 29, 2025): @Tailscale-VPS thanks for the detailed info. Btw there is no automatic mirroring at the start. You need to first mirror the repos and only then automatic mirroring starts. Okay maybe now I understand the confusion I should change it to automatic syncing sorry for wording it wrong. But you need to first start the mirroring manually using either mirror all button or mirroring them one by one. The reason this is done so that people who don't want to mirror certain repos can skip repos and do all that so that automatic syncing can start.
Author
Owner

@arunavo4 commented on GitHub (Aug 29, 2025):

@Tailscale-VPS v3.5.1

  • Fixed scheduling configuration being overridden by UI defaults when loading the config page, preserving ENV variable values correctly
  • Updated UI text from "Automatic Mirroring" to "Automatic Syncing" to clarify that this feature only synchronizes already-mirrored repositories
<!-- gh-comment-id:3237984060 --> @arunavo4 commented on GitHub (Aug 29, 2025): @Tailscale-VPS v3.5.1 - Fixed scheduling configuration being overridden by UI defaults when loading the config page, preserving ENV variable values correctly - Updated UI text from "Automatic Mirroring" to "Automatic Syncing" to clarify that this feature only synchronizes already-mirrored repositories
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 29, 2025):

@Tailscale-VPS v3.5.1

  • Fixed scheduling configuration being overridden by UI defaults when loading the config page, preserving ENV variable values correctly
  • Updated UI text from "Automatic Mirroring" to "Automatic Syncing" to clarify that this feature only synchronizes already-mirrored repositories
  • Still getting overridden i believe.
Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 300
[Scheduler] Parsed interval "300" as 5m
[Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-29T20:21:56.409Z (in 5m)
[Scheduler] Checking for new GitHub repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ...
[Scheduler] Found 2 new repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Successfully imported 2 new repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Checking for orphaned repositories to cleanup for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ...
[Scheduler] No orphaned repositories found for cleanup
[Scheduler] No repositories to sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
 
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Skipping user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ - next run at 2025-08-29T20:21:56.409Z
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-30T20:19:56.411Z (in 1d)
[Scheduler] Checking for new GitHub repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ...
[Scheduler] No new repositories found for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Checking for orphaned repositories to cleanup for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ...
[Scheduler] No orphaned repositories found for cleanup
[Scheduler] No repositories to sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-30T20:20:56.412Z (in 1d)
[Scheduler] Checking for new GitHub repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ...
[Scheduler] No new repositories found for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Checking for orphaned repositories to cleanup for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ...
[Scheduler] No orphaned repositories found for cleanup
[Scheduler] No repositories to sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs)
[Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ
[Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-30T20:21:56.414Z (in 1d)

<!-- gh-comment-id:3238189273 --> @Tailscale-VPS commented on GitHub (Aug 29, 2025): > [@Tailscale-VPS](https://github.com/Tailscale-VPS) v3.5.1 > > * Fixed scheduling configuration being overridden by UI defaults when loading the config page, preserving ENV variable values correctly > * Updated UI text from "Automatic Mirroring" to "Automatic Syncing" to clarify that this feature only synchronizes already-mirrored repositories - Still getting overridden i believe. ``` Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 300 [Scheduler] Parsed interval "300" as 5m [Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-29T20:21:56.409Z (in 5m) [Scheduler] Checking for new GitHub repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ... [Scheduler] Found 2 new repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Successfully imported 2 new repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Checking for orphaned repositories to cleanup for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ... [Scheduler] No orphaned repositories found for cleanup [Scheduler] No repositories to sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Skipping user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ - next run at 2025-08-29T20:21:56.409Z [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-30T20:19:56.411Z (in 1d) [Scheduler] Checking for new GitHub repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ... [Scheduler] No new repositories found for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Checking for orphaned repositories to cleanup for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ... [Scheduler] No orphaned repositories found for cleanup [Scheduler] No repositories to sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-30T20:20:56.412Z (in 1d) [Scheduler] Checking for new GitHub repositories for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ... [Scheduler] No new repositories found for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Checking for orphaned repositories to cleanup for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ... [Scheduler] No orphaned repositories found for cleanup [Scheduler] No repositories to sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Processing 1 configurations with scheduling enabled (out of 1 total active configs) [Scheduler] Running scheduled sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ [Scheduler] Using interval source for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user 7z4cI3hAJONA7MWQ8XnFuikTtcMi2ztZ scheduled for: 2025-08-30T20:21:56.414Z (in 1d) ```
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 29, 2025):

@Tailscale-VPS thanks for the detailed info. Btw there is no automatic mirroring at the start. You need to first mirror the repos and only then automatic mirroring starts. Okay maybe now I understand the confusion I should change it to automatic syncing sorry for wording it wrong.

But you need to first start the mirroring manually using either mirror all button or mirroring them one by one. The reason this is done so that people who don't want to mirror certain repos can skip repos and do all that so that automatic syncing can start.

I understand your logic, but as now most of stuff is automated and we have ignore repos also, And considering the nature of the tool isint auto mirroring should be an option ? Like we have for auto import.

And for the people who don't want to mirror certain repos they can always set the value to false or we can choose the default value to be false.

<!-- gh-comment-id:3238196113 --> @Tailscale-VPS commented on GitHub (Aug 29, 2025): > [@Tailscale-VPS](https://github.com/Tailscale-VPS) thanks for the detailed info. Btw there is no automatic mirroring at the start. You need to first mirror the repos and only then automatic mirroring starts. Okay maybe now I understand the confusion I should change it to automatic syncing sorry for wording it wrong. > > But you need to first start the mirroring manually using either mirror all button or mirroring them one by one. The reason this is done so that people who don't want to mirror certain repos can skip repos and do all that so that automatic syncing can start. I understand your logic, but as now most of stuff is automated and we have ignore repos also, And considering the nature of the tool isint auto mirroring should be an option ? Like we have for auto import. And for the people who don't want to mirror certain repos they can always set the value to false or we can choose the default value to be false.
Author
Owner

@arunavo4 commented on GitHub (Aug 30, 2025):

So you are saying you don't want to use the mirror all button from the UI rather setup everything in ENV variables and then it all starts mirroring and syncing directly right? Like how it's auto importing if you have the env variables setup

<!-- gh-comment-id:3238865181 --> @arunavo4 commented on GitHub (Aug 30, 2025): So you are saying you don't want to use the mirror all button from the UI rather setup everything in ENV variables and then it all starts mirroring and syncing directly right? Like how it's auto importing if you have the env variables setup
Author
Owner

@Tailscale-VPS commented on GitHub (Aug 30, 2025):

So you are saying you don't want to use the mirror all button from the UI rather setup everything in ENV variables and then it all starts mirroring and syncing directly right? Like how it's auto importing if you have the env variables setup

Something similar.
We can keep the mirror button and its functionality as it is but can also add an ENV similar to

AUTO_IMPORT_REPOS=true  # Automatically discover and import new GitHub repositories

Like

AUTO_MIRROR_REPOS=false  # Automatically discover and mirror imported GitHub repositories

Why is it false by default and why keep mirror button if using ENV
It's will be false by default because as u said there are some people who don't want to mirror certain repos.

This way those who want full automation can enable it and those who want only specific repos to be mirrored, they dont need to do anything as its disabled by default , they will keep using thte mirror button same as always.

<!-- gh-comment-id:3238929692 --> @Tailscale-VPS commented on GitHub (Aug 30, 2025): > So you are saying you don't want to use the mirror all button from the UI rather setup everything in ENV variables and then it all starts mirroring and syncing directly right? Like how it's auto importing if you have the env variables setup Something similar. We can keep the mirror button and its functionality as it is but can also add an ENV similar to ``` AUTO_IMPORT_REPOS=true # Automatically discover and import new GitHub repositories ``` Like ``` AUTO_MIRROR_REPOS=false # Automatically discover and mirror imported GitHub repositories ``` **Why is it false by default and why keep mirror button if using ENV** It's will be false by default because as u said there are some people who don't want to mirror certain repos. This way those who want full automation can enable it and those who want only specific repos to be mirrored, they dont need to do anything as its disabled by default , they will keep using thte mirror button same as always.
Author
Owner

@arunavo4 commented on GitHub (Aug 30, 2025):

@Tailscale-VPS Thanks will add this.

<!-- gh-comment-id:3238987311 --> @arunavo4 commented on GitHub (Aug 30, 2025): @Tailscale-VPS Thanks will add this.
Author
Owner

@arunavo4 commented on GitHub (Sep 7, 2025):

@Tailscale-VPS v3.5.3

<!-- gh-comment-id:3263693514 --> @arunavo4 commented on GitHub (Sep 7, 2025): @Tailscale-VPS v3.5.3
Author
Owner

@Tailscale-VPS commented on GitHub (Sep 7, 2025):

@arunavo4 Tested v3.5.3 -

  • Schedule is not fixed , it still get overidden when the user loads the Web ui and goes into the automation section.

Image

Publishing event to channel repository for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
Event published successfully with ID 4e5cd5f5-ab75-4dda-bb20-7eab084d835a
[Scheduler] Handled orphaned repository: Tailscale-VPS/test
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Running scheduled sync for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
[Scheduler] Using interval source for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7: 0 */24 * * *
[Scheduler] Parsed interval "0 */24 * * *" as 1d
[Scheduler] Next sync for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 scheduled for: 2025-09-08T12:49:11.047Z (in 1d)
  • As for the Auto mirror part, i believe this is how it should have worked?

User created container > Every Repo is Imported > Imported Repos are automatically mirrored on next sync

From what i tested it's working till step 2, i have set the sync interval for 5min to test and waited for about 20 mins seeing multiple logs about the interval passing, but the Imported repos were not mirrored,
But when i restarted the container the Imported repos were automatically started mirroring.

Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 - next run at 2025-09-08T12:49:11.047Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 - next run at 2025-09-08T12:49:11.047Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 - next run at 2025-09-08T12:49:11.047Z
🛑 Received shutdown signal, forwarding to application...
📡 Received SIGTERM signal
🛑 Graceful shutdown initiated by signal: SIGTERM
📊 Shutdown status: 0 active jobs, 3 callbacks
📝 Step 1: Saving active job states...
No active jobs to save
🔧 Step 2: Executing shutdown callbacks...
Executing 3 shutdown callbacks...
🛑 Shutting down cleanup service...
🛑 Stopping cleanup service...
✅ Cleanup service stopped
🛑 Shutting down scheduler service...
[Scheduler] Scheduler service stopped
🛑 Shutting down repository cleanup service...
[Repository Cleanup] Service stopped
✅ Shutdown callback 1 completed
✅ Shutdown callback 2 completed
✅ Shutdown callback 3 completed
✅ Completed all shutdown callbacks
💾 Step 3: Closing database connections...
✅ Graceful shutdown completed successfully
No custom CA certificates found in /app/certs
System CA bundle mounted, configuring Node.js to use it...
NODE_EXTRA_CA_CERTS set to: /etc/ssl/certs/ca-certificates.crt
Database already exists, checking for issues...
🔧 Fixing database location issues...
✅ Database location fixed
Database exists, checking integrity...
Setting application version: 3.5.3
Checking for environment configuration...
Loading configuration from environment variables...
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
=== Gitea Mirror Environment Configuration ===
Loading configuration from environment variables...
[ENV Config Loader] Found environment configuration, initializing...
[ENV Config Loader] Updating existing configuration with environment variables
[ENV Config Loader] Configuration initialized successfully from environment variables
✅ Environment configuration loaded successfully in 52ms
✅ Environment configuration loaded successfully
Running startup recovery...
Running startup recovery using compiled script...
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
=== Gitea Mirror Startup Recovery ===
Timeout: 30000ms
Force recovery: false
Checking if recovery is needed...
✅ No jobs need recovery. Startup can proceed.
✅ Startup recovery completed successfully
Running repository status repair...
Running repository repair using compiled script...
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
Repair process complete.
✅ Repository status repair completed successfully
Starting Gitea Mirror...
12:53:46 [@astrojs/node] Server listening on 
  local: https://localhost:4321 	
  network: https://172.19.0.15:4321
Successfully connected to SQLite database using Bun's native driver
🔄 Checking for pending migrations...
✅ Database migrations completed successfully
🔧 Initializing shutdown manager and signal handlers...
🔧 Initializing shutdown manager...
✅ Shutdown manager initialized
🔧 Setting up signal handlers for graceful shutdown...
✅ Signal handlers registered successfully
✅ Shutdown manager and signal handlers initialized
[ENV Config Loader] Found environment configuration, initializing...
[ENV Config Loader] Updating existing configuration with environment variables
[ENV Config Loader] Configuration initialized successfully from environment variables
✅ Environment configuration loaded after user creation
✅ No recovery needed (startup script likely handled it)
Starting automatic database cleanup service...
Starting background cleanup service...
✅ Cleanup service started. Will run every 60 minutes.
Starting automatic mirror scheduler service...
[Scheduler] Starting scheduler service
Starting repository cleanup service...
[Repository Cleanup] Starting repository cleanup service
[Repository Cleanup] Service started, checking every 6 hours
[Scheduler] Auto-start conditions met for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 (scheduleEnabled=true, hasMirrorInterval=true)
[Repository Cleanup] Processing 1 configurations
[Repository Cleanup] Starting repository cleanup for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
[Scheduler] Auto-start detected from environment variables, triggering initial import and mirror...
[Scheduler] Performing initial auto-start...
[Scheduler] Auto-starting for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7...
[Scheduler] Step 1: Importing repositories from GitHub for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7...
[Repository Cleanup] Found 2 orphaned repositories for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
[Repository Cleanup] Found 2 orphaned repositories for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
[Repository Cleanup] Archiving orphaned repository Tailscale-VPS/test in Gitea
[Scheduler] No new repositories to import for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
[Scheduler] Step 2: Triggering mirror for repositories that need mirroring...
[Scheduler] Found 1 repositories that need mirroring
[Scheduler] Processing batch 1 of 1 (1 repos)
[Archive] Repository Tailscale-VPS/test data is preserved but not marked as archived
Publishing event to channel repository for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
Event published successfully with ID 8ab0f930-1331-4690-b614-caf789b4f3b3
Mirroring repository winlator
Publishing event to channel mirror-status:ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
Event published successfully with ID bf77d986-90af-4cb1-941c-3226e7bf2a4e
[Org Creation] Validating user authentication before organization operations
[Org Creation] Authenticated as user: homelab10400 (ID: 1)
[Org Creation] Attempting to get or create organization: starred (attempt 1/3)
[Org Creation] Organization starred already exists with ID: 7
[Repository Cleanup] Archiving orphaned repository Tailscale-VPS/test in Gitea
[Archive] Repository starred/test data is preserved but not marked as archived
Publishing event to channel repository for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7
Event published successfully with ID 45235502-8075-4e99-9b36-8601c0e31a5f
[Repository Cleanup] Completed cleanup for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7: 2/2 processed
Job d1558b54-8ef4-48fb-8d1d-a946e553692b has no log data
Job 21af92ea-725c-4435-a5fd-7c9c6ebb7d76 has no log data
Job 895b41b9-9a93-4eb1-b8a6-8aaee709426b has no log data
[Metadata] Release mirroring check: mirrorReleases=true
[Releases] Verifying repository winlator exists at starred
[Releases] Found 10 releases (limited to latest 10) to mirror for brunodev85/winlator
[Releases] Including changelog for v10.1.0 (1188 characters)
[Releases] Mirroring 1 assets for release v10.1.0
[Releases] Downloading asset: Winlator_10.1.apk (147778434 bytes)
[Releases] Successfully uploaded asset: Winlator_10.1.apk
[Releases] Successfully mirrored release: v10.1.0 with 1188 character changelog
[Releases] Including changelog for v10.0.0 (1820 characters)
[Releases] Mirroring 1 assets for release v10.0.0
[Releases] Downloading asset: Winlator_10.0.apk (147685565 bytes)
[Releases] Successfully uploaded asset: Winlator_10.0.apk

<!-- gh-comment-id:3263755421 --> @Tailscale-VPS commented on GitHub (Sep 7, 2025): @arunavo4 Tested v3.5.3 - - Schedule is not fixed , it still get overidden when the user loads the Web ui and goes into the automation section. ![Image](https://github.com/user-attachments/assets/043a83c3-5322-4ff6-8b44-06ed388b9ba3) ``` Publishing event to channel repository for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 Event published successfully with ID 4e5cd5f5-ab75-4dda-bb20-7eab084d835a [Scheduler] Handled orphaned repository: Tailscale-VPS/test [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Running scheduled sync for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 [Scheduler] Using interval source for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7: 0 */24 * * * [Scheduler] Parsed interval "0 */24 * * *" as 1d [Scheduler] Next sync for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 scheduled for: 2025-09-08T12:49:11.047Z (in 1d) ``` - As for the Auto mirror part, i believe this is how it should have worked? User created container > Every Repo is Imported > Imported Repos are automatically mirrored on next sync From what i tested it's working till step 2, i have set the sync interval for 5min to test and waited for about 20 mins seeing multiple logs about the interval passing, but the Imported repos were not mirrored, But when i restarted the container the Imported repos were automatically started mirroring. ``` Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 - next run at 2025-09-08T12:49:11.047Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 - next run at 2025-09-08T12:49:11.047Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 - next run at 2025-09-08T12:49:11.047Z 🛑 Received shutdown signal, forwarding to application... 📡 Received SIGTERM signal 🛑 Graceful shutdown initiated by signal: SIGTERM 📊 Shutdown status: 0 active jobs, 3 callbacks 📝 Step 1: Saving active job states... No active jobs to save 🔧 Step 2: Executing shutdown callbacks... Executing 3 shutdown callbacks... 🛑 Shutting down cleanup service... 🛑 Stopping cleanup service... ✅ Cleanup service stopped 🛑 Shutting down scheduler service... [Scheduler] Scheduler service stopped 🛑 Shutting down repository cleanup service... [Repository Cleanup] Service stopped ✅ Shutdown callback 1 completed ✅ Shutdown callback 2 completed ✅ Shutdown callback 3 completed ✅ Completed all shutdown callbacks 💾 Step 3: Closing database connections... ✅ Graceful shutdown completed successfully No custom CA certificates found in /app/certs System CA bundle mounted, configuring Node.js to use it... NODE_EXTRA_CA_CERTS set to: /etc/ssl/certs/ca-certificates.crt Database already exists, checking for issues... 🔧 Fixing database location issues... ✅ Database location fixed Database exists, checking integrity... Setting application version: 3.5.3 Checking for environment configuration... Loading configuration from environment variables... Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully === Gitea Mirror Environment Configuration === Loading configuration from environment variables... [ENV Config Loader] Found environment configuration, initializing... [ENV Config Loader] Updating existing configuration with environment variables [ENV Config Loader] Configuration initialized successfully from environment variables ✅ Environment configuration loaded successfully in 52ms ✅ Environment configuration loaded successfully Running startup recovery... Running startup recovery using compiled script... Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully === Gitea Mirror Startup Recovery === Timeout: 30000ms Force recovery: false Checking if recovery is needed... ✅ No jobs need recovery. Startup can proceed. ✅ Startup recovery completed successfully Running repository status repair... Running repository repair using compiled script... Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully Repair process complete. ✅ Repository status repair completed successfully Starting Gitea Mirror... 12:53:46 [@astrojs/node] Server listening on local: https://localhost:4321 network: https://172.19.0.15:4321 Successfully connected to SQLite database using Bun's native driver 🔄 Checking for pending migrations... ✅ Database migrations completed successfully 🔧 Initializing shutdown manager and signal handlers... 🔧 Initializing shutdown manager... ✅ Shutdown manager initialized 🔧 Setting up signal handlers for graceful shutdown... ✅ Signal handlers registered successfully ✅ Shutdown manager and signal handlers initialized [ENV Config Loader] Found environment configuration, initializing... [ENV Config Loader] Updating existing configuration with environment variables [ENV Config Loader] Configuration initialized successfully from environment variables ✅ Environment configuration loaded after user creation ✅ No recovery needed (startup script likely handled it) Starting automatic database cleanup service... Starting background cleanup service... ✅ Cleanup service started. Will run every 60 minutes. Starting automatic mirror scheduler service... [Scheduler] Starting scheduler service Starting repository cleanup service... [Repository Cleanup] Starting repository cleanup service [Repository Cleanup] Service started, checking every 6 hours [Scheduler] Auto-start conditions met for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 (scheduleEnabled=true, hasMirrorInterval=true) [Repository Cleanup] Processing 1 configurations [Repository Cleanup] Starting repository cleanup for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 [Scheduler] Auto-start detected from environment variables, triggering initial import and mirror... [Scheduler] Performing initial auto-start... [Scheduler] Auto-starting for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7... [Scheduler] Step 1: Importing repositories from GitHub for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7... [Repository Cleanup] Found 2 orphaned repositories for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 [Repository Cleanup] Found 2 orphaned repositories for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 [Repository Cleanup] Archiving orphaned repository Tailscale-VPS/test in Gitea [Scheduler] No new repositories to import for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 [Scheduler] Step 2: Triggering mirror for repositories that need mirroring... [Scheduler] Found 1 repositories that need mirroring [Scheduler] Processing batch 1 of 1 (1 repos) [Archive] Repository Tailscale-VPS/test data is preserved but not marked as archived Publishing event to channel repository for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 Event published successfully with ID 8ab0f930-1331-4690-b614-caf789b4f3b3 Mirroring repository winlator Publishing event to channel mirror-status:ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 Event published successfully with ID bf77d986-90af-4cb1-941c-3226e7bf2a4e [Org Creation] Validating user authentication before organization operations [Org Creation] Authenticated as user: homelab10400 (ID: 1) [Org Creation] Attempting to get or create organization: starred (attempt 1/3) [Org Creation] Organization starred already exists with ID: 7 [Repository Cleanup] Archiving orphaned repository Tailscale-VPS/test in Gitea [Archive] Repository starred/test data is preserved but not marked as archived Publishing event to channel repository for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7 Event published successfully with ID 45235502-8075-4e99-9b36-8601c0e31a5f [Repository Cleanup] Completed cleanup for user ZqeM8j8ax988V1Cvku1SxDrdHcBHEju7: 2/2 processed Job d1558b54-8ef4-48fb-8d1d-a946e553692b has no log data Job 21af92ea-725c-4435-a5fd-7c9c6ebb7d76 has no log data Job 895b41b9-9a93-4eb1-b8a6-8aaee709426b has no log data [Metadata] Release mirroring check: mirrorReleases=true [Releases] Verifying repository winlator exists at starred [Releases] Found 10 releases (limited to latest 10) to mirror for brunodev85/winlator [Releases] Including changelog for v10.1.0 (1188 characters) [Releases] Mirroring 1 assets for release v10.1.0 [Releases] Downloading asset: Winlator_10.1.apk (147778434 bytes) [Releases] Successfully uploaded asset: Winlator_10.1.apk [Releases] Successfully mirrored release: v10.1.0 with 1188 character changelog [Releases] Including changelog for v10.0.0 (1820 characters) [Releases] Mirroring 1 assets for release v10.0.0 [Releases] Downloading asset: Winlator_10.0.apk (147685565 bytes) [Releases] Successfully uploaded asset: Winlator_10.0.apk ```
Author
Owner

@arunavo4 commented on GitHub (Sep 14, 2025):

@Tailscale-VPS can you try v3.7.2 the parsing for schedule should work now and AUTO_MIRROR_REPOS env var has been added

<!-- gh-comment-id:3289135283 --> @arunavo4 commented on GitHub (Sep 14, 2025): @Tailscale-VPS can you try `v3.7.2` the parsing for schedule should work now and `AUTO_MIRROR_REPOS` env var has been added
Author
Owner

@Tailscale-VPS commented on GitHub (Sep 14, 2025):

@arunavo4 Tested v3.7.2

  • Schedule is fixed.
  • Automatic mirroring is fixed.

Some new things

[Repository Cleanup] Found 1 orphaned repositories for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ
[Scheduler] Found 1 orphaned repositories for cleanup
[Repository Cleanup] DRY RUN: Would archive orphaned repository Tailscale-VPS/test
[Scheduler] Handled orphaned repository: Tailscale-VPS/test
[Scheduler] Auto-mirror enabled - checking for repositories to mirror for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ...
[Scheduler] No repositories need initial mirroring
[Scheduler] No repositories to sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z
[Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled)
[Scheduler] Running scheduled sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ
[Scheduler] Using interval source for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ: 420
[Scheduler] Parsed interval "420" as 7m
[Scheduler] Next sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ scheduled for: 2025-09-14T05:33:00.656Z (in 7m)
[Scheduler] Checking for new GitHub repositories for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ...
[Scheduler] No new repositories found for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ
[Scheduler] Checking for orphaned repositories to cleanup for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ...
GET /user/repos?per_page=100 - 200 with id AEDA:22478A:4AAC53:65ABAC:68C651E9 in 353ms
GET /user/starred?per_page=100 - 200 with id AED0:190117:8001D9:ACD1D0:68C651E9 in 371ms
[Repository Cleanup] Found 2 orphaned repositories for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ
[Scheduler] Found 2 orphaned repositories for cleanup
[Repository Cleanup] DRY RUN: Would archive orphaned repository Tailscale-VPS/test
[Scheduler] Handled orphaned repository: Tailscale-VPS/test
[Repository Cleanup] DRY RUN: Would archive orphaned repository brunodev85/winlator
[Scheduler] Handled orphaned repository: brunodev85/winlator
[Scheduler] Auto-mirror enabled - checking for repositories to mirror for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ...
[Scheduler] No repositories need initial mirroring
[Scheduler] No repositories to sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ

I believe it's forcing dry run... Even though i'm using dry run = false (it was working previously)

  • The schedule time that we set (10m,15m,etc) was earlier counted from last run right?
    But now it's counted from the last run + when the container started.

I believe it will cause issues for people using time interval like 10m,15m,etc, though i believe people using cron will be fine.

Example
Let's assume its 12:00 AM and i want to run schedule at 6:00 AM so i have used variable value 6h,
But i have an automatic server backup which will run at 4:00 AM Daily ,
Now what happens is when the container comes up online again (lets say 4:30 AM),
Contradictions

  • The sync will run at 4:30 AM (Because we have implemented auto import and auto mirror at reboot currently, which i believe is not needed anymore because we have fixed the schedule auto import and auto mirror, IF i turn off auto import and auto mirror , WILL it be also turned off for schedule also?)
  • Because the containers restarted the next schedule time is now changed from 6:00 AM to 10:30 AM (6hrs past 4:30 AM)
<!-- gh-comment-id:3289242236 --> @Tailscale-VPS commented on GitHub (Sep 14, 2025): @arunavo4 Tested v3.7.2 - Schedule is fixed. - Automatic mirroring is fixed. **Some new things** - Does v3.7.2 include fixes from v3.7.1? https://github.com/RayLabsHQ/gitea-mirror/issues/84 Because its not archiving the repos, they are still on mirrored state even after deleting the repo from github and removing star from another repo. ``` [Repository Cleanup] Found 1 orphaned repositories for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ [Scheduler] Found 1 orphaned repositories for cleanup [Repository Cleanup] DRY RUN: Would archive orphaned repository Tailscale-VPS/test [Scheduler] Handled orphaned repository: Tailscale-VPS/test [Scheduler] Auto-mirror enabled - checking for repositories to mirror for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ... [Scheduler] No repositories need initial mirroring [Scheduler] No repositories to sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Skipping user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ - next run at 2025-09-14T05:26:00.650Z [Scheduler] Processing 1 valid configurations (out of 1 with scheduling enabled) [Scheduler] Running scheduled sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ [Scheduler] Using interval source for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ: 420 [Scheduler] Parsed interval "420" as 7m [Scheduler] Next sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ scheduled for: 2025-09-14T05:33:00.656Z (in 7m) [Scheduler] Checking for new GitHub repositories for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ... [Scheduler] No new repositories found for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ [Scheduler] Checking for orphaned repositories to cleanup for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ... GET /user/repos?per_page=100 - 200 with id AEDA:22478A:4AAC53:65ABAC:68C651E9 in 353ms GET /user/starred?per_page=100 - 200 with id AED0:190117:8001D9:ACD1D0:68C651E9 in 371ms [Repository Cleanup] Found 2 orphaned repositories for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ [Scheduler] Found 2 orphaned repositories for cleanup [Repository Cleanup] DRY RUN: Would archive orphaned repository Tailscale-VPS/test [Scheduler] Handled orphaned repository: Tailscale-VPS/test [Repository Cleanup] DRY RUN: Would archive orphaned repository brunodev85/winlator [Scheduler] Handled orphaned repository: brunodev85/winlator [Scheduler] Auto-mirror enabled - checking for repositories to mirror for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ... [Scheduler] No repositories need initial mirroring [Scheduler] No repositories to sync for user hREIYWX911lLKAKQzngWVXlpZn9ljMMZ ``` I believe it's forcing dry run... Even though i'm using dry run = false (it was working previously) - The schedule time that we set (10m,15m,etc) was earlier counted from last run right? But now it's counted from the last run + when the container started. I believe it will cause issues for people using time interval like 10m,15m,etc, though i believe people using cron will be fine. **Example** Let's assume its 12:00 AM and i want to run schedule at 6:00 AM so i have used variable value 6h, But i have an automatic server backup which will run at 4:00 AM Daily , Now what happens is when the container comes up online again (lets say 4:30 AM), **Contradictions** - The sync will run at 4:30 AM (Because we have implemented auto import and auto mirror at reboot currently, which i believe is not needed anymore because we have fixed the schedule auto import and auto mirror, IF i turn off auto import and auto mirror , WILL it be also turned off for schedule also?) - Because the containers restarted the next schedule time is now changed from 6:00 AM to 10:30 AM (6hrs past 4:30 AM)
Author
Owner

@arunavo4 commented on GitHub (Oct 22, 2025):

@Tailscale-VPS please try out v3.8.6 addressing the dry run issue

<!-- gh-comment-id:3431340858 --> @arunavo4 commented on GitHub (Oct 22, 2025): @Tailscale-VPS please try out [v3.8.6](https://github.com/RayLabsHQ/gitea-mirror/releases/tag/v3.8.6) addressing the dry run issue
Author
Owner

@arunavo4 commented on GitHub (Oct 22, 2025):

Closing this for now feel free to re open if anything is pending

<!-- gh-comment-id:3431643520 --> @arunavo4 commented on GitHub (Oct 22, 2025): Closing this for now feel free to re open if anything is pending
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/gitea-mirror#37
No description provided.