Upload 18 files
Browse files- docker-legacy/docker-compose.chroma.yaml +13 -0
- docker-legacy/docker-compose.middleware.yaml +109 -0
- docker-legacy/docker-compose.milvus.yaml +64 -0
- docker-legacy/docker-compose.opensearch.yml +40 -0
- docker-legacy/docker-compose.oracle.yaml +17 -0
- docker-legacy/docker-compose.pgvecto-rs.yaml +23 -0
- docker-legacy/docker-compose.pgvector.yaml +23 -0
- docker-legacy/docker-compose.png +0 -0
- docker-legacy/docker-compose.qdrant.yaml +12 -0
- docker-legacy/docker-compose.yaml +597 -0
- docker-legacy/nginx/conf.d/default.conf +38 -0
- docker-legacy/nginx/nginx.conf +32 -0
- docker-legacy/nginx/proxy.conf +8 -0
- docker-legacy/nginx/ssl/.gitkeep +1 -0
- docker-legacy/startupscripts/create_user.sql +5 -0
- docker-legacy/volumes/opensearch/opensearch_dashboards.yml +222 -0
- docker-legacy/volumes/sandbox/dependencies/python-requirements.txt +0 -0
- docker-legacy/volumes/ssrf_proxy/squid.conf +49 -0
docker-legacy/docker-compose.chroma.yaml
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
services:
|
2 |
+
# Chroma vector store.
|
3 |
+
chroma:
|
4 |
+
image: ghcr.io/chroma-core/chroma:0.5.20
|
5 |
+
restart: always
|
6 |
+
volumes:
|
7 |
+
- ./volumes/chroma:/chroma/chroma
|
8 |
+
environment:
|
9 |
+
CHROMA_SERVER_AUTHN_CREDENTIALS: difyai123456
|
10 |
+
CHROMA_SERVER_AUTHN_PROVIDER: chromadb.auth.token_authn.TokenAuthenticationServerProvider
|
11 |
+
IS_PERSISTENT: TRUE
|
12 |
+
ports:
|
13 |
+
- "8000:8000"
|
docker-legacy/docker-compose.middleware.yaml
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3'
|
2 |
+
services:
|
3 |
+
# The postgres database.
|
4 |
+
db:
|
5 |
+
image: postgres:15-alpine
|
6 |
+
restart: always
|
7 |
+
environment:
|
8 |
+
# The password for the default postgres user.
|
9 |
+
POSTGRES_PASSWORD: difyai123456
|
10 |
+
# The name of the default postgres database.
|
11 |
+
POSTGRES_DB: dify
|
12 |
+
# postgres data directory
|
13 |
+
PGDATA: /var/lib/postgresql/data/pgdata
|
14 |
+
volumes:
|
15 |
+
- ./volumes/db/data:/var/lib/postgresql/data
|
16 |
+
ports:
|
17 |
+
- "5432:5432"
|
18 |
+
|
19 |
+
# The redis cache.
|
20 |
+
redis:
|
21 |
+
image: redis:6-alpine
|
22 |
+
restart: always
|
23 |
+
volumes:
|
24 |
+
# Mount the redis data directory to the container.
|
25 |
+
- ./volumes/redis/data:/data
|
26 |
+
# Set the redis password when startup redis server.
|
27 |
+
command: redis-server --requirepass difyai123456
|
28 |
+
ports:
|
29 |
+
- "6379:6379"
|
30 |
+
|
31 |
+
# The Weaviate vector store.
|
32 |
+
weaviate:
|
33 |
+
image: semitechnologies/weaviate:1.19.0
|
34 |
+
restart: always
|
35 |
+
volumes:
|
36 |
+
# Mount the Weaviate data directory to the container.
|
37 |
+
- ./volumes/weaviate:/var/lib/weaviate
|
38 |
+
environment:
|
39 |
+
# The Weaviate configurations
|
40 |
+
# You can refer to the [Weaviate](https://weaviate.io/developers/weaviate/config-refs/env-vars) documentation for more information.
|
41 |
+
QUERY_DEFAULTS_LIMIT: 25
|
42 |
+
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'
|
43 |
+
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
|
44 |
+
DEFAULT_VECTORIZER_MODULE: 'none'
|
45 |
+
CLUSTER_HOSTNAME: 'node1'
|
46 |
+
AUTHENTICATION_APIKEY_ENABLED: 'true'
|
47 |
+
AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih'
|
48 |
+
AUTHENTICATION_APIKEY_USERS: 'hello@dify.ai'
|
49 |
+
AUTHORIZATION_ADMINLIST_ENABLED: 'true'
|
50 |
+
AUTHORIZATION_ADMINLIST_USERS: 'hello@dify.ai'
|
51 |
+
ports:
|
52 |
+
- "8080:8080"
|
53 |
+
|
54 |
+
# The DifySandbox
|
55 |
+
sandbox:
|
56 |
+
image: langgenius/dify-sandbox:0.2.1
|
57 |
+
restart: always
|
58 |
+
environment:
|
59 |
+
# The DifySandbox configurations
|
60 |
+
# Make sure you are changing this key for your deployment with a strong key.
|
61 |
+
# You can generate a strong key using `openssl rand -base64 42`.
|
62 |
+
API_KEY: dify-sandbox
|
63 |
+
GIN_MODE: 'release'
|
64 |
+
WORKER_TIMEOUT: 15
|
65 |
+
ENABLE_NETWORK: 'true'
|
66 |
+
HTTP_PROXY: 'http://ssrf_proxy:3128'
|
67 |
+
HTTPS_PROXY: 'http://ssrf_proxy:3128'
|
68 |
+
SANDBOX_PORT: 8194
|
69 |
+
volumes:
|
70 |
+
- ./volumes/sandbox/dependencies:/dependencies
|
71 |
+
networks:
|
72 |
+
- ssrf_proxy_network
|
73 |
+
|
74 |
+
# ssrf_proxy server
|
75 |
+
# for more information, please refer to
|
76 |
+
# https://docs.dify.ai/learn-more/faq/install-faq#id-18.-why-is-ssrf_proxy-needed
|
77 |
+
ssrf_proxy:
|
78 |
+
image: ubuntu/squid:latest
|
79 |
+
restart: always
|
80 |
+
ports:
|
81 |
+
- "3128:3128"
|
82 |
+
- "8194:8194"
|
83 |
+
volumes:
|
84 |
+
# pls clearly modify the squid.conf file to fit your network environment.
|
85 |
+
- ./volumes/ssrf_proxy/squid.conf:/etc/squid/squid.conf
|
86 |
+
networks:
|
87 |
+
- ssrf_proxy_network
|
88 |
+
- default
|
89 |
+
# Qdrant vector store.
|
90 |
+
# uncomment to use qdrant as vector store.
|
91 |
+
# (if uncommented, you need to comment out the weaviate service above,
|
92 |
+
# and set VECTOR_STORE to qdrant in the api & worker service.)
|
93 |
+
# qdrant:
|
94 |
+
# image: qdrant/qdrant:1.7.3
|
95 |
+
# restart: always
|
96 |
+
# volumes:
|
97 |
+
# - ./volumes/qdrant:/qdrant/storage
|
98 |
+
# environment:
|
99 |
+
# QDRANT_API_KEY: 'difyai123456'
|
100 |
+
# ports:
|
101 |
+
# - "6333:6333"
|
102 |
+
# - "6334:6334"
|
103 |
+
|
104 |
+
|
105 |
+
networks:
|
106 |
+
# create a network between sandbox, api and ssrf_proxy, and can not access outside.
|
107 |
+
ssrf_proxy_network:
|
108 |
+
driver: bridge
|
109 |
+
internal: true
|
docker-legacy/docker-compose.milvus.yaml
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3.5'
|
2 |
+
|
3 |
+
services:
|
4 |
+
etcd:
|
5 |
+
container_name: milvus-etcd
|
6 |
+
image: quay.io/coreos/etcd:v3.5.5
|
7 |
+
environment:
|
8 |
+
- ETCD_AUTO_COMPACTION_MODE=revision
|
9 |
+
- ETCD_AUTO_COMPACTION_RETENTION=1000
|
10 |
+
- ETCD_QUOTA_BACKEND_BYTES=4294967296
|
11 |
+
- ETCD_SNAPSHOT_COUNT=50000
|
12 |
+
volumes:
|
13 |
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
|
14 |
+
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
|
15 |
+
healthcheck:
|
16 |
+
test: ["CMD", "etcdctl", "endpoint", "health"]
|
17 |
+
interval: 30s
|
18 |
+
timeout: 20s
|
19 |
+
retries: 3
|
20 |
+
|
21 |
+
minio:
|
22 |
+
container_name: milvus-minio
|
23 |
+
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
|
24 |
+
environment:
|
25 |
+
MINIO_ACCESS_KEY: minioadmin
|
26 |
+
MINIO_SECRET_KEY: minioadmin
|
27 |
+
ports:
|
28 |
+
- "9001:9001"
|
29 |
+
- "9000:9000"
|
30 |
+
volumes:
|
31 |
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
|
32 |
+
command: minio server /minio_data --console-address ":9001"
|
33 |
+
healthcheck:
|
34 |
+
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
35 |
+
interval: 30s
|
36 |
+
timeout: 20s
|
37 |
+
retries: 3
|
38 |
+
|
39 |
+
milvus-standalone:
|
40 |
+
container_name: milvus-standalone
|
41 |
+
image: milvusdb/milvus:v2.4.6
|
42 |
+
command: ["milvus", "run", "standalone"]
|
43 |
+
environment:
|
44 |
+
ETCD_ENDPOINTS: etcd:2379
|
45 |
+
MINIO_ADDRESS: minio:9000
|
46 |
+
common.security.authorizationEnabled: true
|
47 |
+
volumes:
|
48 |
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
|
49 |
+
healthcheck:
|
50 |
+
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
|
51 |
+
interval: 30s
|
52 |
+
start_period: 90s
|
53 |
+
timeout: 20s
|
54 |
+
retries: 3
|
55 |
+
ports:
|
56 |
+
- "19530:19530"
|
57 |
+
- "9091:9091"
|
58 |
+
depends_on:
|
59 |
+
- "etcd"
|
60 |
+
- "minio"
|
61 |
+
|
62 |
+
networks:
|
63 |
+
default:
|
64 |
+
name: milvus
|
docker-legacy/docker-compose.opensearch.yml
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
services:
|
2 |
+
opensearch: # This is also the hostname of the container within the Docker network (i.e. https://opensearch/)
|
3 |
+
image: opensearchproject/opensearch:latest # Specifying the latest available image - modify if you want a specific version
|
4 |
+
container_name: opensearch
|
5 |
+
environment:
|
6 |
+
- discovery.type=single-node
|
7 |
+
- bootstrap.memory_lock=true # Disable JVM heap memory swapping
|
8 |
+
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx1024m" # Set min and max JVM heap sizes to at least 50% of system RAM
|
9 |
+
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=Qazwsxedc!@#123 # Sets the demo admin user password when using demo configuration, required for OpenSearch 2.12 and later
|
10 |
+
ulimits:
|
11 |
+
memlock:
|
12 |
+
soft: -1 # Set memlock to unlimited (no soft or hard limit)
|
13 |
+
hard: -1
|
14 |
+
nofile:
|
15 |
+
soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536
|
16 |
+
hard: 65536
|
17 |
+
volumes:
|
18 |
+
- ./volumes/opensearch/data:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container
|
19 |
+
ports:
|
20 |
+
- 9200:9200 # REST API
|
21 |
+
- 9600:9600 # Performance Analyzer
|
22 |
+
networks:
|
23 |
+
- opensearch-net # All of the containers will join the same Docker bridge network
|
24 |
+
opensearch-dashboards:
|
25 |
+
image: opensearchproject/opensearch-dashboards:latest # Make sure the version of opensearch-dashboards matches the version of opensearch installed on other nodes
|
26 |
+
container_name: opensearch-dashboards
|
27 |
+
ports:
|
28 |
+
- 5601:5601 # Map host port 5601 to container port 5601
|
29 |
+
expose:
|
30 |
+
- "5601" # Expose port 5601 for web access to OpenSearch Dashboards
|
31 |
+
environment:
|
32 |
+
OPENSEARCH_HOSTS: '["https://opensearch:9200"]' # Define the OpenSearch nodes that OpenSearch Dashboards will query
|
33 |
+
volumes:
|
34 |
+
- ./volumes/opensearch/opensearch_dashboards.yml:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml
|
35 |
+
networks:
|
36 |
+
- opensearch-net
|
37 |
+
|
38 |
+
networks:
|
39 |
+
opensearch-net:
|
40 |
+
driver: bridge
|
docker-legacy/docker-compose.oracle.yaml
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
services:
|
2 |
+
# oracle 23 ai vector store.
|
3 |
+
oracle:
|
4 |
+
image: container-registry.oracle.com/database/free:latest
|
5 |
+
restart: always
|
6 |
+
ports:
|
7 |
+
- 1521:1521
|
8 |
+
volumes:
|
9 |
+
- type: volume
|
10 |
+
source: oradata_vector
|
11 |
+
target: /opt/oracle/oradata
|
12 |
+
- ./startupscripts:/opt/oracle/scripts/startup
|
13 |
+
environment:
|
14 |
+
- ORACLE_PWD=Dify123456
|
15 |
+
- ORACLE_CHARACTERSET=AL32UTF8
|
16 |
+
volumes:
|
17 |
+
oradata_vector:
|
docker-legacy/docker-compose.pgvecto-rs.yaml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
services:
|
2 |
+
# The pgvecto—rs database.
|
3 |
+
pgvecto-rs:
|
4 |
+
image: tensorchord/pgvecto-rs:pg16-v0.2.0
|
5 |
+
restart: always
|
6 |
+
environment:
|
7 |
+
PGUSER: postgres
|
8 |
+
# The password for the default postgres user.
|
9 |
+
POSTGRES_PASSWORD: difyai123456
|
10 |
+
# The name of the default postgres database.
|
11 |
+
POSTGRES_DB: dify
|
12 |
+
# postgres data directory
|
13 |
+
PGDATA: /var/lib/postgresql/data/pgdata
|
14 |
+
volumes:
|
15 |
+
- ./volumes/pgvectors/data:/var/lib/postgresql/data
|
16 |
+
# uncomment to expose db(postgresql) port to host
|
17 |
+
ports:
|
18 |
+
- "5431:5432"
|
19 |
+
healthcheck:
|
20 |
+
test: [ "CMD", "pg_isready" ]
|
21 |
+
interval: 1s
|
22 |
+
timeout: 3s
|
23 |
+
retries: 30
|
docker-legacy/docker-compose.pgvector.yaml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
services:
|
2 |
+
# Qdrant vector store.
|
3 |
+
pgvector:
|
4 |
+
image: pgvector/pgvector:pg16
|
5 |
+
restart: always
|
6 |
+
environment:
|
7 |
+
PGUSER: postgres
|
8 |
+
# The password for the default postgres user.
|
9 |
+
POSTGRES_PASSWORD: difyai123456
|
10 |
+
# The name of the default postgres database.
|
11 |
+
POSTGRES_DB: dify
|
12 |
+
# postgres data directory
|
13 |
+
PGDATA: /var/lib/postgresql/data/pgdata
|
14 |
+
volumes:
|
15 |
+
- ./volumes/pgvector/data:/var/lib/postgresql/data
|
16 |
+
# uncomment to expose db(postgresql) port to host
|
17 |
+
ports:
|
18 |
+
- "5433:5432"
|
19 |
+
healthcheck:
|
20 |
+
test: [ "CMD", "pg_isready" ]
|
21 |
+
interval: 1s
|
22 |
+
timeout: 3s
|
23 |
+
retries: 30
|
docker-legacy/docker-compose.png
ADDED
![]() |
docker-legacy/docker-compose.qdrant.yaml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
services:
|
2 |
+
# Qdrant vector store.
|
3 |
+
qdrant:
|
4 |
+
image: langgenius/qdrant:v1.7.3
|
5 |
+
restart: always
|
6 |
+
volumes:
|
7 |
+
- ./volumes/qdrant:/qdrant/storage
|
8 |
+
environment:
|
9 |
+
QDRANT_API_KEY: 'difyai123456'
|
10 |
+
ports:
|
11 |
+
- "6333:6333"
|
12 |
+
- "6334:6334"
|
docker-legacy/docker-compose.yaml
ADDED
@@ -0,0 +1,597 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3'
|
2 |
+
services:
|
3 |
+
# API service
|
4 |
+
api:
|
5 |
+
image: langgenius/dify-api:0.15.3
|
6 |
+
restart: always
|
7 |
+
environment:
|
8 |
+
# Startup mode, 'api' starts the API server.
|
9 |
+
MODE: api
|
10 |
+
# The log level for the application. Supported values are `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`
|
11 |
+
LOG_LEVEL: INFO
|
12 |
+
# enable DEBUG mode to output more logs
|
13 |
+
# DEBUG : true
|
14 |
+
# A secret key that is used for securely signing the session cookie and encrypting sensitive information on the database. You can generate a strong key using `openssl rand -base64 42`.
|
15 |
+
SECRET_KEY: sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U
|
16 |
+
# The base URL of console application web frontend, refers to the Console base URL of WEB service if console domain is
|
17 |
+
# different from api or web app domain.
|
18 |
+
# example: http://cloud.dify.ai
|
19 |
+
CONSOLE_WEB_URL: ''
|
20 |
+
# Password for admin user initialization.
|
21 |
+
# If left unset, admin user will not be prompted for a password when creating the initial admin account.
|
22 |
+
INIT_PASSWORD: ''
|
23 |
+
# The base URL of console application api server, refers to the Console base URL of WEB service if console domain is
|
24 |
+
# different from api or web app domain.
|
25 |
+
# example: http://cloud.dify.ai
|
26 |
+
CONSOLE_API_URL: ''
|
27 |
+
# The URL prefix for Service API endpoints, refers to the base URL of the current API service if api domain is
|
28 |
+
# different from console domain.
|
29 |
+
# example: http://api.dify.ai
|
30 |
+
SERVICE_API_URL: ''
|
31 |
+
# The URL prefix for Web APP frontend, refers to the Web App base URL of WEB service if web app domain is different from
|
32 |
+
# console or api domain.
|
33 |
+
# example: http://udify.app
|
34 |
+
APP_WEB_URL: ''
|
35 |
+
# File preview or download Url prefix.
|
36 |
+
# used to display File preview or download Url to the front-end or as Multi-model inputs;
|
37 |
+
# Url is signed and has expiration time.
|
38 |
+
FILES_URL: ''
|
39 |
+
# File Access Time specifies a time interval in seconds for the file to be accessed.
|
40 |
+
# The default value is 300 seconds.
|
41 |
+
FILES_ACCESS_TIMEOUT: 300
|
42 |
+
# The maximum number of active requests for the application, where 0 means unlimited, should be a non-negative integer.
|
43 |
+
APP_MAX_ACTIVE_REQUESTS: 0
|
44 |
+
# When enabled, migrations will be executed prior to application startup and the application will start after the migrations have completed.
|
45 |
+
MIGRATION_ENABLED: 'true'
|
46 |
+
# The configurations of postgres database connection.
|
47 |
+
# It is consistent with the configuration in the 'db' service below.
|
48 |
+
DB_USERNAME: postgres
|
49 |
+
DB_PASSWORD: difyai123456
|
50 |
+
DB_HOST: db
|
51 |
+
DB_PORT: 5432
|
52 |
+
DB_DATABASE: dify
|
53 |
+
# The configurations of redis connection.
|
54 |
+
# It is consistent with the configuration in the 'redis' service below.
|
55 |
+
REDIS_HOST: redis
|
56 |
+
REDIS_PORT: 6379
|
57 |
+
REDIS_USERNAME: ''
|
58 |
+
REDIS_PASSWORD: difyai123456
|
59 |
+
REDIS_USE_SSL: 'false'
|
60 |
+
# use redis db 0 for redis cache
|
61 |
+
REDIS_DB: 0
|
62 |
+
# The configurations of celery broker.
|
63 |
+
# Use redis as the broker, and redis db 1 for celery broker.
|
64 |
+
CELERY_BROKER_URL: redis://:difyai123456@redis:6379/1
|
65 |
+
# Specifies the allowed origins for cross-origin requests to the Web API, e.g. https://dify.app or * for all origins.
|
66 |
+
WEB_API_CORS_ALLOW_ORIGINS: '*'
|
67 |
+
# Specifies the allowed origins for cross-origin requests to the console API, e.g. https://cloud.dify.ai or * for all origins.
|
68 |
+
CONSOLE_CORS_ALLOW_ORIGINS: '*'
|
69 |
+
# CSRF Cookie settings
|
70 |
+
# Controls whether a cookie is sent with cross-site requests,
|
71 |
+
# providing some protection against cross-site request forgery attacks
|
72 |
+
#
|
73 |
+
# Default: `SameSite=Lax, Secure=false, HttpOnly=true`
|
74 |
+
# This default configuration supports same-origin requests using either HTTP or HTTPS,
|
75 |
+
# but does not support cross-origin requests. It is suitable for local debugging purposes.
|
76 |
+
#
|
77 |
+
# If you want to enable cross-origin support,
|
78 |
+
# you must use the HTTPS protocol and set the configuration to `SameSite=None, Secure=true, HttpOnly=true`.
|
79 |
+
#
|
80 |
+
# The type of storage to use for storing user files. Supported values are `local` and `s3` and `azure-blob` and `google-storage`, Default: `local`
|
81 |
+
STORAGE_TYPE: local
|
82 |
+
# The path to the local storage directory, the directory relative the root path of API service codes or absolute path. Default: `storage` or `/home/john/storage`.
|
83 |
+
# only available when STORAGE_TYPE is `local`.
|
84 |
+
STORAGE_LOCAL_PATH: storage
|
85 |
+
# The S3 storage configurations, only available when STORAGE_TYPE is `s3`.
|
86 |
+
S3_USE_AWS_MANAGED_IAM: 'false'
|
87 |
+
S3_ENDPOINT: 'https://xxx.r2.cloudflarestorage.com'
|
88 |
+
S3_BUCKET_NAME: 'difyai'
|
89 |
+
S3_ACCESS_KEY: 'ak-difyai'
|
90 |
+
S3_SECRET_KEY: 'sk-difyai'
|
91 |
+
S3_REGION: 'us-east-1'
|
92 |
+
# The Azure Blob storage configurations, only available when STORAGE_TYPE is `azure-blob`.
|
93 |
+
AZURE_BLOB_ACCOUNT_NAME: 'difyai'
|
94 |
+
AZURE_BLOB_ACCOUNT_KEY: 'difyai'
|
95 |
+
AZURE_BLOB_CONTAINER_NAME: 'difyai-container'
|
96 |
+
AZURE_BLOB_ACCOUNT_URL: 'https://<your_account_name>.blob.core.windows.net'
|
97 |
+
# The Google storage configurations, only available when STORAGE_TYPE is `google-storage`.
|
98 |
+
GOOGLE_STORAGE_BUCKET_NAME: 'yout-bucket-name'
|
99 |
+
# if you want to use Application Default Credentials, you can leave GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64 empty.
|
100 |
+
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64: 'your-google-service-account-json-base64-string'
|
101 |
+
# The Alibaba Cloud OSS configurations, only available when STORAGE_TYPE is `aliyun-oss`
|
102 |
+
ALIYUN_OSS_BUCKET_NAME: 'your-bucket-name'
|
103 |
+
ALIYUN_OSS_ACCESS_KEY: 'your-access-key'
|
104 |
+
ALIYUN_OSS_SECRET_KEY: 'your-secret-key'
|
105 |
+
ALIYUN_OSS_ENDPOINT: 'https://oss-ap-southeast-1-internal.aliyuncs.com'
|
106 |
+
ALIYUN_OSS_REGION: 'ap-southeast-1'
|
107 |
+
ALIYUN_OSS_AUTH_VERSION: 'v4'
|
108 |
+
# The Tencent COS storage configurations, only available when STORAGE_TYPE is `tencent-cos`.
|
109 |
+
TENCENT_COS_BUCKET_NAME: 'your-bucket-name'
|
110 |
+
TENCENT_COS_SECRET_KEY: 'your-secret-key'
|
111 |
+
TENCENT_COS_SECRET_ID: 'your-secret-id'
|
112 |
+
TENCENT_COS_REGION: 'your-region'
|
113 |
+
TENCENT_COS_SCHEME: 'your-scheme'
|
114 |
+
# The type of vector store to use. Supported values are `weaviate`, `qdrant`, `milvus`, `relyt`,`pgvector`, `chroma`, 'opensearch', 'tidb_vector'.
|
115 |
+
VECTOR_STORE: weaviate
|
116 |
+
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
|
117 |
+
WEAVIATE_ENDPOINT: http://weaviate:8080
|
118 |
+
# The Weaviate API key.
|
119 |
+
WEAVIATE_API_KEY: WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
|
120 |
+
# The Qdrant endpoint URL. Only available when VECTOR_STORE is `qdrant`.
|
121 |
+
QDRANT_URL: http://qdrant:6333
|
122 |
+
# The Qdrant API key.
|
123 |
+
QDRANT_API_KEY: difyai123456
|
124 |
+
# The Qdrant client timeout setting.
|
125 |
+
QDRANT_CLIENT_TIMEOUT: 20
|
126 |
+
# The Qdrant client enable gRPC mode.
|
127 |
+
QDRANT_GRPC_ENABLED: 'false'
|
128 |
+
# The Qdrant server gRPC mode PORT.
|
129 |
+
QDRANT_GRPC_PORT: 6334
|
130 |
+
# Milvus configuration Only available when VECTOR_STORE is `milvus`.
|
131 |
+
# The milvus uri.
|
132 |
+
MILVUS_URI: http://127.0.0.1:19530
|
133 |
+
# The milvus token.
|
134 |
+
MILVUS_TOKEN: ''
|
135 |
+
# The milvus username.
|
136 |
+
MILVUS_USER: root
|
137 |
+
# The milvus password.
|
138 |
+
MILVUS_PASSWORD: Milvus
|
139 |
+
# relyt configurations
|
140 |
+
RELYT_HOST: db
|
141 |
+
RELYT_PORT: 5432
|
142 |
+
RELYT_USER: postgres
|
143 |
+
RELYT_PASSWORD: difyai123456
|
144 |
+
RELYT_DATABASE: postgres
|
145 |
+
# pgvector configurations
|
146 |
+
PGVECTOR_HOST: pgvector
|
147 |
+
PGVECTOR_PORT: 5432
|
148 |
+
PGVECTOR_USER: postgres
|
149 |
+
PGVECTOR_PASSWORD: difyai123456
|
150 |
+
PGVECTOR_DATABASE: dify
|
151 |
+
# tidb vector configurations
|
152 |
+
TIDB_VECTOR_HOST: tidb
|
153 |
+
TIDB_VECTOR_PORT: 4000
|
154 |
+
TIDB_VECTOR_USER: xxx.root
|
155 |
+
TIDB_VECTOR_PASSWORD: xxxxxx
|
156 |
+
TIDB_VECTOR_DATABASE: dify
|
157 |
+
# oracle configurations
|
158 |
+
ORACLE_HOST: oracle
|
159 |
+
ORACLE_PORT: 1521
|
160 |
+
ORACLE_USER: dify
|
161 |
+
ORACLE_PASSWORD: dify
|
162 |
+
ORACLE_DATABASE: FREEPDB1
|
163 |
+
# Chroma configuration
|
164 |
+
CHROMA_HOST: 127.0.0.1
|
165 |
+
CHROMA_PORT: 8000
|
166 |
+
CHROMA_TENANT: default_tenant
|
167 |
+
CHROMA_DATABASE: default_database
|
168 |
+
CHROMA_AUTH_PROVIDER: chromadb.auth.token_authn.TokenAuthClientProvider
|
169 |
+
CHROMA_AUTH_CREDENTIALS: xxxxxx
|
170 |
+
# ElasticSearch Config
|
171 |
+
ELASTICSEARCH_HOST: 127.0.0.1
|
172 |
+
ELASTICSEARCH_PORT: 9200
|
173 |
+
ELASTICSEARCH_USERNAME: elastic
|
174 |
+
ELASTICSEARCH_PASSWORD: elastic
|
175 |
+
# Mail configuration, support: resend, smtp
|
176 |
+
MAIL_TYPE: ''
|
177 |
+
# default send from email address, if not specified
|
178 |
+
MAIL_DEFAULT_SEND_FROM: 'YOUR EMAIL FROM (eg: no-reply <no-reply@dify.ai>)'
|
179 |
+
SMTP_SERVER: ''
|
180 |
+
SMTP_PORT: 465
|
181 |
+
SMTP_USERNAME: ''
|
182 |
+
SMTP_PASSWORD: ''
|
183 |
+
SMTP_USE_TLS: 'true'
|
184 |
+
SMTP_OPPORTUNISTIC_TLS: 'false'
|
185 |
+
# the api-key for resend (https://resend.com)
|
186 |
+
RESEND_API_KEY: ''
|
187 |
+
RESEND_API_URL: https://api.resend.com
|
188 |
+
# The DSN for Sentry error reporting. If not set, Sentry error reporting will be disabled.
|
189 |
+
SENTRY_DSN: ''
|
190 |
+
# The sample rate for Sentry events. Default: `1.0`
|
191 |
+
SENTRY_TRACES_SAMPLE_RATE: 1.0
|
192 |
+
# The sample rate for Sentry profiles. Default: `1.0`
|
193 |
+
SENTRY_PROFILES_SAMPLE_RATE: 1.0
|
194 |
+
# Notion import configuration, support public and internal
|
195 |
+
NOTION_INTEGRATION_TYPE: public
|
196 |
+
NOTION_CLIENT_SECRET: you-client-secret
|
197 |
+
NOTION_CLIENT_ID: you-client-id
|
198 |
+
NOTION_INTERNAL_SECRET: you-internal-secret
|
199 |
+
# The sandbox service endpoint.
|
200 |
+
CODE_EXECUTION_ENDPOINT: "http://sandbox:8194"
|
201 |
+
CODE_EXECUTION_API_KEY: dify-sandbox
|
202 |
+
CODE_MAX_NUMBER: 9223372036854775807
|
203 |
+
CODE_MIN_NUMBER: -9223372036854775808
|
204 |
+
CODE_MAX_STRING_LENGTH: 80000
|
205 |
+
TEMPLATE_TRANSFORM_MAX_LENGTH: 80000
|
206 |
+
CODE_MAX_STRING_ARRAY_LENGTH: 30
|
207 |
+
CODE_MAX_OBJECT_ARRAY_LENGTH: 30
|
208 |
+
CODE_MAX_NUMBER_ARRAY_LENGTH: 1000
|
209 |
+
# SSRF Proxy server
|
210 |
+
SSRF_PROXY_HTTP_URL: 'http://ssrf_proxy:3128'
|
211 |
+
SSRF_PROXY_HTTPS_URL: 'http://ssrf_proxy:3128'
|
212 |
+
# Indexing configuration
|
213 |
+
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: 4000
|
214 |
+
depends_on:
|
215 |
+
- db
|
216 |
+
- redis
|
217 |
+
volumes:
|
218 |
+
# Mount the storage directory to the container, for storing user files.
|
219 |
+
- ./volumes/app/storage:/app/api/storage
|
220 |
+
# uncomment to expose dify-api port to host
|
221 |
+
# ports:
|
222 |
+
# - "5001:5001"
|
223 |
+
networks:
|
224 |
+
- ssrf_proxy_network
|
225 |
+
- default
|
226 |
+
|
227 |
+
# worker service
|
228 |
+
# The Celery worker for processing the queue.
|
229 |
+
worker:
|
230 |
+
image: langgenius/dify-api:0.15.3
|
231 |
+
restart: always
|
232 |
+
environment:
|
233 |
+
CONSOLE_WEB_URL: ''
|
234 |
+
# Startup mode, 'worker' starts the Celery worker for processing the queue.
|
235 |
+
MODE: worker
|
236 |
+
|
237 |
+
# --- All the configurations below are the same as those in the 'api' service. ---
|
238 |
+
|
239 |
+
# The log level for the application. Supported values are `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`
|
240 |
+
LOG_LEVEL: INFO
|
241 |
+
# A secret key that is used for securely signing the session cookie and encrypting sensitive information on the database. You can generate a strong key using `openssl rand -base64 42`.
|
242 |
+
# same as the API service
|
243 |
+
SECRET_KEY: sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U
|
244 |
+
# The configurations of postgres database connection.
|
245 |
+
# It is consistent with the configuration in the 'db' service below.
|
246 |
+
DB_USERNAME: postgres
|
247 |
+
DB_PASSWORD: difyai123456
|
248 |
+
DB_HOST: db
|
249 |
+
DB_PORT: 5432
|
250 |
+
DB_DATABASE: dify
|
251 |
+
# The configurations of redis cache connection.
|
252 |
+
REDIS_HOST: redis
|
253 |
+
REDIS_PORT: 6379
|
254 |
+
REDIS_USERNAME: ''
|
255 |
+
REDIS_PASSWORD: difyai123456
|
256 |
+
REDIS_DB: 0
|
257 |
+
REDIS_USE_SSL: 'false'
|
258 |
+
# The configurations of celery broker.
|
259 |
+
CELERY_BROKER_URL: redis://:difyai123456@redis:6379/1
|
260 |
+
# The type of storage to use for storing user files. Supported values are `local` and `s3` and `azure-blob` and `google-storage`, Default: `local`
|
261 |
+
STORAGE_TYPE: local
|
262 |
+
STORAGE_LOCAL_PATH: storage
|
263 |
+
# The S3 storage configurations, only available when STORAGE_TYPE is `s3`.
|
264 |
+
S3_USE_AWS_MANAGED_IAM: 'false'
|
265 |
+
S3_ENDPOINT: 'https://xxx.r2.cloudflarestorage.com'
|
266 |
+
S3_BUCKET_NAME: 'difyai'
|
267 |
+
S3_ACCESS_KEY: 'ak-difyai'
|
268 |
+
S3_SECRET_KEY: 'sk-difyai'
|
269 |
+
S3_REGION: 'us-east-1'
|
270 |
+
# The Azure Blob storage configurations, only available when STORAGE_TYPE is `azure-blob`.
|
271 |
+
AZURE_BLOB_ACCOUNT_NAME: 'difyai'
|
272 |
+
AZURE_BLOB_ACCOUNT_KEY: 'difyai'
|
273 |
+
AZURE_BLOB_CONTAINER_NAME: 'difyai-container'
|
274 |
+
AZURE_BLOB_ACCOUNT_URL: 'https://<your_account_name>.blob.core.windows.net'
|
275 |
+
# The Google storage configurations, only available when STORAGE_TYPE is `google-storage`.
|
276 |
+
GOOGLE_STORAGE_BUCKET_NAME: 'yout-bucket-name'
|
277 |
+
# if you want to use Application Default Credentials, you can leave GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64 empty.
|
278 |
+
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64: 'your-google-service-account-json-base64-string'
|
279 |
+
# The Alibaba Cloud OSS configurations, only available when STORAGE_TYPE is `aliyun-oss`
|
280 |
+
ALIYUN_OSS_BUCKET_NAME: 'your-bucket-name'
|
281 |
+
ALIYUN_OSS_ACCESS_KEY: 'your-access-key'
|
282 |
+
ALIYUN_OSS_SECRET_KEY: 'your-secret-key'
|
283 |
+
ALIYUN_OSS_ENDPOINT: 'https://oss-ap-southeast-1-internal.aliyuncs.com'
|
284 |
+
ALIYUN_OSS_REGION: 'ap-southeast-1'
|
285 |
+
ALIYUN_OSS_AUTH_VERSION: 'v4'
|
286 |
+
# The Tencent COS storage configurations, only available when STORAGE_TYPE is `tencent-cos`.
|
287 |
+
TENCENT_COS_BUCKET_NAME: 'your-bucket-name'
|
288 |
+
TENCENT_COS_SECRET_KEY: 'your-secret-key'
|
289 |
+
TENCENT_COS_SECRET_ID: 'your-secret-id'
|
290 |
+
TENCENT_COS_REGION: 'your-region'
|
291 |
+
TENCENT_COS_SCHEME: 'your-scheme'
|
292 |
+
# The type of vector store to use. Supported values are `weaviate`, `qdrant`, `milvus`, `relyt`, `pgvector`, `chroma`, 'opensearch', 'tidb_vector'.
|
293 |
+
VECTOR_STORE: weaviate
|
294 |
+
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
|
295 |
+
WEAVIATE_ENDPOINT: http://weaviate:8080
|
296 |
+
# The Weaviate API key.
|
297 |
+
WEAVIATE_API_KEY: WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
|
298 |
+
# The Qdrant endpoint URL. Only available when VECTOR_STORE is `qdrant`.
|
299 |
+
QDRANT_URL: http://qdrant:6333
|
300 |
+
# The Qdrant API key.
|
301 |
+
QDRANT_API_KEY: difyai123456
|
302 |
+
# The Qdrant client timeout setting.
|
303 |
+
QDRANT_CLIENT_TIMEOUT: 20
|
304 |
+
# The Qdrant client enable gRPC mode.
|
305 |
+
QDRANT_GRPC_ENABLED: 'false'
|
306 |
+
# The Qdrant server gRPC mode PORT.
|
307 |
+
QDRANT_GRPC_PORT: 6334
|
308 |
+
# Milvus configuration Only available when VECTOR_STORE is `milvus`.
|
309 |
+
# The milvus uri.
|
310 |
+
MILVUS_URI: http://127.0.0.1:19530
|
311 |
+
# The milvus token.
|
312 |
+
MILVUS_PORT: ''
|
313 |
+
# The milvus username.
|
314 |
+
MILVUS_USER: root
|
315 |
+
# The milvus password.
|
316 |
+
MILVUS_PASSWORD: Milvus
|
317 |
+
# Mail configuration, support: resend
|
318 |
+
MAIL_TYPE: ''
|
319 |
+
# default send from email address, if not specified
|
320 |
+
MAIL_DEFAULT_SEND_FROM: 'YOUR EMAIL FROM (eg: no-reply <no-reply@dify.ai>)'
|
321 |
+
SMTP_SERVER: ''
|
322 |
+
SMTP_PORT: 465
|
323 |
+
SMTP_USERNAME: ''
|
324 |
+
SMTP_PASSWORD: ''
|
325 |
+
SMTP_USE_TLS: 'true'
|
326 |
+
SMTP_OPPORTUNISTIC_TLS: 'false'
|
327 |
+
# the api-key for resend (https://resend.com)
|
328 |
+
RESEND_API_KEY: ''
|
329 |
+
RESEND_API_URL: https://api.resend.com
|
330 |
+
# relyt configurations
|
331 |
+
RELYT_HOST: db
|
332 |
+
RELYT_PORT: 5432
|
333 |
+
RELYT_USER: postgres
|
334 |
+
RELYT_PASSWORD: difyai123456
|
335 |
+
RELYT_DATABASE: postgres
|
336 |
+
# tencent configurations
|
337 |
+
TENCENT_VECTOR_DB_URL: http://127.0.0.1
|
338 |
+
TENCENT_VECTOR_DB_API_KEY: dify
|
339 |
+
TENCENT_VECTOR_DB_TIMEOUT: 30
|
340 |
+
TENCENT_VECTOR_DB_USERNAME: dify
|
341 |
+
TENCENT_VECTOR_DB_DATABASE: dify
|
342 |
+
TENCENT_VECTOR_DB_SHARD: 1
|
343 |
+
TENCENT_VECTOR_DB_REPLICAS: 2
|
344 |
+
# OpenSearch configuration
|
345 |
+
OPENSEARCH_HOST: 127.0.0.1
|
346 |
+
OPENSEARCH_PORT: 9200
|
347 |
+
OPENSEARCH_USER: admin
|
348 |
+
OPENSEARCH_PASSWORD: admin
|
349 |
+
OPENSEARCH_SECURE: 'true'
|
350 |
+
# pgvector configurations
|
351 |
+
PGVECTOR_HOST: pgvector
|
352 |
+
PGVECTOR_PORT: 5432
|
353 |
+
PGVECTOR_USER: postgres
|
354 |
+
PGVECTOR_PASSWORD: difyai123456
|
355 |
+
PGVECTOR_DATABASE: dify
|
356 |
+
# tidb vector configurations
|
357 |
+
TIDB_VECTOR_HOST: tidb
|
358 |
+
TIDB_VECTOR_PORT: 4000
|
359 |
+
TIDB_VECTOR_USER: xxx.root
|
360 |
+
TIDB_VECTOR_PASSWORD: xxxxxx
|
361 |
+
TIDB_VECTOR_DATABASE: dify
|
362 |
+
# oracle configurations
|
363 |
+
ORACLE_HOST: oracle
|
364 |
+
ORACLE_PORT: 1521
|
365 |
+
ORACLE_USER: dify
|
366 |
+
ORACLE_PASSWORD: dify
|
367 |
+
ORACLE_DATABASE: FREEPDB1
|
368 |
+
# Chroma configuration
|
369 |
+
CHROMA_HOST: 127.0.0.1
|
370 |
+
CHROMA_PORT: 8000
|
371 |
+
CHROMA_TENANT: default_tenant
|
372 |
+
CHROMA_DATABASE: default_database
|
373 |
+
CHROMA_AUTH_PROVIDER: chromadb.auth.token_authn.TokenAuthClientProvider
|
374 |
+
CHROMA_AUTH_CREDENTIALS: xxxxxx
|
375 |
+
# ElasticSearch Config
|
376 |
+
ELASTICSEARCH_HOST: 127.0.0.1
|
377 |
+
ELASTICSEARCH_PORT: 9200
|
378 |
+
ELASTICSEARCH_USERNAME: elastic
|
379 |
+
ELASTICSEARCH_PASSWORD: elastic
|
380 |
+
# Notion import configuration, support public and internal
|
381 |
+
NOTION_INTEGRATION_TYPE: public
|
382 |
+
NOTION_CLIENT_SECRET: you-client-secret
|
383 |
+
NOTION_CLIENT_ID: you-client-id
|
384 |
+
NOTION_INTERNAL_SECRET: you-internal-secret
|
385 |
+
# Indexing configuration
|
386 |
+
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: 1000
|
387 |
+
CREATE_TIDB_SERVICE_JOB_ENABLED: false
|
388 |
+
depends_on:
|
389 |
+
- db
|
390 |
+
- redis
|
391 |
+
volumes:
|
392 |
+
# Mount the storage directory to the container, for storing user files.
|
393 |
+
- ./volumes/app/storage:/app/api/storage
|
394 |
+
networks:
|
395 |
+
- ssrf_proxy_network
|
396 |
+
- default
|
397 |
+
|
398 |
+
# Frontend web application.
|
399 |
+
web:
|
400 |
+
image: langgenius/dify-web:0.15.3
|
401 |
+
restart: always
|
402 |
+
environment:
|
403 |
+
# The base URL of console application api server, refers to the Console base URL of WEB service if console domain is
|
404 |
+
# different from api or web app domain.
|
405 |
+
# example: http://cloud.dify.ai
|
406 |
+
CONSOLE_API_URL: ''
|
407 |
+
# The URL for Web APP api server, refers to the Web App base URL of WEB service if web app domain is different from
|
408 |
+
# console or api domain.
|
409 |
+
# example: http://udify.app
|
410 |
+
APP_API_URL: ''
|
411 |
+
# The DSN for Sentry error reporting. If not set, Sentry error reporting will be disabled.
|
412 |
+
SENTRY_DSN: ''
|
413 |
+
# uncomment to expose dify-web port to host
|
414 |
+
# ports:
|
415 |
+
# - "3000:3000"
|
416 |
+
|
417 |
+
# The postgres database.
|
418 |
+
db:
|
419 |
+
image: postgres:15-alpine
|
420 |
+
restart: always
|
421 |
+
environment:
|
422 |
+
PGUSER: postgres
|
423 |
+
# The password for the default postgres user.
|
424 |
+
POSTGRES_PASSWORD: difyai123456
|
425 |
+
# The name of the default postgres database.
|
426 |
+
POSTGRES_DB: dify
|
427 |
+
# postgres data directory
|
428 |
+
PGDATA: /var/lib/postgresql/data/pgdata
|
429 |
+
volumes:
|
430 |
+
- ./volumes/db/data:/var/lib/postgresql/data
|
431 |
+
# notice!: if you use windows-wsl2, postgres may not work properly due to the ntfs issue.you can use volumes to mount the data directory to the host.
|
432 |
+
# if you use the following config, you need to uncomment the volumes configuration below at the end of the file.
|
433 |
+
# - postgres:/var/lib/postgresql/data
|
434 |
+
# uncomment to expose db(postgresql) port to host
|
435 |
+
# ports:
|
436 |
+
# - "5432:5432"
|
437 |
+
healthcheck:
|
438 |
+
test: [ "CMD", "pg_isready" ]
|
439 |
+
interval: 1s
|
440 |
+
timeout: 3s
|
441 |
+
retries: 30
|
442 |
+
|
443 |
+
# The redis cache.
|
444 |
+
redis:
|
445 |
+
image: redis:6-alpine
|
446 |
+
restart: always
|
447 |
+
volumes:
|
448 |
+
# Mount the redis data directory to the container.
|
449 |
+
- ./volumes/redis/data:/data
|
450 |
+
# Set the redis password when startup redis server.
|
451 |
+
command: redis-server --requirepass difyai123456
|
452 |
+
healthcheck:
|
453 |
+
test: [ "CMD", "redis-cli", "ping" ]
|
454 |
+
# uncomment to expose redis port to host
|
455 |
+
# ports:
|
456 |
+
# - "6379:6379"
|
457 |
+
|
458 |
+
# The Weaviate vector store.
|
459 |
+
weaviate:
|
460 |
+
image: semitechnologies/weaviate:1.19.0
|
461 |
+
restart: always
|
462 |
+
volumes:
|
463 |
+
# Mount the Weaviate data directory to the container.
|
464 |
+
- ./volumes/weaviate:/var/lib/weaviate
|
465 |
+
environment:
|
466 |
+
# The Weaviate configurations
|
467 |
+
# You can refer to the [Weaviate](https://weaviate.io/developers/weaviate/config-refs/env-vars) documentation for more information.
|
468 |
+
QUERY_DEFAULTS_LIMIT: 25
|
469 |
+
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'
|
470 |
+
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
|
471 |
+
DEFAULT_VECTORIZER_MODULE: 'none'
|
472 |
+
CLUSTER_HOSTNAME: 'node1'
|
473 |
+
AUTHENTICATION_APIKEY_ENABLED: 'true'
|
474 |
+
AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih'
|
475 |
+
AUTHENTICATION_APIKEY_USERS: 'hello@dify.ai'
|
476 |
+
AUTHORIZATION_ADMINLIST_ENABLED: 'true'
|
477 |
+
AUTHORIZATION_ADMINLIST_USERS: 'hello@dify.ai'
|
478 |
+
# uncomment to expose weaviate port to host
|
479 |
+
# ports:
|
480 |
+
# - "8080:8080"
|
481 |
+
|
482 |
+
# The DifySandbox
|
483 |
+
sandbox:
|
484 |
+
image: langgenius/dify-sandbox:0.2.1
|
485 |
+
restart: always
|
486 |
+
environment:
|
487 |
+
# The DifySandbox configurations
|
488 |
+
# Make sure you are changing this key for your deployment with a strong key.
|
489 |
+
# You can generate a strong key using `openssl rand -base64 42`.
|
490 |
+
API_KEY: dify-sandbox
|
491 |
+
GIN_MODE: 'release'
|
492 |
+
WORKER_TIMEOUT: 15
|
493 |
+
ENABLE_NETWORK: 'true'
|
494 |
+
HTTP_PROXY: 'http://ssrf_proxy:3128'
|
495 |
+
HTTPS_PROXY: 'http://ssrf_proxy:3128'
|
496 |
+
SANDBOX_PORT: 8194
|
497 |
+
volumes:
|
498 |
+
- ./volumes/sandbox/dependencies:/dependencies
|
499 |
+
networks:
|
500 |
+
- ssrf_proxy_network
|
501 |
+
|
502 |
+
# ssrf_proxy server
|
503 |
+
# for more information, please refer to
|
504 |
+
# https://docs.dify.ai/learn-more/faq/install-faq#id-18.-why-is-ssrf_proxy-needed
|
505 |
+
ssrf_proxy:
|
506 |
+
image: ubuntu/squid:latest
|
507 |
+
restart: always
|
508 |
+
volumes:
|
509 |
+
# pls clearly modify the squid.conf file to fit your network environment.
|
510 |
+
- ./volumes/ssrf_proxy/squid.conf:/etc/squid/squid.conf
|
511 |
+
networks:
|
512 |
+
- ssrf_proxy_network
|
513 |
+
- default
|
514 |
+
# Qdrant vector store.
|
515 |
+
# uncomment to use qdrant as vector store.
|
516 |
+
# (if uncommented, you need to comment out the weaviate service above,
|
517 |
+
# and set VECTOR_STORE to qdrant in the api & worker service.)
|
518 |
+
# qdrant:
|
519 |
+
# image: langgenius/qdrant:v1.7.3
|
520 |
+
# restart: always
|
521 |
+
# volumes:
|
522 |
+
# - ./volumes/qdrant:/qdrant/storage
|
523 |
+
# environment:
|
524 |
+
# QDRANT_API_KEY: 'difyai123456'
|
525 |
+
# # uncomment to expose qdrant port to host
|
526 |
+
# # ports:
|
527 |
+
# # - "6333:6333"
|
528 |
+
# # - "6334:6334"
|
529 |
+
|
530 |
+
# The pgvector vector database.
|
531 |
+
# Uncomment to use qdrant as vector store.
|
532 |
+
# pgvector:
|
533 |
+
# image: pgvector/pgvector:pg16
|
534 |
+
# restart: always
|
535 |
+
# environment:
|
536 |
+
# PGUSER: postgres
|
537 |
+
# # The password for the default postgres user.
|
538 |
+
# POSTGRES_PASSWORD: difyai123456
|
539 |
+
# # The name of the default postgres database.
|
540 |
+
# POSTGRES_DB: dify
|
541 |
+
# # postgres data directory
|
542 |
+
# PGDATA: /var/lib/postgresql/data/pgdata
|
543 |
+
# volumes:
|
544 |
+
# - ./volumes/pgvector/data:/var/lib/postgresql/data
|
545 |
+
# # uncomment to expose db(postgresql) port to host
|
546 |
+
# # ports:
|
547 |
+
# # - "5433:5432"
|
548 |
+
# healthcheck:
|
549 |
+
# test: [ "CMD", "pg_isready" ]
|
550 |
+
# interval: 1s
|
551 |
+
# timeout: 3s
|
552 |
+
# retries: 30
|
553 |
+
|
554 |
+
# The oracle vector database.
|
555 |
+
# Uncomment to use oracle23ai as vector store. Also need to Uncomment volumes block
|
556 |
+
# oracle:
|
557 |
+
# image: container-registry.oracle.com/database/free:latest
|
558 |
+
# restart: always
|
559 |
+
# ports:
|
560 |
+
# - 1521:1521
|
561 |
+
# volumes:
|
562 |
+
# - type: volume
|
563 |
+
# source: oradata
|
564 |
+
# target: /opt/oracle/oradata
|
565 |
+
# - ./startupscripts:/opt/oracle/scripts/startup
|
566 |
+
# environment:
|
567 |
+
# - ORACLE_PWD=Dify123456
|
568 |
+
# - ORACLE_CHARACTERSET=AL32UTF8
|
569 |
+
|
570 |
+
|
571 |
+
# The nginx reverse proxy.
|
572 |
+
# used for reverse proxying the API service and Web service.
|
573 |
+
nginx:
|
574 |
+
image: nginx:latest
|
575 |
+
restart: always
|
576 |
+
volumes:
|
577 |
+
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
578 |
+
- ./nginx/proxy.conf:/etc/nginx/proxy.conf
|
579 |
+
- ./nginx/conf.d:/etc/nginx/conf.d
|
580 |
+
#- ./nginx/ssl:/etc/ssl
|
581 |
+
depends_on:
|
582 |
+
- api
|
583 |
+
- web
|
584 |
+
ports:
|
585 |
+
- "80:80"
|
586 |
+
#- "443:443"
|
587 |
+
# notice: if you use windows-wsl2, postgres may not work properly due to the ntfs issue.you can use volumes to mount the data directory to the host.
|
588 |
+
# volumes:
|
589 |
+
# postgres:
|
590 |
+
networks:
|
591 |
+
# create a network between sandbox, api and ssrf_proxy, and can not access outside.
|
592 |
+
ssrf_proxy_network:
|
593 |
+
driver: bridge
|
594 |
+
internal: true
|
595 |
+
|
596 |
+
#volumes:
|
597 |
+
# oradata:
|
docker-legacy/nginx/conf.d/default.conf
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
server {
|
2 |
+
listen 80;
|
3 |
+
server_name _;
|
4 |
+
|
5 |
+
location /console/api {
|
6 |
+
proxy_pass http://api:5001;
|
7 |
+
include proxy.conf;
|
8 |
+
}
|
9 |
+
|
10 |
+
location /api {
|
11 |
+
proxy_pass http://api:5001;
|
12 |
+
include proxy.conf;
|
13 |
+
}
|
14 |
+
|
15 |
+
location /v1 {
|
16 |
+
proxy_pass http://api:5001;
|
17 |
+
include proxy.conf;
|
18 |
+
}
|
19 |
+
|
20 |
+
location /files {
|
21 |
+
proxy_pass http://api:5001;
|
22 |
+
include proxy.conf;
|
23 |
+
}
|
24 |
+
|
25 |
+
location / {
|
26 |
+
proxy_pass http://web:3000;
|
27 |
+
include proxy.conf;
|
28 |
+
}
|
29 |
+
|
30 |
+
# If you want to support HTTPS, please uncomment the code snippet below
|
31 |
+
#listen 443 ssl;
|
32 |
+
#ssl_certificate ./../ssl/your_cert_file.cer;
|
33 |
+
#ssl_certificate_key ./../ssl/your_cert_key.key;
|
34 |
+
#ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
|
35 |
+
#ssl_prefer_server_ciphers on;
|
36 |
+
#ssl_session_cache shared:SSL:10m;
|
37 |
+
#ssl_session_timeout 10m;
|
38 |
+
}
|
docker-legacy/nginx/nginx.conf
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
user nginx;
|
2 |
+
worker_processes auto;
|
3 |
+
|
4 |
+
error_log /var/log/nginx/error.log notice;
|
5 |
+
pid /var/run/nginx.pid;
|
6 |
+
|
7 |
+
|
8 |
+
events {
|
9 |
+
worker_connections 1024;
|
10 |
+
}
|
11 |
+
|
12 |
+
|
13 |
+
http {
|
14 |
+
include /etc/nginx/mime.types;
|
15 |
+
default_type application/octet-stream;
|
16 |
+
|
17 |
+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
18 |
+
'$status $body_bytes_sent "$http_referer" '
|
19 |
+
'"$http_user_agent" "$http_x_forwarded_for"';
|
20 |
+
|
21 |
+
access_log /var/log/nginx/access.log main;
|
22 |
+
|
23 |
+
sendfile on;
|
24 |
+
#tcp_nopush on;
|
25 |
+
|
26 |
+
keepalive_timeout 65;
|
27 |
+
|
28 |
+
#gzip on;
|
29 |
+
client_max_body_size 15M;
|
30 |
+
|
31 |
+
include /etc/nginx/conf.d/*.conf;
|
32 |
+
}
|
docker-legacy/nginx/proxy.conf
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
proxy_set_header Host $host;
|
2 |
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
3 |
+
proxy_set_header X-Forwarded-Proto $scheme;
|
4 |
+
proxy_http_version 1.1;
|
5 |
+
proxy_set_header Connection "";
|
6 |
+
proxy_buffering off;
|
7 |
+
proxy_read_timeout 3600s;
|
8 |
+
proxy_send_timeout 3600s;
|
docker-legacy/nginx/ssl/.gitkeep
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
|
docker-legacy/startupscripts/create_user.sql
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
show pdbs;
|
2 |
+
ALTER SYSTEM SET PROCESSES=500 SCOPE=SPFILE;
|
3 |
+
alter session set container= freepdb1;
|
4 |
+
create user dify identified by dify DEFAULT TABLESPACE users quota unlimited on users;
|
5 |
+
grant DB_DEVELOPER_ROLE to dify;
|
docker-legacy/volumes/opensearch/opensearch_dashboards.yml
ADDED
@@ -0,0 +1,222 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
# Copyright OpenSearch Contributors
|
3 |
+
# SPDX-License-Identifier: Apache-2.0
|
4 |
+
|
5 |
+
# Description:
|
6 |
+
# Default configuration for OpenSearch Dashboards
|
7 |
+
|
8 |
+
# OpenSearch Dashboards is served by a back end server. This setting specifies the port to use.
|
9 |
+
# server.port: 5601
|
10 |
+
|
11 |
+
# Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values.
|
12 |
+
# The default is 'localhost', which usually means remote machines will not be able to connect.
|
13 |
+
# To allow connections from remote users, set this parameter to a non-loopback address.
|
14 |
+
# server.host: "localhost"
|
15 |
+
|
16 |
+
# Enables you to specify a path to mount OpenSearch Dashboards at if you are running behind a proxy.
|
17 |
+
# Use the `server.rewriteBasePath` setting to tell OpenSearch Dashboards if it should remove the basePath
|
18 |
+
# from requests it receives, and to prevent a deprecation warning at startup.
|
19 |
+
# This setting cannot end in a slash.
|
20 |
+
# server.basePath: ""
|
21 |
+
|
22 |
+
# Specifies whether OpenSearch Dashboards should rewrite requests that are prefixed with
|
23 |
+
# `server.basePath` or require that they are rewritten by your reverse proxy.
|
24 |
+
# server.rewriteBasePath: false
|
25 |
+
|
26 |
+
# The maximum payload size in bytes for incoming server requests.
|
27 |
+
# server.maxPayloadBytes: 1048576
|
28 |
+
|
29 |
+
# The OpenSearch Dashboards server's name. This is used for display purposes.
|
30 |
+
# server.name: "your-hostname"
|
31 |
+
|
32 |
+
# The URLs of the OpenSearch instances to use for all your queries.
|
33 |
+
# opensearch.hosts: ["http://localhost:9200"]
|
34 |
+
|
35 |
+
# OpenSearch Dashboards uses an index in OpenSearch to store saved searches, visualizations and
|
36 |
+
# dashboards. OpenSearch Dashboards creates a new index if the index doesn't already exist.
|
37 |
+
# opensearchDashboards.index: ".opensearch_dashboards"
|
38 |
+
|
39 |
+
# The default application to load.
|
40 |
+
# opensearchDashboards.defaultAppId: "home"
|
41 |
+
|
42 |
+
# Setting for an optimized healthcheck that only uses the local OpenSearch node to do Dashboards healthcheck.
|
43 |
+
# This settings should be used for large clusters or for clusters with ingest heavy nodes.
|
44 |
+
# It allows Dashboards to only healthcheck using the local OpenSearch node rather than fan out requests across all nodes.
|
45 |
+
#
|
46 |
+
# It requires the user to create an OpenSearch node attribute with the same name as the value used in the setting
|
47 |
+
# This node attribute should assign all nodes of the same cluster an integer value that increments with each new cluster that is spun up
|
48 |
+
# e.g. in opensearch.yml file you would set the value to a setting using node.attr.cluster_id:
|
49 |
+
# Should only be enabled if there is a corresponding node attribute created in your OpenSearch config that matches the value here
|
50 |
+
# opensearch.optimizedHealthcheckId: "cluster_id"
|
51 |
+
|
52 |
+
# If your OpenSearch is protected with basic authentication, these settings provide
|
53 |
+
# the username and password that the OpenSearch Dashboards server uses to perform maintenance on the OpenSearch Dashboards
|
54 |
+
# index at startup. Your OpenSearch Dashboards users still need to authenticate with OpenSearch, which
|
55 |
+
# is proxied through the OpenSearch Dashboards server.
|
56 |
+
# opensearch.username: "opensearch_dashboards_system"
|
57 |
+
# opensearch.password: "pass"
|
58 |
+
|
59 |
+
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
|
60 |
+
# These settings enable SSL for outgoing requests from the OpenSearch Dashboards server to the browser.
|
61 |
+
# server.ssl.enabled: false
|
62 |
+
# server.ssl.certificate: /path/to/your/server.crt
|
63 |
+
# server.ssl.key: /path/to/your/server.key
|
64 |
+
|
65 |
+
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
|
66 |
+
# These files are used to verify the identity of OpenSearch Dashboards to OpenSearch and are required when
|
67 |
+
# xpack.security.http.ssl.client_authentication in OpenSearch is set to required.
|
68 |
+
# opensearch.ssl.certificate: /path/to/your/client.crt
|
69 |
+
# opensearch.ssl.key: /path/to/your/client.key
|
70 |
+
|
71 |
+
# Optional setting that enables you to specify a path to the PEM file for the certificate
|
72 |
+
# authority for your OpenSearch instance.
|
73 |
+
# opensearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
|
74 |
+
|
75 |
+
# To disregard the validity of SSL certificates, change this setting's value to 'none'.
|
76 |
+
# opensearch.ssl.verificationMode: full
|
77 |
+
|
78 |
+
# Time in milliseconds to wait for OpenSearch to respond to pings. Defaults to the value of
|
79 |
+
# the opensearch.requestTimeout setting.
|
80 |
+
# opensearch.pingTimeout: 1500
|
81 |
+
|
82 |
+
# Time in milliseconds to wait for responses from the back end or OpenSearch. This value
|
83 |
+
# must be a positive integer.
|
84 |
+
# opensearch.requestTimeout: 30000
|
85 |
+
|
86 |
+
# List of OpenSearch Dashboards client-side headers to send to OpenSearch. To send *no* client-side
|
87 |
+
# headers, set this value to [] (an empty list).
|
88 |
+
# opensearch.requestHeadersWhitelist: [ authorization ]
|
89 |
+
|
90 |
+
# Header names and values that are sent to OpenSearch. Any custom headers cannot be overwritten
|
91 |
+
# by client-side headers, regardless of the opensearch.requestHeadersWhitelist configuration.
|
92 |
+
# opensearch.customHeaders: {}
|
93 |
+
|
94 |
+
# Time in milliseconds for OpenSearch to wait for responses from shards. Set to 0 to disable.
|
95 |
+
# opensearch.shardTimeout: 30000
|
96 |
+
|
97 |
+
# Logs queries sent to OpenSearch. Requires logging.verbose set to true.
|
98 |
+
# opensearch.logQueries: false
|
99 |
+
|
100 |
+
# Specifies the path where OpenSearch Dashboards creates the process ID file.
|
101 |
+
# pid.file: /var/run/opensearchDashboards.pid
|
102 |
+
|
103 |
+
# Enables you to specify a file where OpenSearch Dashboards stores log output.
|
104 |
+
# logging.dest: stdout
|
105 |
+
|
106 |
+
# Set the value of this setting to true to suppress all logging output.
|
107 |
+
# logging.silent: false
|
108 |
+
|
109 |
+
# Set the value of this setting to true to suppress all logging output other than error messages.
|
110 |
+
# logging.quiet: false
|
111 |
+
|
112 |
+
# Set the value of this setting to true to log all events, including system usage information
|
113 |
+
# and all requests.
|
114 |
+
# logging.verbose: false
|
115 |
+
|
116 |
+
# Set the interval in milliseconds to sample system and process performance
|
117 |
+
# metrics. Minimum is 100ms. Defaults to 5000.
|
118 |
+
# ops.interval: 5000
|
119 |
+
|
120 |
+
# Specifies locale to be used for all localizable strings, dates and number formats.
|
121 |
+
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
|
122 |
+
# i18n.locale: "en"
|
123 |
+
|
124 |
+
# Set the allowlist to check input graphite Url. Allowlist is the default check list.
|
125 |
+
# vis_type_timeline.graphiteAllowedUrls: ['https://www.hostedgraphite.com/UID/ACCESS_KEY/graphite']
|
126 |
+
|
127 |
+
# Set the blocklist to check input graphite Url. Blocklist is an IP list.
|
128 |
+
# Below is an example for reference
|
129 |
+
# vis_type_timeline.graphiteBlockedIPs: [
|
130 |
+
# //Loopback
|
131 |
+
# '127.0.0.0/8',
|
132 |
+
# '::1/128',
|
133 |
+
# //Link-local Address for IPv6
|
134 |
+
# 'fe80::/10',
|
135 |
+
# //Private IP address for IPv4
|
136 |
+
# '10.0.0.0/8',
|
137 |
+
# '172.16.0.0/12',
|
138 |
+
# '192.168.0.0/16',
|
139 |
+
# //Unique local address (ULA)
|
140 |
+
# 'fc00::/7',
|
141 |
+
# //Reserved IP address
|
142 |
+
# '0.0.0.0/8',
|
143 |
+
# '100.64.0.0/10',
|
144 |
+
# '192.0.0.0/24',
|
145 |
+
# '192.0.2.0/24',
|
146 |
+
# '198.18.0.0/15',
|
147 |
+
# '192.88.99.0/24',
|
148 |
+
# '198.51.100.0/24',
|
149 |
+
# '203.0.113.0/24',
|
150 |
+
# '224.0.0.0/4',
|
151 |
+
# '240.0.0.0/4',
|
152 |
+
# '255.255.255.255/32',
|
153 |
+
# '::/128',
|
154 |
+
# '2001:db8::/32',
|
155 |
+
# 'ff00::/8',
|
156 |
+
# ]
|
157 |
+
# vis_type_timeline.graphiteBlockedIPs: []
|
158 |
+
|
159 |
+
# opensearchDashboards.branding:
|
160 |
+
# logo:
|
161 |
+
# defaultUrl: ""
|
162 |
+
# darkModeUrl: ""
|
163 |
+
# mark:
|
164 |
+
# defaultUrl: ""
|
165 |
+
# darkModeUrl: ""
|
166 |
+
# loadingLogo:
|
167 |
+
# defaultUrl: ""
|
168 |
+
# darkModeUrl: ""
|
169 |
+
# faviconUrl: ""
|
170 |
+
# applicationTitle: ""
|
171 |
+
|
172 |
+
# Set the value of this setting to true to capture region blocked warnings and errors
|
173 |
+
# for your map rendering services.
|
174 |
+
# map.showRegionBlockedWarning: false%
|
175 |
+
|
176 |
+
# Set the value of this setting to false to suppress search usage telemetry
|
177 |
+
# for reducing the load of OpenSearch cluster.
|
178 |
+
# data.search.usageTelemetry.enabled: false
|
179 |
+
|
180 |
+
# 2.4 renames 'wizard.enabled: false' to 'vis_builder.enabled: false'
|
181 |
+
# Set the value of this setting to false to disable VisBuilder
|
182 |
+
# functionality in Visualization.
|
183 |
+
# vis_builder.enabled: false
|
184 |
+
|
185 |
+
# 2.4 New Experimental Feature
|
186 |
+
# Set the value of this setting to true to enable the experimental multiple data source
|
187 |
+
# support feature. Use with caution.
|
188 |
+
# data_source.enabled: false
|
189 |
+
# Set the value of these settings to customize crypto materials to encryption saved credentials
|
190 |
+
# in data sources.
|
191 |
+
# data_source.encryption.wrappingKeyName: 'changeme'
|
192 |
+
# data_source.encryption.wrappingKeyNamespace: 'changeme'
|
193 |
+
# data_source.encryption.wrappingKey: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
194 |
+
|
195 |
+
# 2.6 New ML Commons Dashboards Feature
|
196 |
+
# Set the value of this setting to true to enable the ml commons dashboards
|
197 |
+
# ml_commons_dashboards.enabled: false
|
198 |
+
|
199 |
+
# 2.12 New experimental Assistant Dashboards Feature
|
200 |
+
# Set the value of this setting to true to enable the assistant dashboards
|
201 |
+
# assistant.chat.enabled: false
|
202 |
+
|
203 |
+
# 2.13 New Query Assistant Feature
|
204 |
+
# Set the value of this setting to false to disable the query assistant
|
205 |
+
# observability.query_assist.enabled: false
|
206 |
+
|
207 |
+
# 2.14 Enable Ui Metric Collectors in Usage Collector
|
208 |
+
# Set the value of this setting to true to enable UI Metric collections
|
209 |
+
# usageCollection.uiMetric.enabled: false
|
210 |
+
|
211 |
+
opensearch.hosts: [https://localhost:9200]
|
212 |
+
opensearch.ssl.verificationMode: none
|
213 |
+
opensearch.username: admin
|
214 |
+
opensearch.password: 'Qazwsxedc!@#123'
|
215 |
+
opensearch.requestHeadersWhitelist: [authorization, securitytenant]
|
216 |
+
|
217 |
+
opensearch_security.multitenancy.enabled: true
|
218 |
+
opensearch_security.multitenancy.tenants.preferred: [Private, Global]
|
219 |
+
opensearch_security.readonly_mode.roles: [kibana_read_only]
|
220 |
+
# Use this setting if you are running opensearch-dashboards without https
|
221 |
+
opensearch_security.cookie.secure: false
|
222 |
+
server.host: '0.0.0.0'
|
docker-legacy/volumes/sandbox/dependencies/python-requirements.txt
ADDED
File without changes
|
docker-legacy/volumes/ssrf_proxy/squid.conf
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
|
2 |
+
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
|
3 |
+
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
|
4 |
+
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
|
5 |
+
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
|
6 |
+
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
|
7 |
+
acl localnet src fc00::/7 # RFC 4193 local private network range
|
8 |
+
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
|
9 |
+
acl SSL_ports port 443
|
10 |
+
acl Safe_ports port 80 # http
|
11 |
+
acl Safe_ports port 21 # ftp
|
12 |
+
acl Safe_ports port 443 # https
|
13 |
+
acl Safe_ports port 70 # gopher
|
14 |
+
acl Safe_ports port 210 # wais
|
15 |
+
acl Safe_ports port 1025-65535 # unregistered ports
|
16 |
+
acl Safe_ports port 280 # http-mgmt
|
17 |
+
acl Safe_ports port 488 # gss-http
|
18 |
+
acl Safe_ports port 591 # filemaker
|
19 |
+
acl Safe_ports port 777 # multiling http
|
20 |
+
acl CONNECT method CONNECT
|
21 |
+
http_access deny !Safe_ports
|
22 |
+
http_access deny CONNECT !SSL_ports
|
23 |
+
http_access allow localhost manager
|
24 |
+
http_access deny manager
|
25 |
+
http_access allow localhost
|
26 |
+
include /etc/squid/conf.d/*.conf
|
27 |
+
http_access deny all
|
28 |
+
|
29 |
+
################################## Proxy Server ################################
|
30 |
+
http_port 3128
|
31 |
+
coredump_dir /var/spool/squid
|
32 |
+
refresh_pattern ^ftp: 1440 20% 10080
|
33 |
+
refresh_pattern ^gopher: 1440 0% 1440
|
34 |
+
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
|
35 |
+
refresh_pattern \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
|
36 |
+
refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims
|
37 |
+
refresh_pattern \/InRelease$ 0 0% 0 refresh-ims
|
38 |
+
refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
|
39 |
+
refresh_pattern . 0 20% 4320
|
40 |
+
|
41 |
+
# upstream proxy, set to your own upstream proxy IP to avoid SSRF attacks
|
42 |
+
# cache_peer 172.1.1.1 parent 3128 0 no-query no-digest no-netdb-exchange default
|
43 |
+
|
44 |
+
|
45 |
+
################################## Reverse Proxy To Sandbox ################################
|
46 |
+
http_port 8194 accel vhost
|
47 |
+
cache_peer sandbox parent 8194 0 no-query originserver
|
48 |
+
acl src_all src all
|
49 |
+
http_access allow src_all
|