omnivore/self-hosting/docker-compose/.env.example
Aliaksei Karneyeu ade0be223c Wire content-fetch-go into self-hosted Docker Compose setup
Replaces the Node.js content-fetch container with the Go implementation
in both self-hosted compose files, and enables MinIO-backed original
content uploads via BLOB_STORAGE_URL.

Changes:
- self-hosting/docker-compose/docker-compose.yml
  - content-fetch image: sh-content-fetch → sh-content-fetch-go
  - Remove USE_FIREFOX (Go service uses Chromium, no Firefox needed)
  - Add dependency on createbuckets (bucket must exist before uploads)

- self-hosting/docker-compose/self-build/docker-compose.yml
  - content-fetch build: packages/content-fetch → packages/content-fetch-go
  - Remove USE_FIREFOX
  - Add dependency on createbuckets

- self-hosting/docker-compose/.env.example
  - Remove SKIP_UPLOAD_ORIGINAL=true (uploads now work via MinIO)
  - Add BLOB_STORAGE_URL pointing to the MinIO container
  - Consolidate AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY entries
    (were split between two comment blocks, now in one place)

- packages/content-fetch-go/Dockerfile
  - Build stage: golang:1.24-alpine → golang:1.25-alpine (matches go.mod)

MinIO URL used: s3://omnivore?endpoint=http%3A%2F%2Fminio%3A9000&use_path_style=true&disable_https=true&region=us-east-1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 11:55:38 +01:00

85 lines
2.5 KiB
Text

# Postgres & Migrate
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=omnivore
PGPASSWORD=postgres
POSTGRES_USER=postgres
PG_REPLICATION=false
PG_HOST=postgres
PG_PASSWORD=app_pass
PG_DB=omnivore
PG_USER=app_user
PG_PORT=5432
PG_POOL_MAX=20
# User creation
# If you don't want to create demo user set this variable to any non-empty value
# so would be created user with email 'demo@omnivore.work' and password 'demo_password'
NO_DEMO_USER=""
# If you need to create custom user fill in those variables
USER_EMAIL=""
USER_PASSWORD=""
# API
API_ENV=local
IMAGE_PROXY_SECRET=some-secret
JWT_SECRET=some_secret
SSO_JWT_SECRET=some_sso_secret
GATEWAY_URL=http://api:8080/api
CONTENT_FETCH_URL=http://content-fetch:8080/?token=some_token
GCS_USE_LOCAL_HOST=true
GCS_UPLOAD_BUCKET=omnivore
AUTO_VERIFY=true
AWS_ACCESS_KEY_ID=minio # Used for Minio S3 Client
AWS_SECRET_ACCESS_KEY=miniominio
AWS_REGION=us-east-1
CONTENT_FETCH_QUEUE_ENABLED=true
IMAGE_PROXY_URL=http://localhost:7070 # Need to change this for NGINX
CLIENT_URL=http://localhost:3000 # Need to change this when using NGINX
LOCAL_MINIO_URL=http://localhost:1010
# Redis
REDIS_URL=redis://redis:6379/0
#MAIL
WATCHER_API_KEY=mail-api-key
LOCAL_EMAIL_DOMAIN=domain.tld
LOCAL_EMAIL_DOMAIN=domain.tld
SNS_ARN=arn_of_sns #for if you use SES and SNS for Email.
# Web
APP_ENV=prod
BASE_URL=http://localhost:3000 # Front End - Need to change this when using NGINX
SERVER_BASE_URL=http://localhost:4000 # API Server, need to change this when using NGINX
HIGHLIGHTS_BASE_URL=http://localhost:3000 # Front End - Need to change this when using NGINX
# Content Fetch
VERIFICATION_TOKEN=some_token
REST_BACKEND_ENDPOINT=http://api:8080/api
# Object storage for original fetched content.
# Uses MinIO (already running in this compose stack) via the S3-compatible API.
# For AWS S3: BLOB_STORAGE_URL=s3://omnivore?region=us-east-1
# For GCS: BLOB_STORAGE_URL=gs://omnivore
BLOB_STORAGE_URL=s3://omnivore?endpoint=http%3A%2F%2Fminio%3A9000&use_path_style=true&disable_https=true&region=us-east-1
# MinIO / S3 credentials (used by content-fetch-go and the API)
MINIO_ACCESS_KEY=minio
MINIO_SECRET_KEY=miniominio
AWS_ACCESS_KEY_ID=minio
AWS_SECRET_ACCESS_KEY=miniominio
AWS_S3_ENDPOINT_URL=http://minio:9000
# Export
EXPORT_QUEUE_NAME=omnivore-backend-queue
# Youtube
YOUTUBE_TRANSCRIPT_PROMPT=Reformat the supplied transcript data adding formatting, puncuation, and paragraphs, but do not summarize or change the content. Format the output as markdown.
YOUTUBE_MAXIMUM_VIDEO_DURATION_TRANSCRIPT=1801