Skip to content

Automatic Mirroring and some docker compose flags not working #72

@Tailscale-VPS

Description

@Tailscale-VPS

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 #50

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions