create project
This commit is contained in:
20
.env.example
Normal file
20
.env.example
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Open WebUI Configuration for aichat.zoneco.org
|
||||||
|
# Copy this to .env and fill in your values
|
||||||
|
|
||||||
|
# OpenAI API Key
|
||||||
|
OPENAI_API_KEY=your_openai_api_key_here
|
||||||
|
|
||||||
|
# Optional: Additional configuration
|
||||||
|
# WEBUI_NAME=AI Chat Zoneco
|
||||||
|
# WEBUI_URL=https://aichat.zoneco.org
|
||||||
|
# WEBUI_SECRET_KEY=your_secret_key_here
|
||||||
|
# DEFAULT_USER_ROLE=user
|
||||||
|
# ENABLE_SIGNUP=true
|
||||||
|
# ENABLE_LOGIN=true
|
||||||
|
# ENABLE_OAUTH_SIGNUP=false
|
||||||
|
# DEFAULT_MODELS=gpt-4
|
||||||
|
|
||||||
|
# DOCKER_IMAGE_TAG=ghcr.io/open-webui/open-webui:main
|
||||||
|
# CONTAINER_NAME=funzone_aichat
|
||||||
|
# HOST_PORT=3005
|
||||||
|
# CONTAINER_PORT=8080
|
||||||
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
|
||||||
|
# Docker volumes
|
||||||
|
data/
|
||||||
|
volumes/
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
78
README.md
Normal file
78
README.md
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# AI Chat - Open WebUI for aichat.zoneco.org
|
||||||
|
|
||||||
|
This folder contains the configuration for deploying [Open WebUI](https://github.com/open-webui/open-webui) at `aichat.zoneco.org`.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### 1. Configure Environment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit `.env` and set your OpenAI API key:
|
||||||
|
|
||||||
|
```
|
||||||
|
OPENAI_API_KEY=sk-your-actual-api-key-here
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Deployment Options
|
||||||
|
|
||||||
|
#### Option A: Deploy with the main infrastructure (recommended)
|
||||||
|
|
||||||
|
The aichat service is already included in `funzone-infrastructure/docker-compose.yml`. Simply deploy from the infrastructure folder:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ../funzone-infrastructure
|
||||||
|
docker-compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Option B: Deploy standalone
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose -f docker-compose.aichat.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
This requires the `funzone-net` Docker network to exist. If it doesn't, create it:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker network create funzone-net
|
||||||
|
```
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
- The container `funzone_aichat` runs Open WebUI on port 8080 (mapped to `127.0.0.1:3005`)
|
||||||
|
- Nginx proxies `https://aichat.zoneco.org` → `http://funzone_aichat:8080`
|
||||||
|
- WebSocket connections are supported for streaming AI responses
|
||||||
|
- Data is persisted in the `open-webui-data` Docker volume
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
| Variable | Required | Description |
|
||||||
|
|----------|----------|-------------|
|
||||||
|
| `OPENAI_API_KEY` | Yes | Your OpenAI API key |
|
||||||
|
| `WEBUI_NAME` | No | Display name for the UI |
|
||||||
|
| `WEBUI_URL` | No | Public URL of the instance |
|
||||||
|
| `WEBUI_SECRET_KEY` | No | Secret key for authentication |
|
||||||
|
| `DEFAULT_USER_ROLE` | No | Default role for new users |
|
||||||
|
| `ENABLE_SIGNUP` | No | Allow user registration |
|
||||||
|
| `ENABLE_LOGIN` | No | Allow user login |
|
||||||
|
| `DEFAULT_MODELS` | No | Default models to use |
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
| File | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `.env.example` | Example environment variables |
|
||||||
|
| `.env` | Your actual environment variables (gitignored) |
|
||||||
|
| `docker-compose.aichat.yml` | Standalone docker-compose for aichat |
|
||||||
|
| `README.md` | This file |
|
||||||
|
|
||||||
|
## Infrastructure Files Modified
|
||||||
|
|
||||||
|
| File | Change |
|
||||||
|
|------|--------|
|
||||||
|
| `funzone-infrastructure/nginx/sites-available/aichat.zoneco.org.conf` | Nginx server block for aichat subdomain |
|
||||||
|
| `funzone-infrastructure/nginx/nginx.conf` | Added upstream `aichat-service` pointing to `funzone_aichat:8080` |
|
||||||
|
| `funzone-infrastructure/nginx/Dockerfile` | Added symlink for aichat config |
|
||||||
|
| `funzone-infrastructure/docker-compose.yml` | Added aichat service and `open-webui-data` volume |
|
||||||
47
docker-compose.aichat.yml
Normal file
47
docker-compose.aichat.yml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
# Standalone docker-compose for aichat.zoneco.org (Open WebUI)
|
||||||
|
# This can be used independently or the service can be added to the main docker-compose.yml
|
||||||
|
#
|
||||||
|
# Deployment command (standalone):
|
||||||
|
# docker-compose -f docker-compose.aichat.yml up -d
|
||||||
|
#
|
||||||
|
# Or with the main infrastructure, just deploy the main docker-compose.yml
|
||||||
|
# which already includes this service.
|
||||||
|
|
||||||
|
networks:
|
||||||
|
funzone-net:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
# Open WebUI - AI Chat Interface
|
||||||
|
# https://github.com/open-webui/open-webui
|
||||||
|
aichat:
|
||||||
|
image: ghcr.io/open-webui/open-webui:main
|
||||||
|
container_name: funzone_aichat
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:3005:8080" # Only localhost access (proxied through nginx)
|
||||||
|
environment:
|
||||||
|
- OPENAI_API_KEY=${OPENAI_API_KEY:-your_openai_api_key_here}
|
||||||
|
# Optional: Uncomment and configure as needed
|
||||||
|
# - WEBUI_NAME=AI Chat Zoneco
|
||||||
|
# - WEBUI_URL=https://aichat.zoneco.org
|
||||||
|
# - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}
|
||||||
|
# - DEFAULT_USER_ROLE=user
|
||||||
|
# - ENABLE_SIGNUP=true
|
||||||
|
# - ENABLE_LOGIN=true
|
||||||
|
# - DEFAULT_MODELS=gpt-4
|
||||||
|
volumes:
|
||||||
|
- open-webui-data:/app/backend/data
|
||||||
|
networks:
|
||||||
|
- funzone-net
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
start_period: 40s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
open-webui-data:
|
||||||
Reference in New Issue
Block a user