mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-06 03:26:44 +03:00
184 lines
6.3 KiB
Plaintext
184 lines
6.3 KiB
Plaintext
# Gitea Mirror Configuration
|
|
# Copy this to .env and update with your values
|
|
|
|
# ===========================================
|
|
# CORE CONFIGURATION
|
|
# ===========================================
|
|
|
|
# Application Configuration
|
|
NODE_ENV=production
|
|
HOST=0.0.0.0
|
|
PORT=4321
|
|
|
|
# Database Configuration
|
|
# For self-hosted, SQLite is used by default
|
|
DATABASE_URL=sqlite://data/gitea-mirror.db
|
|
|
|
# Security
|
|
# Generate with: openssl rand -base64 32
|
|
BETTER_AUTH_SECRET=change-this-to-a-secure-random-string-in-production
|
|
BETTER_AUTH_URL=http://localhost:4321
|
|
# ENCRYPTION_SECRET=optional-encryption-key-for-token-encryption # Generate with: openssl rand -base64 48
|
|
|
|
# ===========================================
|
|
# DOCKER CONFIGURATION (Optional)
|
|
# ===========================================
|
|
|
|
# Docker Registry Configuration
|
|
DOCKER_REGISTRY=ghcr.io
|
|
DOCKER_IMAGE=raylabshq/gitea-mirror:
|
|
DOCKER_TAG=latest
|
|
|
|
# ===========================================
|
|
# GITHUB CONFIGURATION
|
|
# All settings can also be configured via web UI
|
|
# ===========================================
|
|
|
|
# Basic GitHub Settings
|
|
# GITHUB_USERNAME=your-github-username
|
|
# GITHUB_TOKEN=your-github-personal-access-token
|
|
# GITHUB_TYPE=personal # Options: personal, organization
|
|
|
|
# Repository Selection
|
|
# PRIVATE_REPOSITORIES=false
|
|
# PUBLIC_REPOSITORIES=true
|
|
# INCLUDE_ARCHIVED=false
|
|
# SKIP_FORKS=false
|
|
# MIRROR_STARRED=false
|
|
# STARRED_REPOS_ORG=starred # Organization name for starred repos
|
|
|
|
# Organization Settings
|
|
# MIRROR_ORGANIZATIONS=false
|
|
# PRESERVE_ORG_STRUCTURE=false
|
|
# ONLY_MIRROR_ORGS=false
|
|
|
|
# Mirror Strategy
|
|
# MIRROR_STRATEGY=preserve # Options: preserve, single-org, flat-user, mixed
|
|
|
|
# Advanced GitHub Settings
|
|
# SKIP_STARRED_ISSUES=false # Enable lightweight mode for starred repos
|
|
|
|
# ===========================================
|
|
# GITEA CONFIGURATION
|
|
# All settings can also be configured via web UI
|
|
# ===========================================
|
|
|
|
# Basic Gitea Settings
|
|
# GITEA_URL=http://gitea:3000
|
|
# GITEA_TOKEN=your-local-gitea-token
|
|
# GITEA_USERNAME=your-local-gitea-username
|
|
# GITEA_ORGANIZATION=github-mirrors # Default organization for single-org strategy
|
|
|
|
# Repository Settings
|
|
# GITEA_ORG_VISIBILITY=public # Options: public, private, limited, default
|
|
# GITEA_MIRROR_INTERVAL=8h # Mirror sync interval (e.g., 30m, 1h, 8h, 24h) - automatically enables scheduler
|
|
# GITEA_LFS=false # Enable LFS support
|
|
# GITEA_CREATE_ORG=true # Auto-create organizations
|
|
# GITEA_PRESERVE_VISIBILITY=false # Preserve GitHub repo visibility in Gitea
|
|
|
|
# Template Settings (for using repository templates)
|
|
# GITEA_TEMPLATE_OWNER=template-owner
|
|
# GITEA_TEMPLATE_REPO=template-repo
|
|
|
|
# Topic Settings
|
|
# GITEA_ADD_TOPICS=true # Add topics to repositories
|
|
# GITEA_TOPIC_PREFIX=gh- # Prefix for topics
|
|
|
|
# Fork Handling
|
|
# GITEA_FORK_STRATEGY=reference # Options: skip, reference, full-copy
|
|
|
|
# ===========================================
|
|
# MIRROR OPTIONS
|
|
# Control what gets mirrored from GitHub
|
|
# ===========================================
|
|
|
|
# Release and Metadata
|
|
# MIRROR_RELEASES=false # Mirror GitHub releases
|
|
# MIRROR_WIKI=false # Mirror wiki content
|
|
|
|
# Issue Tracking (requires MIRROR_METADATA=true)
|
|
# MIRROR_METADATA=false # Master toggle for metadata mirroring
|
|
# MIRROR_ISSUES=false # Mirror issues
|
|
# MIRROR_PULL_REQUESTS=false # Mirror pull requests
|
|
# MIRROR_LABELS=false # Mirror labels
|
|
# MIRROR_MILESTONES=false # Mirror milestones
|
|
|
|
# ===========================================
|
|
# AUTOMATION CONFIGURATION
|
|
# Schedule automatic mirroring
|
|
# ===========================================
|
|
|
|
# Basic Schedule Settings
|
|
# SCHEDULE_ENABLED=false
|
|
# SCHEDULE_INTERVAL=3600 # Interval in seconds or cron expression (e.g., "0 2 * * *")
|
|
# GITEA_MIRROR_INTERVAL=8h # Mirror sync interval (5m, 30m, 1h, 8h, 24h, 1d, 7d)
|
|
# AUTO_IMPORT_REPOS=true # Automatically discover and import new GitHub repositories
|
|
# DELAY=3600 # Legacy: same as SCHEDULE_INTERVAL, kept for backward compatibility
|
|
|
|
# Execution Settings
|
|
# SCHEDULE_CONCURRENT=false # Allow concurrent mirror operations
|
|
# SCHEDULE_BATCH_SIZE=10 # Number of repos to process in parallel
|
|
# SCHEDULE_PAUSE_BETWEEN_BATCHES=5000 # Pause between batches (ms)
|
|
|
|
# Retry Configuration
|
|
# SCHEDULE_RETRY_ATTEMPTS=3
|
|
# SCHEDULE_RETRY_DELAY=60000 # Delay between retries (ms)
|
|
# SCHEDULE_TIMEOUT=3600000 # Max time for a mirror operation (ms)
|
|
# SCHEDULE_AUTO_RETRY=true
|
|
|
|
# Update Detection
|
|
# SCHEDULE_ONLY_MIRROR_UPDATED=false # Only mirror repos with updates
|
|
# SCHEDULE_UPDATE_INTERVAL=86400000 # Check for updates interval (ms)
|
|
# SCHEDULE_SKIP_RECENTLY_MIRRORED=true
|
|
# SCHEDULE_RECENT_THRESHOLD=3600000 # Skip if mirrored within this time (ms)
|
|
|
|
# Maintenance
|
|
# SCHEDULE_CLEANUP_BEFORE_MIRROR=false # Run cleanup before mirroring
|
|
|
|
# Notifications
|
|
# SCHEDULE_NOTIFY_ON_FAILURE=true
|
|
# SCHEDULE_NOTIFY_ON_SUCCESS=false
|
|
# SCHEDULE_LOG_LEVEL=info # Options: error, warn, info, debug
|
|
# SCHEDULE_TIMEZONE=UTC
|
|
|
|
# ===========================================
|
|
# DATABASE CLEANUP CONFIGURATION
|
|
# Automatic cleanup of old events and data
|
|
# ===========================================
|
|
|
|
# Basic Cleanup Settings
|
|
# CLEANUP_ENABLED=false
|
|
# CLEANUP_RETENTION_DAYS=7 # Days to keep events
|
|
|
|
# Repository Cleanup (v3.4.0+)
|
|
# CLEANUP_DELETE_FROM_GITEA=false # Delete repos from Gitea
|
|
# CLEANUP_DELETE_IF_NOT_IN_GITHUB=false # Auto-remove repos that no longer exist in GitHub
|
|
# CLEANUP_ORPHANED_REPO_ACTION=archive # Options: skip, archive, delete
|
|
# CLEANUP_DRY_RUN=true # Test mode without actual deletion (set to false for production)
|
|
|
|
# Protected Repositories (comma-separated)
|
|
# CLEANUP_PROTECTED_REPOS=important-repo,critical-project
|
|
|
|
# Cleanup Execution
|
|
# CLEANUP_BATCH_SIZE=10
|
|
# CLEANUP_PAUSE_BETWEEN_DELETES=2000 # Pause between deletions (ms)
|
|
|
|
# ===========================================
|
|
# AUTHENTICATION CONFIGURATION
|
|
# ===========================================
|
|
|
|
# Header Authentication (for Reverse Proxy SSO)
|
|
# Enable automatic authentication via reverse proxy headers
|
|
# HEADER_AUTH_ENABLED=false
|
|
# HEADER_AUTH_USER_HEADER=X-Authentik-Username
|
|
# HEADER_AUTH_EMAIL_HEADER=X-Authentik-Email
|
|
# HEADER_AUTH_NAME_HEADER=X-Authentik-Name
|
|
# HEADER_AUTH_AUTO_PROVISION=false
|
|
# HEADER_AUTH_ALLOWED_DOMAINS=example.com,company.org
|
|
|
|
# ===========================================
|
|
# OPTIONAL FEATURES
|
|
# ===========================================
|
|
|
|
# TLS/SSL Configuration
|
|
# GITEA_SKIP_TLS_VERIFY=false # WARNING: Only use for testing |