-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.local.yml
116 lines (108 loc) · 3.01 KB
/
docker-compose.local.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
version: "3.8"
services:
watchtower:
image: containrrr/watchtower:latest-dev
container_name: watchtower
command:
- "--label-enable"
- "--interval"
- "86400" # Changed from 30 to 86400 (24 hours) as a fallback
- "--cleanup" # Added to remove old images
- "--rolling-restart"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ~/app/.docker/config.json:/root/.docker/config.json
environment:
- DOCKER_CONFIG=/root/.docker
- TZ=UTC
networks:
- app-network
traefik:
image: traefik:v3.0
command:
- "--providers.docker"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
# - "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- app-network
db:
image: postgres:14-alpine
container_name: klark_db
restart: unless-stopped
environment:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
POSTGRES_DB: klarkdb
volumes:
- db_data:/var/lib/postgresql/data
networks:
- app-network
minio:
image: minio/minio
container_name: klark_minio
restart: unless-stopped
command: server /data
environment:
MINIO_ROOT_USER: minio_username
MINIO_ROOT_PASSWORD: minio_password
volumes:
- minio_data:/data
networks:
- app-network
chroma:
image: ghcr.io/chroma-core/chroma:latest
container_name: klark_chroma
restart: unless-stopped
volumes:
- chroma_data:/chroma/chroma
networks:
- app-network
app:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.app.rule=Host(`localhost`)"
- "traefik.http.routers.app.entrypoints=web"
- "traefik.http.services.app.loadbalancer.server.port=3000"
- "com.centurylinklabs.watchtower.enable=true"
environment:
BASE_URL: http://localhost:3000
POSTGRES_USER: username
DATABASE_URL: postgres://username:password@db:5432/klarkdb
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
RESEND_API_KEY: ${RESEND_API_KEY}
EMAIL_FROM: ${EMAIL_FROM}
OPEN_AI_MODEL: ${OPEN_AI_MODEL}
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENAI_VERBOSE: ${OPENAI_VERBOSE}
MINIO_ENDPOINT: http://minio:9000
MINIO_ACCESS_KEY: minio_username
MINIO_SECRET_KEY: minio_password
MINIO_BUCKET: uploads
CHROMA_URL: http://chroma:8000
LAST_K_CHAT_HISTORY: 5
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: ${NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY}
NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY}
NEXT_PUBLIC_POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST}
NEXT_PUBLIC_COMING_SOON_MODE: false
NODE_ENV: development
depends_on:
- db
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
db_data:
minio_data:
chroma_data: