-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
104 lines (98 loc) · 2.97 KB
/
Copy pathdocker-compose.yml
File metadata and controls
104 lines (98 loc) · 2.97 KB
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
services:
db:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: app
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d app"]
interval: 5s
timeout: 3s
retries: 10
# Open-source database admin UI: http://localhost:8081
# (server: db, user: postgres, password: password, database: app)
adminer:
image: adminer:latest
profiles: ["tools"]
restart: unless-stopped
depends_on:
- db
ports:
- "8081:8080"
app:
build:
context: .
args:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:?set your Clerk publishable key}
profiles: ["app"]
depends_on:
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql://postgres:password@db:5432/app
CLERK_SECRET_KEY: ${CLERK_SECRET_KEY:?set your Clerk secret key}
ports:
- "3000:3000"
# Open-source email testing UI: http://localhost:8025 (SMTP on 1025).
# Digests sent by the worker land here instead of real inboxes.
mailpit:
image: axllent/mailpit:latest
profiles: ["tools"]
restart: unless-stopped
ports:
- "8025:8025"
- "1025:1025"
# Background jobs. Run on demand:
# docker compose run --rm worker sync
# docker compose run --rm worker digest
# docker compose run --rm worker alerts
# docker compose run --rm worker watch
worker:
build:
context: .
dockerfile: Dockerfile.worker
profiles: ["worker"]
depends_on:
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql://postgres:password@db:5432/app
MAILER: smtp
SMTP_URL: smtp://mailpit:1025
DIGEST_FROM_EMAIL: digest@pointup.local
# Without a Clerk key, digests go to this address via Mailpit.
DIGEST_RECIPIENT_OVERRIDE: dev@pointup.local
CLERK_SECRET_KEY: ${CLERK_SECRET_KEY:-}
# Optional: also post the digest to chat.
SLACK_WEBHOOK_URL: ${SLACK_WEBHOOK_URL:-}
DISCORD_WEBHOOK_URL: ${DISCORD_WEBHOOK_URL:-}
# PointBot chat surface (Slack slash commands): http://localhost:8080
# docker compose --profile bot up bot
bot:
build:
context: .
dockerfile: Dockerfile.bot
profiles: ["bot"]
depends_on:
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql://postgres:password@db:5432/app
SLACK_SIGNING_SECRET: ${SLACK_SIGNING_SECRET:-}
DISCORD_PUBLIC_KEY: ${DISCORD_PUBLIC_KEY:-}
DISCORD_APP_ID: ${DISCORD_APP_ID:-}
BOT_DEFAULT_USER_ID: ${BOT_DEFAULT_USER_ID:-}
# Assistant provider (same vars as the web app); omit for heuristic replies.
LLM_PROVIDER: ${LLM_PROVIDER:-}
LLM_API_KEY: ${LLM_API_KEY:-}
BEDROCK_MODEL_ID: ${BEDROCK_MODEL_ID:-}
ports:
- "8080:8080"
volumes:
db-data: