|
1 |
| -version: '3.6' |
2 | 1 | services:
|
3 | 2 | kong:
|
4 | 3 | container_name: supabase-kong
|
5 |
| - build: |
6 |
| - context: ./dockerfiles/kong |
| 4 | + image: kong:2.1 |
| 5 | + restart: unless-stopped |
| 6 | + ports: |
| 7 | + - ${KONG_HTTP_PORT}:8000/tcp |
| 8 | + - ${KONG_HTTPS_PORT}:8443/tcp |
| 9 | + volumes: |
| 10 | + - ./volumes/kong.yml:/var/lib/kong/kong.yml |
7 | 11 | environment:
|
| 12 | + KONG_DATABASE: "off" |
8 | 13 | KONG_DECLARATIVE_CONFIG: /var/lib/kong/kong.yml
|
9 |
| - KONG_PLUGINS: request-transformer,cors,key-auth,http-log |
10 |
| - ports: |
11 |
| - - ${KONG_PORT}:8000/tcp |
12 |
| - - ${KONG_PORT_TLS}:8443/tcp |
| 14 | + # https://github.com/supabase/cli/issues/14 |
| 15 | + KONG_DNS_ORDER: LAST,A,CNAME |
| 16 | + KONG_PLUGINS: request-transformer,cors,key-auth |
13 | 17 | auth:
|
14 | 18 | container_name: supabase-auth
|
15 |
| - image: supabase/gotrue:latest |
16 |
| - ports: |
17 |
| - - ${AUTH_PORT} |
| 19 | + image: supabase/gotrue:v2.1.8 |
18 | 20 | depends_on:
|
19 | 21 | - db
|
20 |
| - restart: always |
| 22 | + restart: unless-stopped |
21 | 23 | environment:
|
| 24 | + GOTRUE_API_HOST: 0.0.0.0 |
| 25 | + GOTRUE_API_PORT: 9999 |
| 26 | + |
| 27 | + GOTRUE_DB_DRIVER: postgres |
| 28 | + GOTRUE_DB_DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres?sslmode=disable&search_path=auth |
| 29 | + |
| 30 | + GOTRUE_SITE_URL: ${SITE_URL} |
| 31 | + GOTRUE_URI_ALLOW_LIST: ${ADDITIONAL_REDIRECT_URLS} |
| 32 | + GOTRUE_DISABLE_SIGNUP: ${DISABLE_SIGNUP} |
| 33 | + |
22 | 34 | GOTRUE_JWT_SECRET: ${JWT_SECRET}
|
23 |
| - GOTRUE_JWT_EXP: 3600 |
| 35 | + GOTRUE_JWT_EXP: ${JWT_EXPIRY} |
24 | 36 | GOTRUE_JWT_DEFAULT_GROUP_NAME: authenticated
|
25 |
| - GOTRUE_DB_DRIVER: postgres |
26 |
| - DB_NAMESPACE: auth |
27 |
| - API_EXTERNAL_URL: http://localhost:8000 |
28 |
| - GOTRUE_API_HOST: 0.0.0.0 |
29 |
| - PORT: ${AUTH_PORT} |
30 | 37 |
|
| 38 | + GOTRUE_EXTERNAL_EMAIL_ENABLED: ${ENABLE_EMAIL_SIGNUP} |
| 39 | + GOTRUE_MAILER_AUTOCONFIRM: ${ENABLE_EMAIL_AUTOCONFIRM} |
| 40 | + GOTRUE_SMTP_ADMIN_EMAIL: ${SMTP_ADMIN_EMAIL} |
31 | 41 | GOTRUE_SMTP_HOST: ${SMTP_HOST}
|
32 | 42 | GOTRUE_SMTP_PORT: ${SMTP_PORT}
|
33 | 43 | GOTRUE_SMTP_USER: ${SMTP_USER}
|
34 | 44 | GOTRUE_SMTP_PASS: ${SMTP_PASS}
|
35 |
| - GOTRUE_SMTP_ADMIN_EMAIL: ${SMTP_ADMIN_EMAIL} |
36 |
| - |
37 |
| - GOTRUE_DISABLE_SIGNUP: 'false' |
38 |
| - GOTRUE_SITE_URL: http://localhost:8000 |
| 45 | + GOTRUE_SMTP_SENDER_NAME: ${SMTP_SENDER_NAME} |
39 | 46 | GOTRUE_MAILER_URLPATHS_INVITE: /auth/v1/verify
|
40 | 47 | GOTRUE_MAILER_URLPATHS_CONFIRMATION: /auth/v1/verify
|
41 | 48 | GOTRUE_MAILER_URLPATHS_RECOVERY: /auth/v1/verify
|
42 |
| - GOTRUE_MAILER_AUTOCONFIRM: 'true' |
43 |
| - GOTRUE_LOG_LEVEL: DEBUG |
44 |
| - GOTRUE_OPERATOR_TOKEN: ${OPERATOR_TOKEN} |
45 |
| - DATABASE_URL: 'postgres://postgres:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/postgres?sslmode=disable&search_path=auth' |
| 49 | + GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: /auth/v1/verify |
46 | 50 |
|
| 51 | + GOTRUE_EXTERNAL_PHONE_ENABLED: ${ENABLE_PHONE_SIGNUP} |
| 52 | + GOTRUE_SMS_AUTOCONFIRM: ${ENABLE_PHONE_AUTOCONFIRM} |
47 | 53 | rest:
|
48 | 54 | container_name: supabase-rest
|
49 |
| - image: postgrest/postgrest:latest |
50 |
| - ports: |
51 |
| - - ${REST_PORT}:3000 |
| 55 | + image: postgrest/postgrest:v8.0.0 |
52 | 56 | depends_on:
|
53 | 57 | - db
|
54 |
| - restart: always |
| 58 | + restart: unless-stopped |
55 | 59 | environment:
|
56 |
| - PGRST_DB_URI: postgres://postgres:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/postgres |
| 60 | + PGRST_DB_URI: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres |
57 | 61 | PGRST_DB_SCHEMA: public, storage
|
58 | 62 | PGRST_DB_ANON_ROLE: anon
|
59 | 63 | PGRST_JWT_SECRET: ${JWT_SECRET}
|
60 |
| - |
61 | 64 | realtime:
|
62 | 65 | container_name: supabase-realtime
|
63 |
| - image: supabase/realtime:latest |
64 |
| - ports: |
65 |
| - - ${REALTIME_PORT} |
| 66 | + image: supabase/realtime:v0.15.0 |
66 | 67 | depends_on:
|
67 | 68 | - db
|
68 |
| - restart: on-failure |
| 69 | + restart: unless-stopped |
69 | 70 | environment:
|
70 | 71 | DB_HOST: db
|
| 72 | + DB_PORT: 5432 |
71 | 73 | DB_NAME: postgres
|
72 | 74 | DB_USER: postgres
|
73 | 75 | DB_PASSWORD: ${POSTGRES_PASSWORD}
|
74 |
| - DB_PORT: ${POSTGRES_PORT} |
75 |
| - PORT: ${REALTIME_PORT} |
76 |
| - HOSTNAME: localhost |
77 |
| - # Disable JWT Auth locally. The JWT_SECRET will be ignored. |
78 |
| - SECURE_CHANNELS: 'false' |
| 76 | + SLOT_NAME: supabase_realtime |
| 77 | + PORT: 4000 |
| 78 | + SECURE_CHANNELS: "true" |
79 | 79 | JWT_SECRET: ${JWT_SECRET}
|
80 |
| - |
81 | 80 | storage:
|
82 |
| - image: supabase/storage-api:v0.9.1 |
83 |
| - ports: |
84 |
| - - '5000:5000' |
| 81 | + container_name: supabase-storage |
| 82 | + image: supabase/storage-api:v0.9.3 |
85 | 83 | depends_on:
|
86 |
| - - db |
87 |
| - - rest |
88 |
| - restart: always |
| 84 | + - db |
| 85 | + - rest |
| 86 | + restart: unless-stopped |
| 87 | + volumes: |
| 88 | + - ./volumes/storage:/var/lib/storage |
89 | 89 | environment:
|
90 |
| - ANON_KEY: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYyNzIwODU0MCwiZXhwIjoxOTc0MzYzNzQwLCJhdWQiOiIiLCJzdWIiOiIiLCJyb2xlIjoiYW5vbiJ9.sUHErUOiKZ3nHQIxy-7jND6B80Uzf9G4NtMLmL6HXPQ |
91 |
| - SERVICE_KEY: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYyNzIwNzUzMiwiZXhwIjoxNjkwMjc5NTMyLCJhdWQiOiIiLCJzdWIiOiIiLCJyb2xlIjoic2VydmljZV9yb2xlIn0.hfdXFZV5PdvUdo2xK0vStb1i97GJukSkRqfwd4YIh2M |
92 |
| - PROJECT_REF: bjwdssmqcnupljrqypxz # can be any random string |
93 |
| - POSTGREST_URL: http://rest:3000 |
94 |
| - PGRST_JWT_SECRET: ${JWT_SECRET} |
95 |
| - DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/postgres |
96 |
| - PGOPTIONS: "-c search_path=storage" |
97 |
| - FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT} |
98 |
| - REGION: ${STORAGE_REGION} # region where your bucket is located |
99 |
| - GLOBAL_S3_BUCKET: ${STORAGE_S3_BUCKET} # name of s3 bucket where you want to store objects |
100 |
| - # AWS_ACCESS_KEY_ID: replace-with-your-aws-key |
101 |
| - # AWS_SECRET_ACCESS_KEY: replace-with-your-aws-secret |
102 |
| - STORAGE_BACKEND: ${STORAGE_BACKEND} |
103 |
| - FILE_STORAGE_BACKEND_PATH: /var/data/storage |
| 90 | + ANON_KEY: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYyNzIwODU0MCwiZXhwIjoxOTc0MzYzNzQwfQ.zcaQfHd3VA7XgJmdGfmV86OLVJT9s2MTmSy-e69BpUY |
| 91 | + SERVICE_KEY: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaWF0IjoxNjI3MjA4NTQwLCJleHAiOjE5NzQzNjM3NDB9.pkT3PNpO4DtO45Ac5HK_TKCx8sGLgNtV__pr_ZrRSAU |
| 92 | + POSTGREST_URL: http://rest:3000 |
| 93 | + PGRST_JWT_SECRET: ${JWT_SECRET} |
| 94 | + DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres |
| 95 | + PGOPTIONS: -c search_path=storage |
| 96 | + FILE_SIZE_LIMIT: 52428800 |
| 97 | + STORAGE_BACKEND: file |
| 98 | + FILE_STORAGE_BACKEND_PATH: /var/lib/storage |
| 99 | + # TODO: https://github.com/supabase/storage-api/commit/a836fc9666c2434d89ca4b31402f74772d50fb6d |
| 100 | + PROJECT_REF: stub |
| 101 | + # TODO: https://github.com/supabase/storage-api/issues/55 |
| 102 | + REGION: stub |
| 103 | + GLOBAL_S3_BUCKET: stub |
104 | 104 | db:
|
105 | 105 | container_name: supabase-db
|
106 |
| - build: |
107 |
| - context: ./dockerfiles/postgres |
| 106 | + image: supabase/postgres:13.3.0 |
| 107 | + restart: unless-stopped |
108 | 108 | ports:
|
109 |
| - - ${POSTGRES_PORT}:${POSTGRES_PORT} |
110 |
| - command: |
111 |
| - - postgres |
112 |
| - - -c |
113 |
| - - wal_level=logical |
| 109 | + - ${POSTGRES_PORT}:5432 |
| 110 | + volumes: |
| 111 | + - ./volumes/db/data:/var/lib/postgresql/data |
| 112 | + - ./volumes/db/init:/docker-entrypoint-initdb.d |
114 | 113 | environment:
|
115 |
| - POSTGRES_DB: postgres |
116 |
| - POSTGRES_USER: postgres |
117 | 114 | POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
118 |
| - POSTGRES_PORT: ${POSTGRES_PORT} |
| 115 | + command: postgres -c wal_level=logical |
0 commit comments