Initial Commit
This commit is contained in:
commit
230a3a4855
|
@ -0,0 +1,3 @@
|
|||
/files/
|
||||
/config/mcpo/config.json
|
||||
/.env
|
|
@ -0,0 +1,19 @@
|
|||
# Local AI and Automation Docker Suite
|
||||
|
||||
## Docker Compose Contains
|
||||
|
||||
- Ollama (LLM Host)
|
||||
- Open WebUI (Chat Interface)
|
||||
- MCPO Server (Model Context Protocol relay server)
|
||||
- N8N (Automation)
|
||||
- PostgresDB (for N8N)
|
||||
- Jupyter Notebook
|
||||
|
||||
## Install Instructions
|
||||
|
||||
1. Copy ```sample.env``` to ```.env```
|
||||
2. Edit ```.env``` file to contain your ultimate secret passwords
|
||||
3. Copy ```config/mcpo/sample.config.json``` to ```config/mcpo/config.json```
|
||||
4. Note -- there is no need to edit the config.json file right away
|
||||
5. From the root directory (of this repo) run ```docker compose up -d```
|
||||
6. If you experience any errors, run it again until it stands completely up
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"mcpServers": {
|
||||
"time": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-time", "--local-timezone=America/Denver"]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
services:
|
||||
ollama:
|
||||
volumes:
|
||||
- ./files/ollama:/root/.ollama
|
||||
container_name: ollama
|
||||
pull_policy: always
|
||||
tty: true
|
||||
restart: unless-stopped
|
||||
image: ollama/ollama:latest
|
||||
ports:
|
||||
- '11434:11434'
|
||||
open-webui:
|
||||
image: 'ghcr.io/open-webui/open-webui:main'
|
||||
restart: always
|
||||
container_name: open-webui
|
||||
volumes:
|
||||
- './files/open-webui:/app/backend/data'
|
||||
depends_on:
|
||||
- ollama
|
||||
environment:
|
||||
- OLLAMA_BASE_URL=http://ollama:11434
|
||||
- WEBUI_NAME=BioGPT
|
||||
- ENABLE_CODE_INTERPRETER=True
|
||||
- CODE_INTERPRETER_ENGINE=jupyter
|
||||
- CODE_INTERPRETER_JUPYTER_URL=http://jupyer:8888
|
||||
- CODE_INTERPRETER_JUPYTER_AUTH=token
|
||||
- CODE_INTERPRETER_JUPYTER_AUTH_TOKEN=${JUPYTER_TOKEN}
|
||||
ports:
|
||||
- '8080:8080'
|
||||
# open-webui-pipelines:
|
||||
# image: 'ghcr.io/open-webui/pipelines:main'
|
||||
# restart: always
|
||||
# container_name: pipelines
|
||||
# volumes:
|
||||
# - './files/pipelines:/app/pipelines'
|
||||
# extra_hosts:
|
||||
# - 'host.docker.internal:host-gateway'
|
||||
# ports:
|
||||
# - '9099:9099'
|
||||
mcposerver:
|
||||
command: ["--config", "/app/conf/config.json"]
|
||||
#env_file: env/mcposerver.env
|
||||
image: ghcr.io/open-webui/mcpo:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./config/mcpo:/app/conf:ro
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- '8000:8000'
|
||||
depends_on:
|
||||
- n8n
|
||||
postgres:
|
||||
image: postgres:16
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER
|
||||
- POSTGRES_PASSWORD
|
||||
- POSTGRES_DB
|
||||
- POSTGRES_NON_ROOT_USER
|
||||
- POSTGRES_NON_ROOT_PASSWORD
|
||||
volumes:
|
||||
- ./files/postgres_storage:/var/lib/postgresql/data
|
||||
- ./files/init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
|
||||
ports:
|
||||
- 5434:5432
|
||||
healthcheck:
|
||||
test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
n8n:
|
||||
image: docker.n8n.io/n8nio/n8n
|
||||
restart: always
|
||||
environment:
|
||||
- DB_TYPE=postgresdb
|
||||
- DB_POSTGRESDB_HOST=postgres
|
||||
- DB_POSTGRESDB_PORT=5432
|
||||
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
|
||||
- DB_POSTGRESDB_USER=${POSTGRES_USER}
|
||||
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- WEBHOOK_URL=http://n8n
|
||||
- GENERIC_TIMEZONE=${TIMEZONE}
|
||||
ports:
|
||||
- 5678:5678
|
||||
links:
|
||||
- postgres
|
||||
volumes:
|
||||
- ./files/n8n_storage:/home/node/.n8n
|
||||
- ./files/n8n_data:/data
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
jupyter:
|
||||
image: jupyter/datascience-notebook:latest
|
||||
ports:
|
||||
- "8910:8888"
|
||||
volumes:
|
||||
- ./files/notebooks:/home/jovyan/work
|
||||
environment:
|
||||
- JUPYTER_TOKEN=${JUPYTER_TOKEN}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
POSTGRES_USER=postUser
|
||||
POSTGRES_PASSWORD=SUPERSECRETPASSWORD
|
||||
POSTGRES_DB=n8n
|
||||
|
||||
POSTGRES_NON_ROOT_USER=postNon
|
||||
POSTGRES_NON_ROOT_PASSWORD=A-DIFFERENT-PASSWORD
|
||||
|
||||
TIMEZONE='America/Denver'
|
||||
|
||||
JUPYTER_TOKEN=YET-ANOTHER-PASSWORD
|
Loading…
Reference in New Issue