aferrmt commited on
Commit
fc5f491
·
1 Parent(s): 9b2dfd6

0.5 Adding Docker file and docker compose

Browse files
Files changed (2) hide show
  1. Dockerfile +10 -6
  2. docker-compose.yml +22 -40
Dockerfile CHANGED
@@ -4,17 +4,21 @@ WORKDIR /app
4
  RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install -y --no-install-recommends build-essential
5
 
6
 
7
-
8
- # Install Python dependencies
9
  COPY requirements.txt .
10
  RUN pip install --no-cache-dir -r requirements.txt
11
 
12
- # Copy application files
13
  COPY . .
14
 
15
- # Set environment variables
16
- ENV MODEL_PATH="./kai-model-7.2B-Q4_0.gguf"
17
- ENV GUARDRAILS_PATH="./config"
 
18
 
 
19
  EXPOSE 8000
 
 
 
20
  CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
 
4
  RUN apt-get update && apt-get install -y eatmydata && eatmydata apt-get install -y --no-install-recommends build-essential
5
 
6
 
7
+ # Install Python deps first (better caching)
 
8
  COPY requirements.txt .
9
  RUN pip install --no-cache-dir -r requirements.txt
10
 
11
+ # Copy app code
12
  COPY . .
13
 
14
+ # Default envs (can override at runtime)
15
+ ENV OPENAI_API_KEY=sk-no-key-needed
16
+ # If you’ll use docker-compose with a llama.cpp service named "llama":
17
+ ENV OPENAI_API_BASE=http://llama:8001/v1
18
 
19
+ # Expose FastAPI port
20
  EXPOSE 8000
21
+
22
+ # Run server
23
+
24
  CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
docker-compose.yml CHANGED
@@ -1,46 +1,28 @@
1
- # docker-compose.yml
 
2
  services:
3
- api:
4
- image: kai-api
5
- ports:
6
- - "8000:8000"
7
- command: uvicorn main:app --host 0.0.0.0
8
- n8n:
9
- image: n8nio/n8n:1.101.1
10
  ports:
11
- - "5678:5678"
12
- depends_on:
13
- - api
14
- environment:
15
- - N8N_SECURE_COOKIE=false
16
- - N8N_PROTOCOL=http
17
- - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
18
- - DB_POSTGRESDB_PASSWORD=dbpass
19
- - N8N_OWNER_EMAIL=[email protected]
20
- - N8N_OWNER_PASSWORD=yourStrongPassword
21
- - N8N_ENCRYPTION_KEY=yourEncryptionKey
22
-
23
 
24
- openweb:
25
- image: ghcr.io/open-webui/open-webui:main
26
- container_name: open-webui
27
  ports:
28
- - "3000:8080"
29
- volumes:
30
- - openwebui_data:/app/backend/data
31
  environment:
32
- # Disable multi-user login (optional)
33
- - WEBUI_AUTH=False
34
- # If you want Open WebUI to hit your FastAPI or n8n endpoints,
35
- # you can point it here, e.g.:
36
- # - API_BASE_URL=http://fastapi:8000
37
  depends_on:
38
- - api
39
- - n8n
40
-
41
- volumes:
42
- openwebui_data:
43
-
44
- networks:
45
- default:
46
- driver: bridge
 
1
+ version: '3.8'
2
+
3
  services:
4
+ llama:
5
+ image: ghcr.io/ggerganov/llama.cpp:server
6
+ container_name: llama_server
 
 
 
 
7
  ports:
8
+ - "8001:8001"
9
+ volumes:
10
+ - ./models:/models:ro
11
+ command: >
12
+ --model /models/kai-model-7.2B-Q4_0.gguf
13
+ --alias kai-model:latest
14
+ --host 0.0.0.0
15
+ --port 8001
16
+ --n_ctx 4096
17
+ --n_threads 4
 
 
18
 
19
+ fastapi:
20
+ build: .
21
+ container_name: kai_fastapi
22
  ports:
23
+ - "8000:8000"
 
 
24
  environment:
25
+ OPENAI_API_BASE: "http://llama:8001/v1"
26
+ OPENAI_API_KEY: "sk-no-key-needed"
 
 
 
27
  depends_on:
28
+ - llama