forked from tegonhq/tegon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yaml
142 lines (134 loc) · 4.08 KB
/
docker-compose.yaml
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
version: "3.8"
services:
db:
image: "tegonhq/tegon-postgres:${VERSION}"
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- 5432:5432
networks:
- tegon
volumes:
- postgres-data:/var/lib/postgresql/data
restart: unless-stopped
supertokens:
image: registry.supertokens.io/supertokens/supertokens-postgresql:latest
depends_on:
- db
environment:
POSTGRESQL_CONNECTION_URI: ${SUPERTOKEN_DATABASE_URL}
REFRESH_TOKEN_VALIDITY: 2592000 # 30 days in seconds
ACCESS_TOKEN_VALIDITY: 2592000 # 30 days in seconds
PASSWORD_RESET_TOKEN_LIFETIME: 86400
ports:
- 3567:3567
networks:
- tegon
restart: unless-stopped
redis:
image: redis:alpine3.19
networks:
- tegon
ports:
- 6379:6379
restart: unless-stopped
server:
build:
context: ./server
dockerfile: Dockerfile
image: "tegonhq/tegon-server:${VERSION}"
container_name: tegon-server
depends_on:
- db
- supertokens
- redis
- typesense
restart: unless-stopped
networks:
- tegon
environment:
- DATABASE_URL=${DATABASE_URL}
- FRONTEND_HOST=${FRONTEND_HOST}
- PUBLIC_FRONTEND_HOST=${PUBLIC_FRONTEND_HOST}
- BACKEND_HOST=${BACKEND_HOST}
- PORT=${BACKEND_PORT}
- SUPERTOKEN_CONNECTION_URI=${SUPERTOKEN_CONNECTION_URI}
- MASTER_TOKEN=${MASTER_TOKEN}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- REPLICATION_DATABASE_URL=${REPLICATION_DATABASE_URL}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_SCHEMA=${DB_SCHEMA}
- REDIS_URL=${REDIS_URL}
- REDIS_PORT=${REDIS_PORT}
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
- TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
- TYPESENSE_HOST=${TYPESENSE_HOST}
- TYPESENSE_PORT=${TYPESENSE_PORT}
- TYPESENSE_PROTOCOL=${TYPESENSE_PROTOCOL}
- GOOGLE_LOGIN_CLIENT_ID=${GOOGLE_LOGIN_CLIENT_ID}
- GOOGLE_LOGIN_CLIENT_SECRET=${GOOGLE_LOGIN_CLIENT_SECRET}
- SLACK_CLIENT_ID=${SLACK_CLIENT_ID}
- SLACK_CLIENT_SECRET=${SLACK_CLIENT_SECRET}
- SENTRY_CLIENT_ID=${SENTRY_CLIENT_ID}
- SENTRY_CLIENT_SECRET=${SENTRY_CLIENT_SECRET}
- GCP_BUCKET_NAME=${GCP_BUCKET_NAME}
- GCP_SERVICE_ACCOUNT_FILE=${GCP_SERVICE_ACCOUNT_FILE}
- PUBLIC_ATTACHMENT_URL=${PUBLIC_ATTACHMENT_URL}
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- SMTP_USER=${SMTP_USER}
- SMTP_PASSWORD=${SMTP_PASSWORD}
- SMTP_DEFAULT_FROM=${SMTP_DEFAULT_FROM}
- GMAIL_CLIENT_ID=${GMAIL_CLIENT_ID}
- GMAIL_CLIENT_SECRET=${GMAIL_CLIENT_SECRET}
- GMAIL_REFRESH_TOKEN=${GMAIL_REFRESH_TOKEN}
- GMAIL_REDIRECT_URI=${GMAIL_REDIRECT_URI}
- GMAIL_AUTH_TOKEN=${GMAIL_AUTH_TOKEN}
- GMAIL_WEBHOOK_SECRET=${GMAIL_WEBHOOK_SECRET}
- COHERE_API_KEY=${COHERE_API_KEY}
- GMAIL_PUBSUB_TOPIC=${GMAIL_PUBSUB_TOPIC}
- GMAIL_OTHER_LABEL=${GMAIL_OTHER_LABEL}
- COHERE_API_KEY=${COHERE_API_KEY}
ports:
- 3001:3001
webapp:
image: "tegonhq/tegon-webapp:${VERSION}"
container_name: tegon-webapp
restart: unless-stopped
depends_on:
- server
networks:
- tegon
environment:
- BACKEND_URL=${BACKEND_URL}
- NEXT_PUBLIC_BASE_HOST=${PUBLIC_FRONTEND_HOST}
- NEXT_PUBLIC_VERSION=${VERSION}
- NEXT_PUBLIC_SYNC_SERVER=${NEXT_PUBLIC_SYNC_SERVER}
- NEXT_PUBLIC_SENTRY_DSN=${NEXT_PUBLIC_SENTRY_DSN}
ports:
- 8000:3000
typesense:
image: typesense/typesense:0.26.0.rc61
container_name: typesense
ports:
- 8108:8108
volumes:
- typesense-data:/data
networks:
- tegon
restart: unless-stopped
command: --data-dir /data --api-key=${TYPESENSE_API_KEY} --enable-cors
networks:
app_network:
driver: bridge
tegon: {}
volumes:
postgres-data:
typesense-data: