2025-10-20 00:30:00 -07:00
|
|
|
version: "3.8"
|
2025-03-20 18:52:06 -07:00
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
db:
|
|
|
|
|
image: ankane/pgvector:latest
|
|
|
|
|
ports:
|
2025-05-09 16:18:05 +08:00
|
|
|
- "${POSTGRES_PORT:-5432}:5432"
|
2025-03-20 18:52:06 -07:00
|
|
|
volumes:
|
|
|
|
|
- postgres_data:/var/lib/postgresql/data
|
|
|
|
|
environment:
|
2025-05-09 16:18:05 +08:00
|
|
|
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
|
|
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
|
|
|
|
- POSTGRES_DB=${POSTGRES_DB:-surfsense}
|
|
|
|
|
|
|
|
|
|
pgadmin:
|
|
|
|
|
image: dpage/pgadmin4
|
|
|
|
|
ports:
|
|
|
|
|
- "${PGADMIN_PORT:-5050}:80"
|
|
|
|
|
environment:
|
|
|
|
|
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL:-admin@surfsense.com}
|
|
|
|
|
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD:-surfsense}
|
|
|
|
|
volumes:
|
|
|
|
|
- pgadmin_data:/var/lib/pgadmin
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
2025-03-20 18:52:06 -07:00
|
|
|
|
2025-10-20 00:30:00 -07:00
|
|
|
redis:
|
|
|
|
|
image: redis:7-alpine
|
|
|
|
|
ports:
|
|
|
|
|
- "${REDIS_PORT:-6379}:6379"
|
|
|
|
|
volumes:
|
|
|
|
|
- redis_data:/data
|
|
|
|
|
command: redis-server --appendonly yes
|
|
|
|
|
|
|
|
|
|
backend:
|
|
|
|
|
build: ./surfsense_backend
|
|
|
|
|
# image: ghcr.io/modsetter/surfsense_backend:latest
|
|
|
|
|
ports:
|
|
|
|
|
- "${BACKEND_PORT:-8000}:8000"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./surfsense_backend:/app
|
|
|
|
|
- shared_temp:/tmp
|
|
|
|
|
env_file:
|
|
|
|
|
- ./surfsense_backend/.env
|
|
|
|
|
environment:
|
|
|
|
|
- DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-surfsense}
|
|
|
|
|
- CELERY_BROKER_URL=redis://redis:${REDIS_PORT:-6379}/0
|
|
|
|
|
- CELERY_RESULT_BACKEND=redis://redis:${REDIS_PORT:-6379}/0
|
|
|
|
|
- PYTHONPATH=/app
|
|
|
|
|
- UVICORN_LOOP=asyncio
|
|
|
|
|
- UNSTRUCTURED_HAS_PATCHED_LOOP=1
|
|
|
|
|
- LANGCHAIN_TRACING_V2=false
|
|
|
|
|
- LANGSMITH_TRACING=false
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
- redis
|
|
|
|
|
|
|
|
|
|
celery_worker:
|
|
|
|
|
build: ./surfsense_backend
|
|
|
|
|
# image: ghcr.io/modsetter/surfsense_backend:latest
|
|
|
|
|
command: celery -A app.celery_app worker --loglevel=info --concurrency=1 --pool=solo
|
|
|
|
|
volumes:
|
|
|
|
|
- ./surfsense_backend:/app
|
|
|
|
|
- shared_temp:/tmp
|
|
|
|
|
env_file:
|
|
|
|
|
- ./surfsense_backend/.env
|
|
|
|
|
environment:
|
|
|
|
|
- DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-surfsense}
|
|
|
|
|
- CELERY_BROKER_URL=redis://redis:${REDIS_PORT:-6379}/0
|
|
|
|
|
- CELERY_RESULT_BACKEND=redis://redis:${REDIS_PORT:-6379}/0
|
|
|
|
|
- PYTHONPATH=/app
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
- redis
|
|
|
|
|
- backend
|
|
|
|
|
|
|
|
|
|
# flower:
|
|
|
|
|
# build: ./surfsense_backend
|
|
|
|
|
# # image: ghcr.io/modsetter/surfsense_backend:latest
|
|
|
|
|
# command: celery -A app.celery_app flower --port=5555
|
|
|
|
|
# ports:
|
|
|
|
|
# - "${FLOWER_PORT:-5555}:5555"
|
|
|
|
|
# env_file:
|
|
|
|
|
# - ./surfsense_backend/.env
|
|
|
|
|
# environment:
|
|
|
|
|
# - CELERY_BROKER_URL=redis://redis:${REDIS_PORT:-6379}/0
|
|
|
|
|
# - CELERY_RESULT_BACKEND=redis://redis:${REDIS_PORT:-6379}/0
|
|
|
|
|
# - PYTHONPATH=/app
|
|
|
|
|
# depends_on:
|
|
|
|
|
# - redis
|
|
|
|
|
# - celery_worker
|
|
|
|
|
|
|
|
|
|
frontend:
|
|
|
|
|
# build: ./surfsense_web
|
|
|
|
|
image: ghcr.io/modsetter/surfsense_ui:latest
|
|
|
|
|
ports:
|
|
|
|
|
- "${FRONTEND_PORT:-3000}:3000"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./surfsense_web:/app
|
|
|
|
|
- /app/node_modules
|
|
|
|
|
env_file:
|
|
|
|
|
- ./surfsense_web/.env
|
|
|
|
|
environment:
|
|
|
|
|
- NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-http://backend:8000}
|
|
|
|
|
depends_on:
|
|
|
|
|
- backend
|
|
|
|
|
|
2025-03-20 18:52:06 -07:00
|
|
|
volumes:
|
2025-05-09 16:18:05 +08:00
|
|
|
postgres_data:
|
2025-10-20 00:30:00 -07:00
|
|
|
pgadmin_data:
|
|
|
|
|
redis_data:
|
|
|
|
|
shared_temp:
|