Merge pull request #2980 from rennokki/feature/ai-templates
New services: LLM & AI-related one-click services
166
public/svgs/anythingllm.svg
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0.00 0.00 245.00 245.00">
|
||||||
|
<path stroke="#919393" stroke-width="2.00" fill="none" stroke-linecap="butt" vector-effect="non-scaling-stroke" d="
|
||||||
|
M 187.03 159.00
|
||||||
|
L 161.49 159.00
|
||||||
|
A 1.24 1.24 0.0 0 1 160.48 158.48
|
||||||
|
Q 153.96 149.33 147.89 140.81
|
||||||
|
C 145.78 137.86 141.80 138.01 139.49 140.67
|
||||||
|
C 136.43 144.17 133.65 147.56 136.44 151.42
|
||||||
|
Q 142.22 159.39 148.22 167.98
|
||||||
|
Q 152.74 174.47 160.49 174.57
|
||||||
|
Q 173.94 174.73 188.79 174.60
|
||||||
|
C 196.64 174.52 203.24 168.72 203.23 160.63
|
||||||
|
Q 203.16 123.84 203.20 83.74
|
||||||
|
C 203.21 78.41 199.97 73.56 195.17 71.35
|
||||||
|
Q 191.90 69.85 186.23 69.92
|
||||||
|
Q 173.94 70.08 161.37 69.94
|
||||||
|
C 156.39 69.89 152.10 71.63 149.08 75.49
|
||||||
|
Q 117.03 116.46 84.45 158.09
|
||||||
|
A 2.37 2.35 -70.9 0 1 82.59 159.00
|
||||||
|
L 57.21 159.00
|
||||||
|
Q 56.65 159.00 56.65 158.45
|
||||||
|
L 56.66 85.95
|
||||||
|
Q 56.66 85.31 57.30 85.31
|
||||||
|
L 83.00 85.31
|
||||||
|
A 0.80 0.79 71.0 0 1 83.63 85.62
|
||||||
|
Q 90.51 94.60 97.61 104.71
|
||||||
|
C 99.47 107.36 103.07 108.21 105.48 105.83
|
||||||
|
Q 107.60 103.72 109.70 100.67
|
||||||
|
C 110.60 99.36 110.38 97.79 110.28 96.30
|
||||||
|
Q 110.23 95.62 109.82 95.07
|
||||||
|
Q 103.03 85.94 96.91 77.34
|
||||||
|
C 93.63 72.73 89.66 69.98 84.18 70.00
|
||||||
|
Q 71.60 70.05 56.56 69.96
|
||||||
|
C 50.37 69.93 45.44 72.61 42.63 78.14
|
||||||
|
Q 41.19 80.99 41.25 87.27
|
||||||
|
Q 41.55 120.87 41.27 158.11
|
||||||
|
Q 41.23 162.77 42.32 165.57
|
||||||
|
Q 44.32 170.75 49.37 173.22
|
||||||
|
Q 52.63 174.81 60.03 174.72
|
||||||
|
Q 72.58 174.56 82.84 174.65
|
||||||
|
Q 91.13 174.73 95.47 169.18
|
||||||
|
Q 127.35 128.40 160.51 86.00
|
||||||
|
A 1.81 1.80 18.9 0 1 161.93 85.31
|
||||||
|
L 187.42 85.31
|
||||||
|
A 0.40 0.40 0.0 0 1 187.82 85.71
|
||||||
|
L 187.82 158.21
|
||||||
|
Q 187.82 159.00 187.03 159.00"
|
||||||
|
/>
|
||||||
|
<path fill="#222627" d="
|
||||||
|
M 46.00 0.00
|
||||||
|
L 198.80 0.00
|
||||||
|
Q 221.03 2.81 233.86 19.40
|
||||||
|
Q 244.84 33.61 244.80 52.00
|
||||||
|
Q 244.65 120.20 244.83 188.95
|
||||||
|
Q 244.86 199.26 243.39 205.30
|
||||||
|
Q 241.12 214.72 235.86 222.46
|
||||||
|
C 234.56 224.37 232.98 226.08 231.56 227.86
|
||||||
|
Q 229.92 229.91 227.88 231.54
|
||||||
|
C 226.00 233.04 224.26 234.66 222.24 236.01
|
||||||
|
Q 214.15 241.39 204.78 243.49
|
||||||
|
Q 198.73 244.86 188.67 244.83
|
||||||
|
Q 119.30 244.65 52.55 244.80
|
||||||
|
Q 32.84 244.84 18.81 233.38
|
||||||
|
Q 2.64 220.18 0.00 198.69
|
||||||
|
L 0.00 45.76
|
||||||
|
Q 1.42 35.66 4.33 29.79
|
||||||
|
Q 17.17 3.86 46.00 0.00
|
||||||
|
Z
|
||||||
|
M 187.03 159.00
|
||||||
|
L 161.49 159.00
|
||||||
|
A 1.24 1.24 0.0 0 1 160.48 158.48
|
||||||
|
Q 153.96 149.33 147.89 140.81
|
||||||
|
C 145.78 137.86 141.80 138.01 139.49 140.67
|
||||||
|
C 136.43 144.17 133.65 147.56 136.44 151.42
|
||||||
|
Q 142.22 159.39 148.22 167.98
|
||||||
|
Q 152.74 174.47 160.49 174.57
|
||||||
|
Q 173.94 174.73 188.79 174.60
|
||||||
|
C 196.64 174.52 203.24 168.72 203.23 160.63
|
||||||
|
Q 203.16 123.84 203.20 83.74
|
||||||
|
C 203.21 78.41 199.97 73.56 195.17 71.35
|
||||||
|
Q 191.90 69.85 186.23 69.92
|
||||||
|
Q 173.94 70.08 161.37 69.94
|
||||||
|
C 156.39 69.89 152.10 71.63 149.08 75.49
|
||||||
|
Q 117.03 116.46 84.45 158.09
|
||||||
|
A 2.37 2.35 -70.9 0 1 82.59 159.00
|
||||||
|
L 57.21 159.00
|
||||||
|
Q 56.65 159.00 56.65 158.45
|
||||||
|
L 56.66 85.95
|
||||||
|
Q 56.66 85.31 57.30 85.31
|
||||||
|
L 83.00 85.31
|
||||||
|
A 0.80 0.79 71.0 0 1 83.63 85.62
|
||||||
|
Q 90.51 94.60 97.61 104.71
|
||||||
|
C 99.47 107.36 103.07 108.21 105.48 105.83
|
||||||
|
Q 107.60 103.72 109.70 100.67
|
||||||
|
C 110.60 99.36 110.38 97.79 110.28 96.30
|
||||||
|
Q 110.23 95.62 109.82 95.07
|
||||||
|
Q 103.03 85.94 96.91 77.34
|
||||||
|
C 93.63 72.73 89.66 69.98 84.18 70.00
|
||||||
|
Q 71.60 70.05 56.56 69.96
|
||||||
|
C 50.37 69.93 45.44 72.61 42.63 78.14
|
||||||
|
Q 41.19 80.99 41.25 87.27
|
||||||
|
Q 41.55 120.87 41.27 158.11
|
||||||
|
Q 41.23 162.77 42.32 165.57
|
||||||
|
Q 44.32 170.75 49.37 173.22
|
||||||
|
Q 52.63 174.81 60.03 174.72
|
||||||
|
Q 72.58 174.56 82.84 174.65
|
||||||
|
Q 91.13 174.73 95.47 169.18
|
||||||
|
Q 127.35 128.40 160.51 86.00
|
||||||
|
A 1.81 1.80 18.9 0 1 161.93 85.31
|
||||||
|
L 187.42 85.31
|
||||||
|
A 0.40 0.40 0.0 0 1 187.82 85.71
|
||||||
|
L 187.82 158.21
|
||||||
|
Q 187.82 159.00 187.03 159.00
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ffffff" d="
|
||||||
|
M 187.82 158.21
|
||||||
|
L 187.82 85.71
|
||||||
|
A 0.40 0.40 0.0 0 0 187.42 85.31
|
||||||
|
L 161.93 85.31
|
||||||
|
A 1.81 1.80 18.9 0 0 160.51 86.00
|
||||||
|
Q 127.35 128.40 95.47 169.18
|
||||||
|
Q 91.13 174.73 82.84 174.65
|
||||||
|
Q 72.58 174.56 60.03 174.72
|
||||||
|
Q 52.63 174.81 49.37 173.22
|
||||||
|
Q 44.32 170.75 42.32 165.57
|
||||||
|
Q 41.23 162.77 41.27 158.11
|
||||||
|
Q 41.55 120.87 41.25 87.27
|
||||||
|
Q 41.19 80.99 42.63 78.14
|
||||||
|
C 45.44 72.61 50.37 69.93 56.56 69.96
|
||||||
|
Q 71.60 70.05 84.18 70.00
|
||||||
|
C 89.66 69.98 93.63 72.73 96.91 77.34
|
||||||
|
Q 103.03 85.94 109.82 95.07
|
||||||
|
Q 110.23 95.62 110.28 96.30
|
||||||
|
C 110.38 97.79 110.60 99.36 109.70 100.67
|
||||||
|
Q 107.60 103.72 105.48 105.83
|
||||||
|
C 103.07 108.21 99.47 107.36 97.61 104.71
|
||||||
|
Q 90.51 94.60 83.63 85.62
|
||||||
|
A 0.80 0.79 71.0 0 0 83.00 85.31
|
||||||
|
L 57.30 85.31
|
||||||
|
Q 56.66 85.31 56.66 85.95
|
||||||
|
L 56.65 158.45
|
||||||
|
Q 56.65 159.00 57.21 159.00
|
||||||
|
L 82.59 159.00
|
||||||
|
A 2.37 2.35 -70.9 0 0 84.45 158.09
|
||||||
|
Q 117.03 116.46 149.08 75.49
|
||||||
|
C 152.10 71.63 156.39 69.89 161.37 69.94
|
||||||
|
Q 173.94 70.08 186.23 69.92
|
||||||
|
Q 191.90 69.85 195.17 71.35
|
||||||
|
C 199.97 73.56 203.21 78.41 203.20 83.74
|
||||||
|
Q 203.16 123.84 203.23 160.63
|
||||||
|
C 203.24 168.72 196.64 174.52 188.79 174.60
|
||||||
|
Q 173.94 174.73 160.49 174.57
|
||||||
|
Q 152.74 174.47 148.22 167.98
|
||||||
|
Q 142.22 159.39 136.44 151.42
|
||||||
|
C 133.65 147.56 136.43 144.17 139.49 140.67
|
||||||
|
C 141.80 138.01 145.78 137.86 147.89 140.81
|
||||||
|
Q 153.96 149.33 160.48 158.48
|
||||||
|
A 1.24 1.24 0.0 0 0 161.49 159.00
|
||||||
|
L 187.03 159.00
|
||||||
|
Q 187.82 159.00 187.82 158.21
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
BIN
public/svgs/argilla.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
public/svgs/infisical.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
public/svgs/langfuse.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
1
public/svgs/litellm.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#939598" d="M0 34h36v2H0z"/><path fill="#D1D3D4" d="M3 35h33V6H21c-4 0-5 2-5 2l-4 6S0 19 0 24c0 4 6 6 6 6z"/><path fill="#231F20" d="m14 35 2-3h20v3z"/><path fill="#3B88C3" d="M0 23.999c0 4 6 6 6 6V17.125C3 19 0 21.499 0 23.999M6 30v-.001z"/><path fill="#269" d="m6 30-3 5h33v-5z"/><path fill="#3B88C3" d="m20 30 4-6h12v6z"/><path fill="#55ACEE" d="M26 8H16l-4 6h-.001 10.843c.477 0 1.108-.448 1.412-1l2.197-4c.303-.552.102-1-.451-1"/><path fill="#3B88C3" d="m25.902 10 .549-1c.303-.552.102-1-.451-1H16l-1.333 2z"/></svg>
|
After Width: | Height: | Size: 593 B |
BIN
public/svgs/prefect.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
public/svgs/qdrant.png
Normal file
After Width: | Height: | Size: 11 KiB |
56
public/svgs/searxng.svg
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
id="svg8"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 92 92"
|
||||||
|
height="92mm"
|
||||||
|
width="92mm">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-40.921303,-17.416526)"
|
||||||
|
id="layer1">
|
||||||
|
<circle
|
||||||
|
r="0"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:12;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
cy="92"
|
||||||
|
cx="75"
|
||||||
|
id="path3713" />
|
||||||
|
<circle
|
||||||
|
r="30"
|
||||||
|
cy="53.902557"
|
||||||
|
cx="75.921303"
|
||||||
|
id="path834"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#3050ff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m 67.514849,37.91524 a 18,18 0 0 1 21.051475,3.312407 18,18 0 0 1 3.137312,21.078282"
|
||||||
|
id="path852"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#3050ff;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="rotate(-46.234709)"
|
||||||
|
ry="1.8669105e-13"
|
||||||
|
y="122.08995"
|
||||||
|
x="3.7063529"
|
||||||
|
height="39.963303"
|
||||||
|
width="18.846331"
|
||||||
|
id="rect912"
|
||||||
|
style="opacity:1;fill:#3050ff;fill-opacity:1;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
BIN
public/svgs/unstructured.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
public/svgs/weaviate.png
Normal file
After Width: | Height: | Size: 18 KiB |
39
templates/compose/anythingllm.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# documentation: https://docs.anythingllm.com/installation-docker/overview
|
||||||
|
# slogan: AnythingLLM is the easiest to use, all-in-one AI application that can do RAG, AI Agents, and much more with no code or infrastructure headaches.
|
||||||
|
# tags: lowcode, nocode, ai, llm, openai, anthropic, machine-learning, rag, agents, chatbot, api, team, bot
|
||||||
|
# logo: svgs/anythingllm.svg
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
storage_dir: null
|
||||||
|
hot_dir: null
|
||||||
|
outputs_dir: null
|
||||||
|
|
||||||
|
services:
|
||||||
|
anything-llm:
|
||||||
|
image: mintplexlabs/anythingllm
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_ANYTHINGLLM_3001
|
||||||
|
- STORAGE_DIR=/app/server/storage
|
||||||
|
- DISABLE_TELEMETRY=true
|
||||||
|
- PASSWORDLOWERCASE=1
|
||||||
|
- PASSWORDMAXCHAR=250
|
||||||
|
- PASSWORDMINCHAR=6
|
||||||
|
- PASSWORDNUMERIC=1
|
||||||
|
- PASSWORDREQUIREMENTS=1
|
||||||
|
- PASSWORDSYMBOL=1
|
||||||
|
- PASSWORDUPPERCASE=1
|
||||||
|
- SIG_KEY=${SERVICE_PASSWORD_SIGKEY}
|
||||||
|
- SIG_SALT=${SERVICE_PASSWORD_SIGSALT}
|
||||||
|
- JWT_SECRET=${SERVICE_PASSWORD_JWTSECRET}
|
||||||
|
- AUTH_TOKEN=${SERVICE_PASSWORD_AUTHTOKEN}
|
||||||
|
- AUTH_TOKEN=${AUTH_TOKEN}
|
||||||
|
- SERVER_PORT=${SERVER_PORT:-3001}
|
||||||
|
cap_add:
|
||||||
|
- SYS_ADMIN
|
||||||
|
volumes:
|
||||||
|
- "storage_dir:/app/server/storage"
|
||||||
|
- "hot_dir:/app/collector/hotdir"
|
||||||
|
- "outputs_dir:/app/collector/outputs"
|
||||||
|
user: "${UID:-1000}:${GID:-1000}"
|
136
templates/compose/argilla.yaml
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
# documentation: https://docs.argilla.io/latest/
|
||||||
|
# slogan: Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects.
|
||||||
|
# tags: workflow, orchestration, data-pipeline, python, argilla, ai, elasticsearch, datasets, data, machine-learning, data-science, nlp
|
||||||
|
# logo: svgs/argilla.png
|
||||||
|
# port: 6900
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
argilla:
|
||||||
|
image: "argilla/argilla-server:v2.2.0"
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_ARGILLA_6900
|
||||||
|
- ARGILLA_HOME_PATH=/var/lib/argilla
|
||||||
|
- ARGILLA_ELASTICSEARCH=http://elasticsearch:9200
|
||||||
|
- ARGILLA_DATABASE_URL=postgresql+asyncpg://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB}
|
||||||
|
- ARGILLA_REDIS_URL=redis://redis:6379/0
|
||||||
|
- ARGILLA_AUTH_SECRET_KEY="${SERVICE_PASSWORD_AUTHSECRET}"
|
||||||
|
- ARGILLA_ENABLE_TELEMETRY=0
|
||||||
|
- HF_HUB_DISABLE_TELEMETRY=1
|
||||||
|
- REINDEX_DATASETS=1
|
||||||
|
- DEFAULT_USER_ENABLED=true
|
||||||
|
- USERNAME=${ARGILLA_USERNAME:-argilla}
|
||||||
|
- PASSWORD="${SERVICE_PASSWORD_ARGILLA}"
|
||||||
|
- API_KEY="${SERVICE_PASSWORD_APIKEY}"
|
||||||
|
- DEFAULT_USER_PASSWORD="${SERVICE_PASSWORD_ARGILLA}"
|
||||||
|
- DEFAULT_USER_API_KEY="${SERVICE_PASSWORD_APIKEY}"
|
||||||
|
depends_on:
|
||||||
|
elasticsearch:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
volumes:
|
||||||
|
- "argilla_data:/var/lib/argilla"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- 'python -c "import requests as r;r.get(\"http://localhost:6900/api/_status\").raise_for_status()"'
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
worker:
|
||||||
|
image: "argilla/argilla-server:v2.2.0"
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- ARGILLA_HOME_PATH=/var/lib/argilla
|
||||||
|
- ARGILLA_ELASTICSEARCH=http://elasticsearch:9200
|
||||||
|
- ARGILLA_DATABASE_URL=postgresql+asyncpg://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB}
|
||||||
|
- ARGILLA_REDIS_URL=redis://redis:6379/0
|
||||||
|
- ARGILLA_AUTH_SECRET_KEY="${SERVICE_PASSWORD_AUTHSECRET}"
|
||||||
|
- ARGILLA_ENABLE_TELEMETRY=0
|
||||||
|
- HF_HUB_DISABLE_TELEMETRY=1
|
||||||
|
- REINDEX_DATASETS=1
|
||||||
|
- DEFAULT_USER_ENABLED=true
|
||||||
|
- USERNAME=${ARGILLA_USERNAME:-argilla}
|
||||||
|
- PASSWORD="${SERVICE_PASSWORD_ARGILLA}"
|
||||||
|
- API_KEY="${SERVICE_PASSWORD_APIKEY}"
|
||||||
|
- DEFAULT_USER_PASSWORD="${SERVICE_PASSWORD_ARGILLA}"
|
||||||
|
- DEFAULT_USER_API_KEY="${SERVICE_PASSWORD_APIKEY}"
|
||||||
|
- BACKGROUND_NUM_WORKERS=${BACKGROUND_NUM_WORKERS:-1}
|
||||||
|
depends_on:
|
||||||
|
elasticsearch:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
volumes:
|
||||||
|
- "argilla_data:/var/lib/argilla"
|
||||||
|
command: "sh -c 'python -m argilla_server worker --num-workers $${BACKGROUND_NUM_WORKERS}'"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- pwd
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
postgres:
|
||||||
|
image: "postgres:14"
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||||
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-argilla}
|
||||||
|
volumes:
|
||||||
|
- "pg_data:/var/lib/postgresql/data"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
redis:
|
||||||
|
image: "redis:7"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- "redis_data:/data"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "redis-cli -h localhost -p 6379 ping"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
elasticsearch:
|
||||||
|
image: "docker.elastic.co/elasticsearch/elasticsearch:8.12.2"
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- node.name=elasticsearch
|
||||||
|
- cluster.name=es-argilla-local
|
||||||
|
- discovery.type=single-node
|
||||||
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||||
|
- cluster.routing.allocation.disk.threshold_enabled=false
|
||||||
|
- xpack.security.enabled=false
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
volumes:
|
||||||
|
- "elasticsearch_data:/usr/share/elasticsearch/data/"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "curl --silent --fail http://elasticsearch:9200"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
argilla_data: null
|
||||||
|
elastic_data: null
|
||||||
|
redis_data: null
|
||||||
|
pg_data: null
|
75
templates/compose/infisical.yaml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# documentation: https://infisical.com/docs/documentation/getting-started/introduction
|
||||||
|
# slogan: Infisical is the open source secret management platform that developers use to centralize their application configuration and secrets like API keys and database credentials.
|
||||||
|
# tags: security, environment, secrets, infisical, database, configuration, secret, api, keys, auth, encryption
|
||||||
|
# logo: svgs/infisical.png
|
||||||
|
# port: 8080
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
backend:
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
db-migration:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
image: "infisical/infisical:latest-postgres"
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_BACKEND_8080
|
||||||
|
- SITE_URL=${SERVICE_FQDN_BACKEND_8080}
|
||||||
|
- NODE_ENV=production
|
||||||
|
- ENCRYPTION_KEY=${SERVICE_PASSWORD_ENCRYPTIONKEY}
|
||||||
|
- AUTH_SECRET=${SERVICE_REALBASE64_64_AUTHSECRET}
|
||||||
|
- DB_CONNECTION_URI=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db:5432/${POSTGRES_DB}
|
||||||
|
- REDIS_URL=redis://redis:6379
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "wget --no-verbose --tries=1 --spider http://127.0.0.1:8080/api/status || exit 1"
|
||||||
|
redis:
|
||||||
|
image: "redis:7"
|
||||||
|
environment:
|
||||||
|
- ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "redis-cli -h localhost -p 6379 ping"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
volumes:
|
||||||
|
- redis_data:/data
|
||||||
|
db:
|
||||||
|
image: "postgres:14-alpine"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- pg_data:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||||
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-infisical}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
db-migration:
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
image: "infisical/infisical:latest-postgres"
|
||||||
|
command: "npm run migration:latest"
|
||||||
|
restart: on-failure
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||||
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-infisical}
|
||||||
|
- DB_CONNECTION_URI=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db:5432/${POSTGRES_DB:-infisical}
|
||||||
|
- REDIS_URL=redis://redis:6379
|
||||||
|
volumes:
|
||||||
|
pg_data:
|
||||||
|
redis_data:
|
54
templates/compose/langfuse.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# documentation: https://langfuse.com/docs
|
||||||
|
# slogan: Langfuse is an open-source LLM engineering platform that helps teams collaboratively debug, analyze, and iterate on their LLM applications.
|
||||||
|
# tags: ai, qdrant, weaviate, langchain, openai, gpt, llm, lmops, langfuse, llmops, tracing, observation, metrics
|
||||||
|
# logo: svgs/langfuse.png
|
||||||
|
# port: 3000
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pg_data: null
|
||||||
|
|
||||||
|
services:
|
||||||
|
langfuse:
|
||||||
|
image: langfuse/langfuse:2
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_LANGFUSE_3000
|
||||||
|
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-langfuse}
|
||||||
|
- DIRECT_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-langfuse}
|
||||||
|
- SALT=$SERVICE_PASSWORD_SALT
|
||||||
|
- AUTH_DISABLE_SIGNUP=${AUTH_DISABLE_SIGNUP:-false}
|
||||||
|
- NEXTAUTH_URL=$SERVICE_FQDN_LANGFUSE_3000
|
||||||
|
- NEXTAUTH_SECRET=${SERVICE_BASE64_64_NEXTAUTHSECRET}
|
||||||
|
- TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false}
|
||||||
|
- LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-false}
|
||||||
|
- HOSTNAME=0.0.0.0
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- "-q"
|
||||||
|
- "--spider"
|
||||||
|
- "http://127.0.0.1:3000/api/public/health"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
postgres:
|
||||||
|
image: "postgres:16-alpine"
|
||||||
|
environment:
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-langfuse}
|
||||||
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||||
|
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||||
|
volumes:
|
||||||
|
- "pg_data:/var/lib/postgresql/data"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 10
|
174
templates/compose/litellm.yaml
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
# documentation: https://docs.litellm.ai
|
||||||
|
# slogan: Call all LLM APIs using the OpenAI format. Use Bedrock, Azure, OpenAI, Cohere, Anthropic, Ollama, Sagemaker, HuggingFace, Replicate, Groq (100+ LLMs)
|
||||||
|
# tags: ai, qdrant, weaviate, langchain, openai, gpt, llm, lmops, anthropic, cohere, ollama, sagemaker, huggingface, replicate, groq
|
||||||
|
# logo: svgs/litellm.svg
|
||||||
|
# port: 4000
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pg_data: null
|
||||||
|
redis_data: null
|
||||||
|
|
||||||
|
services:
|
||||||
|
litellm:
|
||||||
|
image: "ghcr.io/berriai/litellm-database:main-stable"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_LITELLM_4000
|
||||||
|
- LITELLM_LOG=ERROR
|
||||||
|
- LITELLM_MODE=PRODUCTION
|
||||||
|
- "LITELLM_MASTER_KEY=${SERVICE_PASSWORD_MASTERKEY}"
|
||||||
|
- "UI_USERNAME=${SERVICE_USER_UI}"
|
||||||
|
- "UI_PASSWORD=${SERVICE_PASSWORD_UI}"
|
||||||
|
- "DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-litellm}"
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
- REDIS_PORT=6379
|
||||||
|
- "POSTGRES_USER=${SERVICE_USER_POSTGRES}"
|
||||||
|
- "POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}"
|
||||||
|
- "POSTGRES_DB=${POSTGRES_DB:-litellm}"
|
||||||
|
- "OPENAI_API_KEY=${OPENAI_API_KEY}"
|
||||||
|
- "OPENAI_API_BASE=${OPENAI_API_BASE}"
|
||||||
|
- "ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}"
|
||||||
|
- "ANTHROPIC_API_BASE=${ANTHROPIC_API_BASE}"
|
||||||
|
- "VOYAGE_API_KEY=${VOYAGE_API_KEY}"
|
||||||
|
- "VOYAGE_API_BASE=${VOYAGE_API_BASE}"
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ./litellm-config.yaml
|
||||||
|
target: /app/config.yaml
|
||||||
|
content: |
|
||||||
|
general_settings:
|
||||||
|
proxy_batch_write_at: 60
|
||||||
|
|
||||||
|
router_settings:
|
||||||
|
redis_host: os.environ/REDIS_HOST
|
||||||
|
redis_port: os.environ/REDIS_PORT
|
||||||
|
redis_password: os.environ/REDIS_PASSWORD
|
||||||
|
enable_pre_call_check: true
|
||||||
|
|
||||||
|
litellm_settings:
|
||||||
|
set_verbose: false
|
||||||
|
json_logs: true
|
||||||
|
log_raw_request_response: true
|
||||||
|
# turn_off_message_logging: false
|
||||||
|
# redact_user_api_key_info: false
|
||||||
|
service_callback: ["prometheus_system"]
|
||||||
|
drop_params: true
|
||||||
|
# max_budget: 100
|
||||||
|
# budget_duration: 30d
|
||||||
|
num_retries: 3
|
||||||
|
request_timeout: 600
|
||||||
|
telemetry: false
|
||||||
|
cache: true
|
||||||
|
cache_params:
|
||||||
|
type: redis
|
||||||
|
host: os.environ/REDIS_HOST
|
||||||
|
port: os.environ/REDIS_PORT
|
||||||
|
password: os.environ/REDIS_PASSWORD
|
||||||
|
namespace: "litellm_cache"
|
||||||
|
ttl: 600
|
||||||
|
success_callback:
|
||||||
|
# - "langfuse"
|
||||||
|
- "prometheus"
|
||||||
|
failure_callback:
|
||||||
|
# - "langfuse"
|
||||||
|
- "prometheus"
|
||||||
|
model_list:
|
||||||
|
# OpenAI
|
||||||
|
- model_name: gpt-4
|
||||||
|
litellm_params:
|
||||||
|
model: openai/gpt-4
|
||||||
|
api_key: os.environ/OPENAI_API_KEY
|
||||||
|
api_base: os.environ/OPENAI_API_BASE
|
||||||
|
- model_name: gpt-4o
|
||||||
|
litellm_params:
|
||||||
|
model: openai/gpt-4o
|
||||||
|
api_key: os.environ/OPENAI_API_KEY
|
||||||
|
api_base: os.environ/OPENAI_API_BASE
|
||||||
|
- model_name: gpt-4o-mini
|
||||||
|
litellm_params:
|
||||||
|
model: openai/gpt-4o-mini
|
||||||
|
api_key: os.environ/OPENAI_API_KEY
|
||||||
|
api_base: os.environ/OPENAI_API_BASE
|
||||||
|
# Anthropic
|
||||||
|
- model_name: claude-3-haiku
|
||||||
|
litellm_params:
|
||||||
|
model: claude-3-haiku-20240307
|
||||||
|
api_key: "os.environ/ANTHROPIC_API_KEY"
|
||||||
|
api_base: "os.environ/ANTHROPIC_API_BASE"
|
||||||
|
- model_name: claude-3.5-sonnet
|
||||||
|
litellm_params:
|
||||||
|
model: claude-3-5-sonnet-20240620
|
||||||
|
api_key: "os.environ/ANTHROPIC_API_KEY"
|
||||||
|
api_base: "os.environ/ANTHROPIC_API_BASE"
|
||||||
|
# VoyageAI
|
||||||
|
- model_name: voyage-law-2
|
||||||
|
model_info:
|
||||||
|
output_vector_size: 1024
|
||||||
|
litellm_params:
|
||||||
|
model: voyage/voyage-law-2
|
||||||
|
api_key: "os.environ/VOYAGE_API_KEY"
|
||||||
|
api_base: "os.environ/VOYAGE_API_BASE"
|
||||||
|
# rpm: 300
|
||||||
|
# tpm: 1000000
|
||||||
|
- model_name: voyage-multilingual-2
|
||||||
|
model_info:
|
||||||
|
mode: embedding
|
||||||
|
max_tokens: 32000
|
||||||
|
max_input_tokens: 32000
|
||||||
|
output_vector_size: 1024
|
||||||
|
litellm_params:
|
||||||
|
model: voyage/voyage-multilingual-2
|
||||||
|
api_key: "os.environ/VOYAGE_API_KEY"
|
||||||
|
api_base: "os.environ/VOYAGE_API_BASE"
|
||||||
|
input_cost_per_token: 0.00000012
|
||||||
|
output_cost_per_token: 0
|
||||||
|
# rpm: 300
|
||||||
|
# tpm: 1000000
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- python
|
||||||
|
- "-c"
|
||||||
|
- "import requests as r;r.get('http://127.0.0.1:4000/health/liveliness').raise_for_status()"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
command:
|
||||||
|
- "--config"
|
||||||
|
- /app/config.yaml
|
||||||
|
- "--port"
|
||||||
|
- "4000"
|
||||||
|
- "--num_workers"
|
||||||
|
- "8"
|
||||||
|
postgres:
|
||||||
|
image: "postgres:16-alpine"
|
||||||
|
environment:
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-litellm}
|
||||||
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||||
|
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||||
|
volumes:
|
||||||
|
- "pg_data:/var/lib/postgresql/data"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
redis:
|
||||||
|
image: redis:7-alpine
|
||||||
|
command: redis-server --appendonly yes
|
||||||
|
volumes:
|
||||||
|
- redis_data:/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
87
templates/compose/prefect.yaml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# documentation: https://www.prefect.io/
|
||||||
|
# slogan: Prefect is an orchestration and observability platform that empowers developers to build and scale workflows quickly.
|
||||||
|
# tags: workflow, orchestration, data-pipeline, python, automation, data-processing, data-integration, etl
|
||||||
|
# logo: svgs/prefect.png
|
||||||
|
# port: 4200
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pg_data:
|
||||||
|
|
||||||
|
services:
|
||||||
|
prefect:
|
||||||
|
image: "prefecthq/prefect:3-latest"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
postgresql:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_PREFECT_4200
|
||||||
|
- PREFECT_API_DATABASE_CONNECTION_URL=postgresql+asyncpg://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql:5432/${POSTGRES_DB:-prefect}
|
||||||
|
- PREFECT_API_KEY=${SERVICE_PASSWORD_APIKEY}
|
||||||
|
- PREFECT_EXPERIMENTAL_WARN=true
|
||||||
|
- PREFECT_EXPERIMENTAL_ENABLE_SCHEDULE_CONCURRENCY=true
|
||||||
|
- PREFECT_RUNNER_SERVER_ENABLE=true
|
||||||
|
- PREFECT_DEFAULT_WORK_POOL_NAME=${DEFAULT_POOL_NAME:-default}
|
||||||
|
command:
|
||||||
|
- prefect
|
||||||
|
- server
|
||||||
|
- start
|
||||||
|
- "--host"
|
||||||
|
- 0.0.0.0
|
||||||
|
- "--port"
|
||||||
|
- "4200"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- python
|
||||||
|
- "-c"
|
||||||
|
- "import requests as r;r.get('http://127.0.0.1:4200/api/health').raise_for_status()"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
postgresql:
|
||||||
|
image: "postgres:16-alpine"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- "pg_data:/var/lib/postgresql/data"
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||||
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-prefect}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
agent:
|
||||||
|
image: "prefecthq/prefect:3-python3.12"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
prefect:
|
||||||
|
condition: service_healthy
|
||||||
|
entrypoint:
|
||||||
|
- /opt/prefect/entrypoint.sh
|
||||||
|
- prefect
|
||||||
|
- worker
|
||||||
|
- start
|
||||||
|
- "--pool=$${DEFAULT_POOL_NAME}"
|
||||||
|
- "--with-healthcheck"
|
||||||
|
- "--name=$${DEFAULT_WORKER_NAME}"
|
||||||
|
- "--limit=$${DEFAULT_POOL_LIMIT}"
|
||||||
|
environment:
|
||||||
|
- PREFECT_API_URL=http://prefect:4200/api
|
||||||
|
- PREFECT_API_KEY=${SERVICE_PASSWORD_APIKEY}
|
||||||
|
- DEFAULT_POOL_NAME=${DEFAULT_POOL_NAME:-default}
|
||||||
|
- DEFAULT_POOL_LIMIT=${DEFAULT_POOL_LIMIT:-1}
|
||||||
|
- DEFAULT_WORKER_NAME=${DEFAULT_WORKER_NAME:-worker1}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- pwd
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
27
templates/compose/qdrant.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# documentation: https://qdrant.tech/documentation/
|
||||||
|
# slogan: Qdrant is a vector similarity search engine that provides a production-ready service with a convenient API to store, search, and manage points (i.e. vectors) with an additional payload.
|
||||||
|
# tags: ai, vector-database, semantic-search, machine-learning, bm25, embeddings, llm
|
||||||
|
# logo: svgs/qdrant.png
|
||||||
|
# port: 6333
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
qdrant_storage: null
|
||||||
|
|
||||||
|
services:
|
||||||
|
qdrant:
|
||||||
|
image: "qdrant/qdrant:latest"
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_QDRANT_6333
|
||||||
|
- QDRANT__SERVICE__API_KEY=${SERVICE_PASSWORD_QDRANTAPIKEY}
|
||||||
|
volumes:
|
||||||
|
- "qdrant_storage:/qdrant/storage"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- bash -c ':> /dev/tcp/127.0.0.1/6333' || exit 1
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
78
templates/compose/searxng.yaml
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# documentation: https://docs.searxng.org
|
||||||
|
# slogan: SearXNG is a free internet metasearch engine which aggregates results from more than 70 search services.
|
||||||
|
# tags: search, google, engine, images, documents, rss, proxy, news, web, api
|
||||||
|
# logo: svgs/searxng.svg
|
||||||
|
# port: 8080
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
redis_data: null
|
||||||
|
|
||||||
|
services:
|
||||||
|
searxng:
|
||||||
|
image: searxng/searxng
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_SEARXNG_8080
|
||||||
|
- INSTANCE_NAME=coolify
|
||||||
|
- BASE_URL=${SERVICE_FQDN_SEARXNG_8080}
|
||||||
|
- SEARXNG_URL=${SERVICE_FQDN_SEARXNG_8080}
|
||||||
|
- SEARXNG_BIND_ADDRESS=0.0.0.0
|
||||||
|
- SEARXNG_SECRET=${SERVICE_PASSWORD_SEARXNGSECRET}
|
||||||
|
- SEARXNG_REDIS_URL=redis://redis:6379/0
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- "-q"
|
||||||
|
- "--spider"
|
||||||
|
- "http://127.0.0.1:8080/healthz"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ./settings.yml
|
||||||
|
target: /etc/searxng/settings.yml
|
||||||
|
content: |
|
||||||
|
# see https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings
|
||||||
|
use_default_settings: true
|
||||||
|
server:
|
||||||
|
limiter: false
|
||||||
|
image_proxy: true
|
||||||
|
search:
|
||||||
|
formats:
|
||||||
|
- html
|
||||||
|
- csv
|
||||||
|
- json
|
||||||
|
- rss
|
||||||
|
ui:
|
||||||
|
static_use_hash: true
|
||||||
|
- type: bind
|
||||||
|
source: ./limiter.toml
|
||||||
|
target: /etc/searxng/limiter.toml
|
||||||
|
content: |
|
||||||
|
# This configuration file updates the default configuration file
|
||||||
|
# See https://github.com/searxng/searxng/blob/master/searx/botdetection/limiter.toml
|
||||||
|
|
||||||
|
[botdetection.ip_limit]
|
||||||
|
# activate link_token method in the ip_limit method
|
||||||
|
link_token = true
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: "redis:7"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- "redis_data:/data"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- redis-cli
|
||||||
|
- ping
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
24
templates/compose/unstructured.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# documentation: https://github.com/Unstructured-IO/unstructured-api?tab=readme-ov-file#--general-pre-processing-pipeline-for-documents
|
||||||
|
# slogan: Unstructured provides a platform and tools to ingest and process unstructured documents for Retrieval Augmented Generation (RAG) and model fine-tuning.
|
||||||
|
# tags: workflow, orchestration, data-pipeline, python, data, machine-learning, data-science, nlp, unstructured, ocr, data-extraction
|
||||||
|
# logo: svgs/unstructured.png
|
||||||
|
# port: 8000
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
unstructured:
|
||||||
|
image: "downloads.unstructured.io/unstructured-io/unstructured-api:latest"
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_UNSTRUCTURED_8000
|
||||||
|
- "UNSTRUCTURED_API_KEY=${SERVICE_PASSWORD_APIKEY}"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- "-qO-"
|
||||||
|
- "--spider"
|
||||||
|
- "http://0.0.0.0:8000/healthcheck"
|
||||||
|
interval: 15s
|
||||||
|
timeout: 15s
|
||||||
|
retries: 3
|
50
templates/compose/weaviate.yaml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# documentation: https://weaviate.io/developers/weaviate
|
||||||
|
# slogan: Weaviate is an open-source vector database that stores both objects and vectors, allowing for combining vector search with structured filtering.
|
||||||
|
# tags: ai, vector-database, semantic-search, machine-learning, bm25, embeddings, llm
|
||||||
|
# logo: svgs/weaviate.png
|
||||||
|
# port: 8080
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
weaviate:
|
||||||
|
image: "cr.weaviate.io/semitechnologies/weaviate:1.26.4"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- "weaviate_data:/var/lib/weaviate"
|
||||||
|
command:
|
||||||
|
- "--host"
|
||||||
|
- 0.0.0.0
|
||||||
|
- "--port"
|
||||||
|
- "8080"
|
||||||
|
- "--scheme"
|
||||||
|
- http
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_WEAVIATE_8080
|
||||||
|
- DISABLE_TELEMETRY=true
|
||||||
|
- QUERY_DEFAULTS_LIMIT=1000
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
- GOMEMLIMIT=${GOMEMLIMIT:-1024MiB}
|
||||||
|
- GOMAXPROCS=${GOMAXPROCS:-2}
|
||||||
|
- AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false
|
||||||
|
- AUTHORIZATION_ADMINLIST_USERS=${AUTHORIZATION_ADMINLIST_USERS:-admin@example.com}
|
||||||
|
- AUTHENTICATION_APIKEY_USERS=${AUTHENTICATION_APIKEY_USERS:-admin@example.com}
|
||||||
|
- AUTHENTICATION_APIKEY_ENABLED=true
|
||||||
|
- "AUTHENTICATION_APIKEY_ALLOWED_KEYS=${SERVICE_PASSWORD_APIKEYS}"
|
||||||
|
- PERSISTENCE_DATA_PATH=/var/lib/weaviate
|
||||||
|
- DEFAULT_VECTORIZER_MODULE=none
|
||||||
|
- ENABLE_MODULES=${ENABLE_MODULES:-text2vec-openai,generative-openai,qna-openai}
|
||||||
|
- CLUSTER_HOSTNAME=node1
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- "-q"
|
||||||
|
- "--spider"
|
||||||
|
- "http://localhost:8080/v1/.well-known/ready"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
weaviate_data: null
|