Dokploy injects 'networks' into all compose services for Traefik routing, which is mutually exclusive with 'network_mode: service:supabase-kong'. Changes: - Remove network_mode from app service - App server-side Supabase URL: http://supabase-kong:8000 (Docker DNS) - App browser-side Supabase URL: ${API_EXTERNAL_URL} (external domain) - Kong catch-all route: app:3000 instead of localhost:3000
99 lines
1.9 KiB
YAML
99 lines
1.9 KiB
YAML
_format_version: "1.1"
|
|
|
|
consumers:
|
|
- username: anon
|
|
keyauth_credentials:
|
|
- key: ${SUPABASE_ANON_KEY}
|
|
- username: service_role
|
|
keyauth_credentials:
|
|
- key: ${SUPABASE_SERVICE_KEY}
|
|
|
|
acls:
|
|
- consumer: anon
|
|
group: anon
|
|
- consumer: service_role
|
|
group: admin
|
|
|
|
services:
|
|
# Auth
|
|
- name: auth-v1
|
|
url: http://supabase-auth:9999/
|
|
routes:
|
|
- name: auth-v1-routes
|
|
strip_path: true
|
|
paths:
|
|
- /auth/v1/
|
|
plugins:
|
|
- name: cors
|
|
|
|
# REST (PostgREST)
|
|
- name: rest-v1
|
|
url: http://supabase-rest:3000/
|
|
routes:
|
|
- name: rest-v1-routes
|
|
strip_path: true
|
|
paths:
|
|
- /rest/v1/
|
|
plugins:
|
|
- name: cors
|
|
- name: key-auth
|
|
config:
|
|
hide_credentials: false
|
|
- name: acl
|
|
config:
|
|
hide_groups_header: true
|
|
allow:
|
|
- anon
|
|
- admin
|
|
|
|
# Realtime
|
|
- name: realtime-v1
|
|
url: http://supabase-realtime:4000/socket/
|
|
routes:
|
|
- name: realtime-v1-routes
|
|
strip_path: true
|
|
paths:
|
|
- /realtime/v1/
|
|
plugins:
|
|
- name: cors
|
|
|
|
# Storage
|
|
- name: storage-v1
|
|
url: http://supabase-storage:5000/
|
|
routes:
|
|
- name: storage-v1-routes
|
|
strip_path: true
|
|
paths:
|
|
- /storage/v1/
|
|
plugins:
|
|
- name: cors
|
|
|
|
# pg_meta
|
|
- name: meta
|
|
url: http://supabase-meta:8080/
|
|
routes:
|
|
- name: meta-routes
|
|
strip_path: true
|
|
paths:
|
|
- /pg/
|
|
plugins:
|
|
- name: key-auth
|
|
config:
|
|
hide_credentials: false
|
|
- name: acl
|
|
config:
|
|
hide_groups_header: true
|
|
allow:
|
|
- admin
|
|
|
|
# Next.js App (catch-all — must be last so API routes take priority)
|
|
- name: app
|
|
url: http://app:3000/
|
|
routes:
|
|
- name: app-routes
|
|
strip_path: false
|
|
paths:
|
|
- /
|
|
plugins:
|
|
- name: cors
|