diff --git a/originals/seafile-ai.yml b/originals/seafile-ai.yml new file mode 100644 index 0000000..db22157 --- /dev/null +++ b/originals/seafile-ai.yml @@ -0,0 +1,32 @@ +services: + seafile-ai: + image: ${SEAFILE_AI_IMAGE:-seafileltd/seafile-ai:13.0-latest} + container_name: seafile-ai + restart: unless-stopped + volumes: + - ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared + # ports: + # - 8888:8888 + environment: + - SEAFILE_AI_LLM_TYPE=${SEAFILE_AI_LLM_TYPE:-openai} + - SEAFILE_AI_LLM_URL=${SEAFILE_AI_LLM_URL:-} + - SEAFILE_AI_LLM_KEY=${SEAFILE_AI_LLM_KEY:-} + - SEAFILE_AI_LLM_MODEL=${SEAFILE_AI_LLM_MODEL:-gpt-4o-mini} + - FACE_EMBEDDING_SERVICE_URL=${FACE_EMBEDDING_SERVICE_URL:-http://face-embedding:8886} + - FACE_EMBEDDING_SERVICE_KEY=${FACE_EMBEDDING_SERVICE_KEY:-${JWT_PRIVATE_KEY:?Variable is not set or empty}} + - SEAFILE_SERVER_URL=${INNER_SEAHUB_SERVICE_URL:-http://seafile} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + - SEAFILE_AI_LOG_LEVEL=${SEAFILE_AI_LOG_LEVEL:-info} + - CACHE_PROVIDER=${CACHE_PROVIDER:-redis} + - REDIS_HOST=${REDIS_HOST:-redis} + - REDIS_PORT=${REDIS_PORT:-6379} + - REDIS_PASSWORD=${REDIS_PASSWORD:-} + depends_on: + seafile: + condition: service_healthy + networks: + - seafile-net + +networks: + seafile-net: + name: seafile-net diff --git a/swarm-compose.yml b/swarm-compose.yml index b572edd..d4a5440 100644 --- a/swarm-compose.yml +++ b/swarm-compose.yml @@ -204,6 +204,37 @@ services: - "traefik.http.routers.seadoc.priority=100" - "traefik.http.services.seadoc.loadbalancer.server.port=80" + seafile-ai: + image: seafileltd/seafile-ai:13.0-latest + volumes: + - seafile_shared:/shared + environment: + - SEAFILE_AI_LLM_TYPE=openai + - SEAFILE_AI_LLM_URL=http://llm.lab + - SEAFILE_AI_LLM_KEY=sk-1234 + - SEAFILE_AI_LLM_MODEL=deepseek-v3p2 + - FACE_EMBEDDING_SERVICE_URL=http://face-embedding:8886 + - FACE_EMBEDDING_SERVICE_KEY=51a482da346fa9a7ea050600c30348b367f7a7144b814273e152c2c8f95965cc + - SEAFILE_SERVER_URL=http://seafile + - JWT_PRIVATE_KEY=51a482da346fa9a7ea050600c30348b367f7a7144b814273e152c2c8f95965cc + - SEAFILE_AI_LOG_LEVEL=info + - CACHE_PROVIDER=redis + - REDIS_HOST=redis + - REDIS_PORT=6379 + - REDIS_PASSWORD= + networks: + - net + expose: + - "8888" + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:8888/health || exit 1"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + deploy: + <<: *deploy_default + volumes: seafile_elasticsearch_data: name: seafile_elasticsearch_data