-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
89 lines (82 loc) · 2.61 KB
/
Copy pathdocker-compose.dev.yml
File metadata and controls
89 lines (82 loc) · 2.61 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
# ============================================
# DEVELOPMENT OVERRIDES
# ============================================
# Exposes ports for local development and debugging.
# Includes dev-only services (Studio, Inbucket).
#
# Usage:
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
# make dev
#
# Exposed Ports (configured in .env):
# WEB_PORT - Web App (Next.js dev server)
# KONG_PORT - Kong API Gateway (Supabase API)
# DB_PORT - PostgreSQL (direct access)
# STUDIO_PORT - Supabase Studio (DB admin UI)
# INBUCKET_WEB_PORT - Inbucket Web (email testing)
# INBUCKET_SMTP_PORT - Inbucket SMTP
# ============================================
services:
# Expose database for direct access
db:
ports:
- "${DB_PORT}:5432"
# Expose Kong for browser Supabase calls
kong:
ports:
- "${KONG_PORT}:8000"
# Web app with hot reload
web:
ports:
- "${WEB_PORT}:${PORT}"
volumes:
- ./apps/web:/app/apps/web
- ./packages:/app/packages
- ./config:/app/config
# Mount migrations for hot reload (new migrations picked up on restart)
- ./supabase/migrations:/app/supabase/migrations
- /app/node_modules
- /app/apps/web/node_modules
- web-next-cache:/app/apps/web/.next
environment:
- NODE_ENV=development
- WEB_TARGET=development
# ===========================================
# DEV-ONLY SERVICES
# ===========================================
# Supabase Studio - Database admin UI
studio:
image: supabase/studio:20241202-71e5240
container_name: atlasp2p-studio
ports:
- "${STUDIO_PORT}:3000"
environment:
STUDIO_PG_META_URL: http://meta:8080
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
DEFAULT_ORGANIZATION_NAME: ${DEFAULT_ORGANIZATION_NAME}
DEFAULT_PROJECT_NAME: ${DEFAULT_PROJECT_NAME}
SUPABASE_URL: http://kong:8000
SUPABASE_PUBLIC_URL: http://localhost:${KONG_PORT}
SUPABASE_ANON_KEY: ${SUPABASE_ANON_KEY}
SUPABASE_SERVICE_KEY: ${SUPABASE_SERVICE_ROLE_KEY}
depends_on:
- meta
restart: unless-stopped
# Inbucket - Email testing (catches all outgoing emails)
inbucket:
image: inbucket/inbucket:3.0.3
container_name: atlasp2p-inbucket
ports:
- "${INBUCKET_WEB_PORT}:9000" # Web UI
- "${INBUCKET_SMTP_PORT}:2500" # SMTP
restart: unless-stopped
# Crawler with hot reload
crawler:
environment:
# Dev mode: web listens on 4000
- WEB_PORT=4000
- NODE_ENV=development
volumes:
# Hot reload for crawler source
- ./apps/crawler:/app/apps/crawler
- geoip-data:/app/data/geoip