# Gitea Mirror deployment configuration # - production: Standard deployment with real data services: # Production service with real data gitea-mirror: image: ${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_IMAGE:-gitea-mirror}:${DOCKER_TAG:-latest} build: context: . dockerfile: Dockerfile platforms: - linux/amd64 - linux/arm64 cache_from: - ${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_IMAGE:-gitea-mirror}:${DOCKER_TAG:-latest} container_name: gitea-mirror restart: unless-stopped ports: - "4321:4321" volumes: - gitea-mirror-data:/app/data depends_on: - redis environment: - NODE_ENV=production - DATABASE_URL=sqlite://data/gitea-mirror.db - HOST=0.0.0.0 - PORT=4321 - JWT_SECRET=${JWT_SECRET:-your-secret-key-change-this-in-production} # GitHub/Gitea Mirror Config - GITHUB_USERNAME=${GITHUB_USERNAME:-} - GITHUB_TOKEN=${GITHUB_TOKEN:-} - SKIP_FORKS=${SKIP_FORKS:-false} - PRIVATE_REPOSITORIES=${PRIVATE_REPOSITORIES:-false} - MIRROR_ISSUES=${MIRROR_ISSUES:-false} - MIRROR_STARRED=${MIRROR_STARRED:-false} - MIRROR_ORGANIZATIONS=${MIRROR_ORGANIZATIONS:-false} - PRESERVE_ORG_STRUCTURE=${PRESERVE_ORG_STRUCTURE:-false} - ONLY_MIRROR_ORGS=${ONLY_MIRROR_ORGS:-false} - SKIP_STARRED_ISSUES=${SKIP_STARRED_ISSUES:-false} - GITEA_URL=${GITEA_URL:-} - GITEA_TOKEN=${GITEA_TOKEN:-} - GITEA_USERNAME=${GITEA_USERNAME:-} - GITEA_ORGANIZATION=${GITEA_ORGANIZATION:-github-mirrors} - GITEA_ORG_VISIBILITY=${GITEA_ORG_VISIBILITY:-public} - DELAY=${DELAY:-3600} healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/"] interval: 30s timeout: 10s retries: 5 start_period: 15s profiles: ["production"] redis: image: redis:7-alpine container_name: redis restart: unless-stopped ports: - "6379:6379" volumes: - redis-data:/data # Define named volumes for database persistence volumes: gitea-mirror-data: # Database volume redis-data: