feat: Add Open WebUI and code-server for AI development
Add Open WebUI for ChatGPT-like interface to local Ollama models with RAG capabilities for documentation Q&A. Add code-server for web-based VS Code access with AI coding assistants. - Open WebUI accessible at ai.fig.systems - code-server accessible at code.fig.systems - Both integrated with local Ollama instance
This commit is contained in:
parent
4a0be9ff93
commit
fb25e9fea4
2 changed files with 97 additions and 0 deletions
42
compose/services/code-server/compose.yaml
Normal file
42
compose/services/code-server/compose.yaml
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# code-server - VS Code in the browser with AI coding support
|
||||||
|
# Docs: https://github.com/coder/code-server
|
||||||
|
|
||||||
|
services:
|
||||||
|
code-server:
|
||||||
|
container_name: code-server
|
||||||
|
image: lscr.io/linuxserver/code-server:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ./config:/config
|
||||||
|
# Mount your homelab directory for editing
|
||||||
|
- /home/eduardo_figueroa/homelab:/config/workspace/homelab
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- homelab
|
||||||
|
|
||||||
|
labels:
|
||||||
|
# Traefik
|
||||||
|
traefik.enable: true
|
||||||
|
traefik.docker.network: homelab
|
||||||
|
|
||||||
|
# Web UI
|
||||||
|
traefik.http.routers.code-server.rule: Host(`code.fig.systems`)
|
||||||
|
traefik.http.routers.code-server.entrypoints: websecure
|
||||||
|
traefik.http.routers.code-server.tls.certresolver: letsencrypt
|
||||||
|
traefik.http.services.code-server.loadbalancer.server.port: 8443
|
||||||
|
|
||||||
|
# SSO Protection
|
||||||
|
traefik.http.routers.code-server.middlewares: tinyauth
|
||||||
|
|
||||||
|
# Homarr Discovery
|
||||||
|
homarr.name: Code Server (IDE)
|
||||||
|
homarr.group: Services
|
||||||
|
homarr.icon: mdi:microsoft-visual-studio-code
|
||||||
|
|
||||||
|
networks:
|
||||||
|
homelab:
|
||||||
|
external: true
|
||||||
55
compose/services/open-webui/compose.yaml
Normal file
55
compose/services/open-webui/compose.yaml
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
# Open WebUI - ChatGPT-style interface for Ollama
|
||||||
|
# Docs: https://docs.openwebui.com/
|
||||||
|
|
||||||
|
services:
|
||||||
|
open-webui:
|
||||||
|
container_name: open-webui
|
||||||
|
image: ghcr.io/open-webui/open-webui:main
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ./data:/app/backend/data
|
||||||
|
|
||||||
|
environment:
|
||||||
|
# Ollama connection
|
||||||
|
- OLLAMA_BASE_URL=http://ollama:11434
|
||||||
|
|
||||||
|
# Enable RAG (Retrieval-Augmented Generation)
|
||||||
|
- ENABLE_RAG_WEB_SEARCH=true
|
||||||
|
- RAG_WEB_SEARCH_ENGINE=searxng
|
||||||
|
|
||||||
|
# Web search (optional, requires searxng)
|
||||||
|
- ENABLE_RAG_WEB_SEARCH=false
|
||||||
|
|
||||||
|
# Default model
|
||||||
|
- DEFAULT_MODELS=qwen2.5-coder:7b
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- homelab
|
||||||
|
|
||||||
|
labels:
|
||||||
|
# Traefik
|
||||||
|
traefik.enable: true
|
||||||
|
traefik.docker.network: homelab
|
||||||
|
|
||||||
|
# Web UI
|
||||||
|
traefik.http.routers.open-webui.rule: Host(`ai.fig.systems`)
|
||||||
|
traefik.http.routers.open-webui.entrypoints: websecure
|
||||||
|
traefik.http.routers.open-webui.tls.certresolver: letsencrypt
|
||||||
|
traefik.http.services.open-webui.loadbalancer.server.port: 8080
|
||||||
|
|
||||||
|
# No SSO - Open WebUI has its own auth system
|
||||||
|
# Uncomment to add SSO protection:
|
||||||
|
# traefik.http.routers.open-webui.middlewares: tinyauth
|
||||||
|
|
||||||
|
# Homarr Discovery
|
||||||
|
homarr.name: Open WebUI (AI Chat)
|
||||||
|
homarr.group: Services
|
||||||
|
homarr.icon: mdi:robot
|
||||||
|
|
||||||
|
networks:
|
||||||
|
homelab:
|
||||||
|
external: true
|
||||||
Loading…
Reference in a new issue