-
Notifications
You must be signed in to change notification settings - Fork 189
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
168 lines (162 loc) · 5.56 KB
/
Copy pathdocker-compose.dev.yml
File metadata and controls
168 lines (162 loc) · 5.56 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
services:
db:
image: postgres:16-alpine
ports:
- "5432:5432"
environment:
POSTGRES_USER: bigset
POSTGRES_PASSWORD: bigset
POSTGRES_DB: bigset_internal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U bigset -d bigset_internal"]
interval: 5s
timeout: 5s
retries: 10
volumes:
- pgdata:/var/lib/postgresql/data
- ./db/init.sql:/docker-entrypoint-initdb.d/init.sql
backend:
build:
context: ./backend
dockerfile: Dockerfile.dev
env_file:
- .env
ports:
- "3501:3501"
volumes:
- ./backend/src:/app/src
- ./scripts:/scripts:ro
environment:
CLIENT_ORIGIN: http://localhost:3500
CONVEX_URL: http://convex:3210
PORT: 3501
PROD: ${PROD:-}
CONVEX_SELF_HOSTED_ADMIN_KEY: ${CONVEX_SELF_HOSTED_ADMIN_KEY:-}
CLERK_SECRET_KEY: ${CLERK_SECRET_KEY:-}
CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:-}
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
TINYFISH_API_KEY: ${TINYFISH_API_KEY:-}
BIGSET_LOCAL_WORKSPACE_ID: ${BIGSET_LOCAL_WORKSPACE_ID:-}
LOCAL_KEYCHAIN_URL: http://host.docker.internal:${LOCAL_KEYCHAIN_PORT:-3502}
LOCAL_KEYCHAIN_TOKEN: ${LOCAL_KEYCHAIN_TOKEN:-}
LOCAL_KEYCHAIN_TIMEOUT_MS: ${LOCAL_KEYCHAIN_TIMEOUT_MS:-5000}
# Transactional email — when unset, the email module no-ops.
RESEND_API_KEY: ${RESEND_API_KEY:-}
EMAIL_FROM: ${EMAIL_FROM:-BigSet <simantak@tinyfish.ai>}
# PostHog server-side analytics — same project key as the frontend.
# When unset, backend analytics module no-ops.
POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-}
POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST:-https://us.i.posthog.com}
REFRESH_SCHEDULER_ENABLED: ${REFRESH_SCHEDULER_ENABLED:-true}
REFRESH_SCHEDULER_POLL_MS: ${REFRESH_SCHEDULER_POLL_MS:-60000}
REFRESH_SCHEDULER_BATCH_SIZE: ${REFRESH_SCHEDULER_BATCH_SIZE:-5}
REFRESH_SCHEDULER_STALE_AFTER_MS: ${REFRESH_SCHEDULER_STALE_AFTER_MS:-21600000}
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
convex:
condition: service_healthy
mastra:
build:
context: ./backend
dockerfile: Dockerfile.mastra
env_file:
- .env
ports:
- "4111:4111"
volumes:
- ./backend/src:/app/src
- ./scripts:/scripts:ro
environment:
HOST: 0.0.0.0
PORT: 4111
PROD: ${PROD:-}
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
CONVEX_URL: http://convex:3210
CONVEX_SELF_HOSTED_ADMIN_KEY: ${CONVEX_SELF_HOSTED_ADMIN_KEY:-}
TINYFISH_API_KEY: ${TINYFISH_API_KEY:-}
BIGSET_LOCAL_WORKSPACE_ID: ${BIGSET_LOCAL_WORKSPACE_ID:-}
LOCAL_KEYCHAIN_URL: http://host.docker.internal:${LOCAL_KEYCHAIN_PORT:-3502}
LOCAL_KEYCHAIN_TOKEN: ${LOCAL_KEYCHAIN_TOKEN:-}
LOCAL_KEYCHAIN_TIMEOUT_MS: ${LOCAL_KEYCHAIN_TIMEOUT_MS:-5000}
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
convex:
condition: service_healthy
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.dev
env_file:
- .env
ports:
- "3500:3500"
volumes:
- ./frontend/app:/app/app
- ./frontend/lib:/app/lib
- ./frontend/components:/app/components
- ./frontend/public:/app/public
- ./frontend/convex:/app/convex
# Root-level source files outside the mounted folders above. Without
# these the container runs whatever was baked into the image at build
# time and silently ignores local edits.
- ./frontend/proxy.ts:/app/proxy.ts
- ./frontend/next.config.ts:/app/next.config.ts
- ./scripts:/scripts:ro
environment:
NEXT_PUBLIC_CONVEX_URL: http://localhost:3210
NEXT_PUBLIC_PROD: ${PROD:-}
PROD: ${PROD:-}
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:-}
CLERK_SECRET_KEY: ${CLERK_SECRET_KEY:-}
NEXT_PUBLIC_CLERK_SIGN_IN_URL: /sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL: /sign-up
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL: /dashboard
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL: /dashboard
NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL: /dashboard
NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL: /dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL: /dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL: /dashboard
NEXT_PUBLIC_BACKEND_URL: http://localhost:3501
# PostHog — analytics no-ops if unset
NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-}
NEXT_PUBLIC_POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST:-https://us.i.posthog.com}
depends_on:
convex:
condition: service_healthy
convex:
image: ghcr.io/get-convex/convex-backend:latest
ports:
- "3210:3210"
- "3211:3211"
volumes:
- convex_data:/convex/data
environment:
CONVEX_CLOUD_ORIGIN: http://127.0.0.1:3210
CONVEX_SITE_ORIGIN: http://127.0.0.1:3211
POSTGRES_URL: postgresql://bigset:bigset@db:5432
DO_NOT_REQUIRE_SSL: 1
INSTANCE_NAME: convex-self-hosted
RUST_LOG: info
DISABLE_BEACON: true
DISABLE_METRICS_ENDPOINT: true
healthcheck:
test: curl -f http://localhost:3210/version
interval: 5s
start_period: 10s
depends_on:
db:
condition: service_healthy
convex-dashboard:
image: ghcr.io/get-convex/convex-dashboard:latest
ports:
- "6791:6791"
environment:
NEXT_PUBLIC_DEPLOYMENT_URL: http://127.0.0.1:3210
depends_on:
convex:
condition: service_healthy
volumes:
pgdata:
convex_data: