name: tgarr services: db: image: postgres:16-alpine container_name: tgarr-db restart: unless-stopped environment: POSTGRES_USER: tgarr POSTGRES_DB: tgarr POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - ./_data/postgres:/var/lib/postgresql/data - ./schema:/docker-entrypoint-initdb.d:ro ports: - "127.0.0.1:5433:5432" networks: - tgarr-net meili: image: getmeili/meilisearch:v1.11 container_name: tgarr-meili restart: unless-stopped environment: MEILI_MASTER_KEY: ${MEILI_MASTER_KEY} MEILI_ENV: production volumes: - ./_data/meili:/meili_data ports: - "127.0.0.1:7700:7700" networks: - tgarr-net crawler: build: ./crawler container_name: tgarr-crawler restart: "no" profiles: [bootstrap] depends_on: [db, meili] environment: TG_API_ID: ${TG_API_ID} TG_API_HASH: ${TG_API_HASH} TG_PHONE: ${TG_PHONE} DB_DSN: postgresql://tgarr:${DB_PASSWORD}@db:5432/tgarr MEILI_URL: http://meili:7700 MEILI_MASTER_KEY: ${MEILI_MASTER_KEY} TG_DOWNLOAD_ROOT: /downloads/tgarr TGARR_SEED_VALIDATOR: ${TGARR_SEED_VALIDATOR:-false} TGARR_SEED_VALIDATOR_INTERVAL: ${TGARR_SEED_VALIDATOR_INTERVAL:-30} TG_PARSE_SCORE_MIN: "0.30" volumes: - ./_data/session:/app/session - ./_data/downloads:/downloads - ./tools:/app/tools:ro networks: - tgarr-net # First time login (interactive SMS code): # docker compose run --rm crawler python login.py api: build: ./api container_name: tgarr-api restart: unless-stopped depends_on: [db] environment: DB_DSN: postgresql://tgarr:${DB_PASSWORD}@db:5432/tgarr TGARR_BASE_URL: ${TGARR_BASE_URL:-} TG_API_ID: ${TG_API_ID} TG_API_HASH: ${TG_API_HASH} TMDB_API_KEY: ${TMDB_API_KEY:-} volumes: - ./api:/app - ./_data/session:/app/session - ./_data/downloads:/downloads ports: - "${TGARR_PORT:-8765}:8088" networks: - tgarr-net # Central federation registry. Runs ONLY on the tgarr.me host (1.37): # docker compose --profile server up -d # End-user instances skip this service entirely. registry: profiles: ["server"] build: ./registry container_name: tgarr-registry restart: unless-stopped depends_on: [db] environment: REGISTRY_MIN_CONSENSUS: "1" BLOOM_DC_THRESHOLD: "1" TGARR_TEST_SHOWCASE_IPS: fd3b1e85d5a2ad4132091b22fe39e435 SUSPICION_BATCH_THRESHOLD: "10000" DB_DSN: postgresql://tgarr:${DB_PASSWORD}@db:5432/tgarr volumes: - ./registry:/app ports: - "127.0.0.1:8090:8090" networks: - tgarr-net networks: tgarr-net: driver: bridge