-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
145 lines (134 loc) · 5.14 KB
/
docker-compose.yaml
File metadata and controls
145 lines (134 loc) · 5.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
services:
# --------------- Custom Quiddity Containers ---------------
backend:
image: visual_data_map/backend
build:
context: ./
dockerfile: ./docker/backend.Dockerfile
volumes:
- quiddity_data:/data
- ${HOME}/.config/gcloud/application_default_credentials.json:/app/pdferret/application_default_credentials.json
- .env:/app/backend/.env
# ports: # expose port outside of this virtual network
# - "127.0.0.1:55125:55125"
environment:
- data_backend_host=http://localhost:55125
- postgres_host=postgres
- BACKEND_AUTHENTICATION_SECRET
- backend_host=http://localhost:55125
- vector_database_host=qdrant
- search_engine_host=opensearch
- GPU_UTILITY_SERVER_URL=http://gpu-utility-server:55180
- PDFERRET_BASE_URL=http://pdferret:80
- LOCAL_MODEL_SERVER_URL=http://infinity-model-server:55181
- GOOGLE_APPLICATION_CREDENTIALS=/app/pdferret/application_default_credentials.json
- DJANGO_SUPERUSER_USERNAME=${DJANGO_SUPERUSER_USERNAME:-admin@example.com}
- DJANGO_SUPERUSER_EMAIL=${DJANGO_SUPERUSER_EMAIL:-admin@example.com}
- DJANGO_SUPERUSER_PASSWORD=${DJANGO_SUPERUSER_PASSWORD:-admin}
- OPENSEARCH_USERNAME=admin
- OPENSEARCH_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD}
# More env variables are taken from the .env file that is copied into the container.
# Changing variables there will require a rebuild of the container!
webserver:
image: visual_data_map/webserver
build:
context: ./frontend
dockerfile: ../docker/webserver.Dockerfile
ports: # this should be the only port in this docker compose setup that is exposed to the outside (except DB dashboards)
- "${WEBSERVER_EXPOSED_IP_V4:-127.0.0.1}:55140:55140"
- "${WEBSERVER_EXPOSED_IP_V6:-[::1]}:55140:55140"
environment:
- backend_host=http://backend:55125
# --------------- 3rd Party Containers ---------------
qdrant:
image: "qdrant/qdrant:latest"
volumes:
- qdrant_storage:/qdrant/storage
# ports: # expose port outside of this virtual network
# - "${QDRANT_EXPOSED_IP:-127.0.0.1}:${QDRANT_EXPOSED_PORT:-6333}:6333" # needed for qdrant web dashboard
opensearch:
image: "opensearchproject/opensearch:latest"
volumes:
- opensearch_data:/usr/share/opensearch/data
- ./docker/resources/german_decompound.txt:/usr/share/opensearch/config/german_decompound.txt
- ./docker/resources/german_synonym.txt:/usr/share/opensearch/config/german_synonym.txt
- ./docker/resources/hyphenation_patterns_de_DR.xml:/usr/share/opensearch/config/hyphenation_patterns_de_DR.xml
# ports: # expose port outside of this virtual network
# - "127.0.0.1:9200:9200"
# - "127.0.0.1:9600:9600"
environment:
- discovery.type=single-node
- http.port=9200
- http.cors.allow-origin=http://localhost:1358,http://127.0.0.1:1358
- http.cors.enabled=true
- http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
- http.cors.allow-credentials=true
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD}
postgres:
image: postgres:16
command: -c 'max_connections=500'
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=visdatamap
# ports: # expose port outside of this virtual network
# - "127.0.0.1:${POSTGRES_EXPOSED_PORT:-5432}:5432"
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:latest
ports: # exposed to the outside, remember to use a secure password
- "${OPENSEARCH_DASHBOARD_EXPOSED_IP:-127.0.0.1}:${OPENSEARCH_DASHBOARD_EXPOSED_PORT:-5601}:5601"
environment:
OPENSEARCH_HOSTS: '["https://opensearch:9200"]'
swag:
image: lscr.io/linuxserver/swag:latest
container_name: swag
profiles:
- https_proxy # the container only starts if env variable COMPOSE_PROFILES=https_proxy
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- URL=${SERVER_URL}
- VALIDATION=http
# - SUBDOMAINS=www, #optional
# - CERTPROVIDER= #optional
# - DNSPLUGIN=cloudflare #optional
# - PROPAGATION= #optional
- EMAIL=${SSL_CERT_EMAIL}
volumes:
- ./swag_https_proxy_config:/config
ports:
- 443:443
- 80:80 #optional
restart: unless-stopped
infinity-model-server:
image: michaelf34/infinity:latest-cpu
volumes:
- infinity_model_cache:/app/.cache
# ports: # expose port outside of this virtual network
# - 127.0.0.1:55181:55181
command: # add any models needed, e.g. CLIP
- v2
- --model-id
- intfloat/e5-base-v2
- --model-id
- intfloat/multilingual-e5-base
- --model-id
- intfloat/multilingual-e5-large-instruct
- --model-id
- allenai/specter2_base
- --port
- "55181"
volumes:
quiddity_data:
qdrant_storage:
opensearch_data:
postgres_data:
infinity_model_cache:
networks:
default:
name: visualdatamapnetwork