services: feedkeeper: image: ghcr.io/visualfusion/feedkeeper:latest container_name: feedkeeper restart: unless-stopped stop_grace_period: 45s ports: - "3000:3000" environment: - PORT=3000 - PUBLIC_URL=${PUBLIC_URL:-http://localhost:3000} - DATABASE_PATH=/app/data/feedkeeper.sqlite - SESSION_SECRET=${SESSION_SECRET:?Set SESSION_SECRET in .env before starting} - ALLOW_SIGNUP=${ALLOW_SIGNUP:-false} - ALLOW_PRIVATE_FEEDS=${ALLOW_PRIVATE_FEEDS:-false} - BLOCKED_FEED_HOSTS=${BLOCKED_FEED_HOSTS:-} - TRUST_PROXY=${TRUST_PROXY:-false} - MIN_POLL_INTERVAL_MINUTES=${MIN_POLL_INTERVAL_MINUTES:-5} - IMAGE_CACHE_PATH=${IMAGE_CACHE_PATH:-/app/data/image-cache} - IMAGE_CACHE_MAX_BYTES=${IMAGE_CACHE_MAX_BYTES:-268435456} - IMAGE_CACHE_MAX_ENTRIES=${IMAGE_CACHE_MAX_ENTRIES:-2000} - IMAGE_CACHE_TTL_SECONDS=${IMAGE_CACHE_TTL_SECONDS:-21600} - IMAGE_CACHE_NEGATIVE_TTL_SECONDS=${IMAGE_CACHE_NEGATIVE_TTL_SECONDS:-60} - IMAGE_CACHE_CONCURRENCY=${IMAGE_CACHE_CONCURRENCY:-4} - IMAGE_CACHE_MAX_WAITERS=${IMAGE_CACHE_MAX_WAITERS:-32} - FULLTEXT_CONCURRENCY=${FULLTEXT_CONCURRENCY:-2} - FULLTEXT_HOST_CONCURRENCY=${FULLTEXT_HOST_CONCURRENCY:-1} - FULLTEXT_MAX_WAITING=${FULLTEXT_MAX_WAITING:-32} - FULLTEXT_TIMEOUT_MS=${FULLTEXT_TIMEOUT_MS:-20000} - FULLTEXT_AGING_MS=${FULLTEXT_AGING_MS:-60000} - POLL_CONCURRENCY=${POLL_CONCURRENCY:-4} - POLL_HOST_CONCURRENCY=${POLL_HOST_CONCURRENCY:-2} - POLL_MAX_WAITERS=${POLL_MAX_WAITERS:-64} - POLL_REQUEST_TIMEOUT_MS=${POLL_REQUEST_TIMEOUT_MS:-15000} - POLL_ATTEMPT_TIMEOUT_MS=${POLL_ATTEMPT_TIMEOUT_MS:-30000} - POLL_MAX_RETRIES=${POLL_MAX_RETRIES:-2} - POLL_RETRY_BASE_MS=${POLL_RETRY_BASE_MS:-5000} - POLL_RETRY_MAX_MS=${POLL_RETRY_MAX_MS:-300000} - POLL_TICK_MS=${POLL_TICK_MS:-1000} - RETENTION_READ_DAYS=${RETENTION_READ_DAYS:-30} - RETENTION_MAX_DAYS=${RETENTION_MAX_DAYS:-90} - RETENTION_MAX_ITEMS_PER_FEED=${RETENTION_MAX_ITEMS_PER_FEED:-1000} - AUTO_CLEANUP_ENABLED=${AUTO_CLEANUP_ENABLED:-true} - SHOW_GITHUB_LINK=${SHOW_GITHUB_LINK:-true} - GITHUB_URL=${GITHUB_URL:-https://github.com/visualfusion/feedkeeper} volumes: - feedkeeper_data:/app/data volumes: feedkeeper_data: