mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
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®ion=us-east-1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
85 lines
2.5 KiB
Text
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®ion=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
|