Working openwebui deployment for testing

This commit is contained in:
2025-03-25 14:42:10 +00:00
parent 15105d5507
commit ddff49d7de
6 changed files with 2927 additions and 6 deletions

103
devenv.lock Normal file
View File

@@ -0,0 +1,103 @@
{
"nodes": {
"devenv": {
"locked": {
"dir": "src/modules",
"lastModified": 1741670053,
"owner": "cachix",
"repo": "devenv",
"rev": "47abb5dfd5b7824a0979ef86f3986aea48847312",
"type": "github"
},
"original": {
"dir": "src/modules",
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1741379162,
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1733477122,
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "rolling",
"repo": "devenv-nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": [
"git-hooks"
]
}
}
},
"root": "root",
"version": 7
}

View File

@@ -9,12 +9,13 @@
languages.python = {
enable = true;
uv = {
enable = true;
sync = {
enable = true;
allExtras = true;
uv.enable = true;
};
tasks = {
"eng-assistant:deploy-stack" = {
exec = "docker compose up -d";
before = ["devenv:enterShell"];
};
};
}

89
docker-compose.yaml Normal file
View File

@@ -0,0 +1,89 @@
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
networks:
- webui
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
environment:
WEBUI_AUTH: False
# Jupyter API config
ENABLE_CODE_INTERPRETER: True
CODE_EXECUTION_ENGINE: jupyter
CODE_EXECUTION_JUPYTER_URL: http://jupyter:8888
CODE_EXECUTION_JUPYTER_AUTH: token
CODE_EXECUTION_JUPYTER_AUTH_TOKEN: ${JUPYTER_TOKEN}
CODE_EXECUTION_JUPYTER_TIMEOUT: 300
CODE_INTERPRETER_ENGINE: jupyter
CODE_INTERPRETER_JUPYTER_URL: http://jupyter:8888
CODE_INTERPRETER_JUPYTER_AUTH: token
CODE_INTERPRETER_AUTH_TOKEN: ${JUPYTER_TOKEN}
CODE_INTERPRETER_TIMEOUT: 300
# Search API config
ENABLE_RAG_WEB_SEARCH: True
RAG_WEB_SEARCH_ENGINE: searxng
RAG_WEB_SEARCH_RESULT_COUNT: 3
RAG_WEB_SEARCH_CONCURRENT_REQUESTS: 10
SEARXNG_QUERY_URL: http://searxng:8080/search?q=<query>
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
depends_on:
- jupyter
- searxng
jupyter:
image: quay.io/jupyter/datascience-notebook
container_name: jupyter
volumes:
- jupyter:/home/jovyan/work
networks:
- webui
command: start-notebook.sh --ip=0.0.0.0
environment:
JUPYTER_LAB_ENABLE: yes
JUPYTER_TOKEN: ${JUPYTER_TOKEN}
depends_on:
- webui
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
volumes:
- searxng:/etc/searxng:rw
- ./searxng/limiter.toml:/usr/local/searxng/searx/limiter.toml
- ./searxng/settings.yml:/usr/local/searxng/searx/settings.yml
- ./searxng/uwsgi.ini:/usr/local/searxng/searx/uwsgi.ini
networks:
- webui
environment:
SEARXNG_HOSTNAME: searxng:8080/
BASE_URL: http://searxng:8080/
INSTANCE_NAME: eng_assistant_test_searxng
restart: unless-stopped
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
webui:
volumes:
searxng:
open-webui:
jupyter:

10
searxng/limiter.toml Normal file
View File

@@ -0,0 +1,10 @@
# 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 = false
[botdetection.ip_lists]
block_ip = []
pass_ip = []

2668
searxng/settings.yml Normal file

File diff suppressed because it is too large Load Diff

50
searxng/uwsgi.ini Normal file
View File

@@ -0,0 +1,50 @@
[uwsgi]
# Who will run the code
uid = searxng
gid = searxng
# Number of workers (usually CPU count)
# default value: %k (= number of CPU core, see Dockerfile)
workers = %k
# Number of threads per worker
# default value: 4 (see Dockerfile)
threads = 4
# The right granted on the created socket
chmod-socket = 666
# Plugin to use and interpreter config
single-interpreter = true
master = true
plugin = python3
lazy-apps = true
enable-threads = 4
# Module to import
module = searx.webapp
# Virtualenv and python path
pythonpath = /usr/local/searxng/
chdir = /usr/local/searxng/searx/
# automatically set processes name to something meaningful
auto-procname = true
# Disable request logging for privacy
disable-logging = true
log-5xx = true
# Set the max size of a request (request-body excluded)
buffer-size = 8192
# No keep alive
# See https://github.com/searx/searx-docker/issues/24
add-header = Connection: close
# uwsgi serves the static files
static-map = /static=/usr/local/searxng/searx/static
# expires set to one day
static-expires = /* 86400
static-gzip-all = True
offload-threads = 4