feat: add ollama & PostgresSQL & Qdrant & RabbitMQ
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Alex Sun
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
19
src/ollama/README.md
Normal file
19
src/ollama/README.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Ollama
|
||||||
|
|
||||||
|
拉取 DeepSeek R1 7B 模型:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -it ollama ollama pull deepseek-r1:7b
|
||||||
|
```
|
||||||
|
|
||||||
|
列出本地所有模型:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -it ollama ollama list
|
||||||
|
```
|
||||||
|
|
||||||
|
API 请求获取本地所有模型:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl http://localhost:11434/api/tags 2> /dev/null | jq
|
||||||
|
```
|
||||||
35
src/ollama/docker-compose.yml
Normal file
35
src/ollama/docker-compose.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
x-default: &default
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- &localtime /etc/localtime:/etc/localtime:ro
|
||||||
|
- &timezone /etc/timezone:/etc/timezone:ro
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: 100m
|
||||||
|
|
||||||
|
services:
|
||||||
|
ollama:
|
||||||
|
<<: *default
|
||||||
|
image: ollama/ollama:${OLLAMA_VERSION:-0.12.0}
|
||||||
|
ports:
|
||||||
|
- "${OLLAMA_PORT:-11434}:11434"
|
||||||
|
volumes:
|
||||||
|
- *localtime
|
||||||
|
- *timezone
|
||||||
|
- ollama_models:/root/.ollama
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '8.0'
|
||||||
|
memory: 4G
|
||||||
|
reservations:
|
||||||
|
cpus: '2.0'
|
||||||
|
memory: 2G
|
||||||
|
devices:
|
||||||
|
- driver: nvidia
|
||||||
|
device_ids: [ '0' ]
|
||||||
|
capabilities: [ gpu ]
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
ollama_models:
|
||||||
1
src/postgres/.env.example
Normal file
1
src/postgres/.env.example
Normal file
@@ -0,0 +1 @@
|
|||||||
|
POSTGRES_PASSWORD=
|
||||||
38
src/postgres/docker-compose.yaml
Normal file
38
src/postgres/docker-compose.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
x-default: &default
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- &localtime /etc/localtime:/etc/localtime:ro
|
||||||
|
- &timezone /etc/timezone:/etc/timezone:ro
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: 100m
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
<<: *default
|
||||||
|
image: postgres:${POSTGRES_VERSION:-17.6}
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
||||||
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
|
volumes:
|
||||||
|
- *localtime
|
||||||
|
- *timezone
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
# Initialize the database with a custom SQL script
|
||||||
|
# - ./init.sql:/docker-entrypoint-initdb.d/init.sql
|
||||||
|
ports:
|
||||||
|
- "${POSTGRES_PORT:-5432}:5432"
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1.0'
|
||||||
|
memory: 1G
|
||||||
|
reservations:
|
||||||
|
cpus: '0.5'
|
||||||
|
memory: 512M
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
14
src/qdrant/.env.example
Normal file
14
src/qdrant/.env.example
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Qdrant Version
|
||||||
|
QDRANT_VERSION="v1.15.4"
|
||||||
|
|
||||||
|
# Qdrant API Key
|
||||||
|
QDRANT_API_KEY=
|
||||||
|
|
||||||
|
# Use RBAC
|
||||||
|
QDRANT_JWT_RBAC=true
|
||||||
|
|
||||||
|
# HTTP Port
|
||||||
|
QDRANT_HTTP_PORT=
|
||||||
|
|
||||||
|
# gRPC Port
|
||||||
|
QDRANT_GRPC_PORT=
|
||||||
5
src/qdrant/README.md
Normal file
5
src/qdrant/README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Qdrant
|
||||||
|
|
||||||
|
## 鉴权
|
||||||
|
|
||||||
|
Qdrant 支持 [API 密钥](https://qdrant.tech/documentation/guides/security/#read-only-api-key)和 [JWT 令牌](https://qdrant.tech/documentation/guides/security/#granular-access-control-with-jwt)两种鉴权方式。
|
||||||
35
src/qdrant/docker-compose.yaml
Normal file
35
src/qdrant/docker-compose.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
x-default: &default
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- &localtime /etc/localtime:/etc/localtime:ro
|
||||||
|
- &timezone /etc/timezone:/etc/timezone:ro
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: 100m
|
||||||
|
|
||||||
|
services:
|
||||||
|
qdrant:
|
||||||
|
<<: *default
|
||||||
|
image: qdrant/qdrant:${QDRANT_VERSION:-v1.15.4}
|
||||||
|
ports:
|
||||||
|
- "${QDRANT_HTTP_PORT:-6333}:6333"
|
||||||
|
- "${QDRANT_GRPC_PORT:-6334}:6334"
|
||||||
|
volumes:
|
||||||
|
- *localtime
|
||||||
|
- *timezone
|
||||||
|
- qdrant_data:/qdrant/storage:z
|
||||||
|
environment:
|
||||||
|
- QDRANT__SERVICE__API_KEY=${QDRANT_API_KEY}
|
||||||
|
- QDRANT__SERVICE__JWT_RBAC=${QDRANT_JWT_RBAC:-false}
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1.0'
|
||||||
|
memory: 1G
|
||||||
|
reservations:
|
||||||
|
cpus: '0.5'
|
||||||
|
memory: 256M
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
qdrant_data:
|
||||||
1
src/rabbitmq/README.md
Normal file
1
src/rabbitmq/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# RabbitMQ
|
||||||
35
src/rabbitmq/docker-compose.yaml
Normal file
35
src/rabbitmq/docker-compose.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
x-default: &default
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- &localtime /etc/localtime:/etc/localtime:ro
|
||||||
|
- &timezone /etc/timezone:/etc/timezone:ro
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: 100m
|
||||||
|
|
||||||
|
services:
|
||||||
|
rabbitmq:
|
||||||
|
<<: *default
|
||||||
|
image: rabbitmq:${RABBITMQ_VERSION:-4.1.4-management-alpine}
|
||||||
|
volumes:
|
||||||
|
- rabbitmq_data:/var/lib/rabbitmq
|
||||||
|
- *localtime
|
||||||
|
- *timezone
|
||||||
|
ports:
|
||||||
|
- ${RABBITMQ_PORT:-5672}:5672
|
||||||
|
- ${RABBITMQ_MANAGEMENT_PORT:-15672}:15672
|
||||||
|
environment:
|
||||||
|
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-admin}
|
||||||
|
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-password}
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1.0'
|
||||||
|
memory: 1G
|
||||||
|
reservations:
|
||||||
|
cpus: '0.5'
|
||||||
|
memory: 512M
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
rabbitmq_data:
|
||||||
@@ -20,7 +20,7 @@ services:
|
|||||||
- *timezone
|
- *timezone
|
||||||
- redis_data:/data
|
- redis_data:/data
|
||||||
|
|
||||||
# !! Uncomment to use a custom redis.conf file
|
# Use a custom redis.conf file
|
||||||
# - ./redis.conf:/etc/redis/redis.conf
|
# - ./redis.conf:/etc/redis/redis.conf
|
||||||
environment:
|
environment:
|
||||||
- SKIP_FIX_PERMS=${SKIP_FIX_PERMS:-}
|
- SKIP_FIX_PERMS=${SKIP_FIX_PERMS:-}
|
||||||
|
|||||||
Reference in New Issue
Block a user