Skip to content

Commit 531b66a

Browse files
committed
updated docker compose
1 parent deecf1d commit 531b66a

4 files changed

Lines changed: 60 additions & 20 deletions

File tree

deployment/.env.tmpl

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
# Infra
22
STAGE=dev
3-
CHAT_SERVER_TAG=v2.2.6
3+
CHAT_SERVER_TAG=v3.0.0-dev.2
44
CONFIG_DIR=./config
55

66
# KAFKA TOPIC
7-
TOPIC_USER_CONNECTION_STATE=user-connection-state
8-
TOPIC_SEND_MESSAGE=send-message
97
TOPIC_NEW_MESSAGE=new-message
108
TOPIC_OFFLINE_MESSAGE=offline-message
11-
TOPIC_NEW_GROUP_MS=new-group-message
129
TOPIC_NEW_LOGIN=new-login
13-
TOPIC_SYSTEM_MESSAGE=system-message
1410
TOPIC_CLIENT_ACK_MESSAGE=client-ack
1511

1612
# CREATE TOPIC FOR NAMED SERVICE
@@ -25,30 +21,27 @@ MESSAGE_DELIVERY_CLIENT_ID=message-delivery-1
2521
MESSAGE_ROUTER_CLIENT_ID=message-router-1
2622
PROFILE_CLIENT_ID=profile-1
2723
GROUP_CLIENT_ID=group-1
28-
GROUP_MESSAGE_ROUTER_CLIENT_ID=group-message-router-1
2924
NOTIFICATION_CLIENT_ID=notification-1
3025

3126
# KAFKA OPTIONS
32-
BROKER_LIST=localhost:9092
33-
ZOOKEEPER_ENDPOINT=localhost:2181
27+
BROKER_LIST=kafka:9092
3428
KAFKA_SECURITY_PROTOCOL=
3529
KAFKA_SASL_USERNAME=
3630
KAFKA_SASL_PASSWORD=
3731

3832
# EVENT STORE CONSUMER GROUP
39-
CONSUMER_GROUP_MESSAGE_ROUTER=message-router
4033
CONSUMER_GROUP_MESSAGE_DELIVERY=message-delivery
4134
CONSUMER_GROUP_GATEWAY=gateway
42-
CONSUMER_GROUP_GROUP_MESSAGE_ROUTER=group-message-router
4335
CONSUMER_GROUP_NOTIFICATION=notification-ms
36+
CONSUMER_GROUP_MESSAGE_STORAGE=message-storage
4437

4538
# MONGO URL
46-
MONGO_URL=mongodb://localhost:27017/chat
47-
MONGO_USER=
48-
MONGO_PASSWORD=
39+
MONGO_URL=mongodb://mongo:27017/chat?authSource=admin
40+
MONGO_USER=root
41+
MONGO_PASSWORD=password
4942

5043
# Redis
51-
REDIS_ENDPOINT=localhost:6379
44+
REDIS_ENDPOINT=redis:6379
5245

5346
# Push Notification
5447
PN_SERVICE=firebase
@@ -63,7 +56,7 @@ S3_SECRET_ACCESS_KEY=
6356
S3_BUCKET_NAME=
6457

6558
# NATS
66-
NATS_SERVER_LIST=nats://127.0.0.1:4222
59+
NATS_SERVER_LIST=nats://nats:4222
6760
NATS_AUTH=
6861
NATS_USER=
6962
NATS_PASS=

deployment/config/nats/nats.conf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
listen: 0.0.0.0:4222
2+
jetstream {
3+
enabled: true
4+
store_dir: /data
5+
max_memory_store: 500M
6+
max_file_store: 10G
7+
}

deployment/docker-compose.infra.yml

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,50 @@ version: "3.9"
33
networks:
44
vartalap:
55

6+
volumes:
7+
nats-data:
8+
mongo-data:
9+
kafka-data:
10+
611
services:
12+
nats:
13+
image: nats:2.10-alpine3.18
14+
command: nats-server -c /config/nats.conf
15+
volumes:
16+
- ./config/nats:/config
17+
- nats-data:/data
18+
networks:
19+
- vartalap
20+
21+
kafka:
22+
image: bitnami/kafka:latest
23+
environment:
24+
- KAFKA_CFG_NODE_ID=0
25+
- KAFKA_CFG_PROCESS_ROLES=controller,broker
26+
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
27+
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
28+
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
29+
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
30+
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
31+
volumes:
32+
- kafka-data:/bitnami/kafka/data
33+
networks:
34+
- vartalap
35+
36+
mongo:
37+
image: mongo:7.0
38+
volumes:
39+
- mongo-data:/data/db
40+
environment:
41+
- MONGO_INITDB_ROOT_USERNAME=${MONGO_USER}
42+
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
43+
- MONGO_INITDB_DATABASE=chat
44+
networks:
45+
- vartalap
46+
747
nginx:
848
ports:
9-
- "8080:80"
49+
- "8081:80"
1050
networks:
1151
- vartalap
1252
logging:
@@ -108,4 +148,4 @@ services:
108148
deploy:
109149
replicas: 1
110150
restart_policy:
111-
condition: on-failure
151+
condition: on-failure

deployment/docker-compose.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ services:
44
nginx:
55
image: nginx:stable
66
volumes:
7-
- ${CONFIG_DIR}/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
7+
- ${CONFIG_DIR}/nginx/nginx.docker.conf:/etc/nginx/nginx.conf:ro
88

99
ws-gateway:
1010
image: ramank775/chatserver:${CHAT_SERVER_TAG}
1111
entrypoint: node
12-
command: /app/services/connection-gateway/gateway.js --host=0.0.0.0 --app-name=ws-gateway --gateway-name=ws-gateway-1 --new-message-topic=${TOPIC_NEW_MESSAGE} --client-ack-topic=${TOPIC_CLIENT_ACK_MESSAGE} --offline-message-topic=${TOPIC_OFFLINE_MESSAGE} --event-store=${EVENT_STORE} --kafka-client-id=${GATEWAY_CLIENT_ID:-gateway-1} --kafka-consumer-group=${CONSUMER_GROUP_GATEWAY} --kafka-broker-list='${BROKER_LIST}' --kafka-security-protocol=${KAFKA_SECURITY_PROTOCOL} --kafka-sasl-username=${KAFKA_SASL_USERNAME} --kafka-sasl-password=${KAFKA_SASL_PASSWORD} --nats-server-list=${NATS_SERVER_LIST} --nats-auth-type=${NATS_AUTH} --nats-auth-user=${NATS_USER} --nats-auth-pass=${NATS_PASS} --nats-auth-token=${NATS_AUTH_TOKEN} --nats-auth-nkey=${NATS_NKEY} --nats-auth-jwt=${NATS_USER_JWT} --redis-endpoint=${REDIS_ENDPOINT}
12+
command: /app/services/connection-gateway/ws-gateway.js --host=0.0.0.0 --app-name=ws-gateway --gateway-name=ws-gateway-1 --new-message-topic=${TOPIC_NEW_MESSAGE} --client-ack-topic=${TOPIC_CLIENT_ACK_MESSAGE} --offline-message-topic=${TOPIC_OFFLINE_MESSAGE} --event-store=${EVENT_STORE} --kafka-client-id=${GATEWAY_CLIENT_ID:-gateway-1} --kafka-consumer-group=${CONSUMER_GROUP_GATEWAY} --kafka-broker-list='${BROKER_LIST}' --kafka-security-protocol=${KAFKA_SECURITY_PROTOCOL} --kafka-sasl-username=${KAFKA_SASL_USERNAME} --kafka-sasl-password=${KAFKA_SASL_PASSWORD} --nats-server-list=${NATS_SERVER_LIST} --nats-auth-type=${NATS_AUTH} --nats-auth-user=${NATS_USER} --nats-auth-pass=${NATS_PASS} --nats-auth-token=${NATS_AUTH_TOKEN} --nats-auth-nkey=${NATS_NKEY} --nats-auth-jwt=${NATS_USER_JWT} --nats-consumer-group=${CONSUMER_GROUP_GATEWAY} --redis-endpoint=${REDIS_ENDPOINT}
1313

1414
message-delivery:
1515
image: ramank775/chatserver:${CHAT_SERVER_TAG}
1616
volumes:
1717
- '${CONFIG_DIR}/discovery_service/services.json:/app/discovery_service.json'
1818
entrypoint: node
19-
command: /app/services/message-delivery/message-delivery-ms.js --app-name=message-delivery --new-message-topic=${TOPIC_NEW_MESSAGE} --offline-message-topic=${TOPIC_OFFLINE_MESSAGE} --event-store=${EVENT_STORE} --kafka-client-id=${MESSAGE_DELIVERY_CLIENT_ID:-message-delivery-1} --kafka-consumer-group=${CONSUMER_GROUP_MESSAGE_DELIVERY} --kafka-broker-list=${BROKER_LIST} --kafka-security-protocol=${KAFKA_SECURITY_PROTOCOL} --kafka-sasl-username=${KAFKA_SASL_USERNAME} --kafka-sasl-password=${KAFKA_SASL_PASSWORD} --nats-server-list=${NATS_SERVER_LIST} --nats-auth-type=${NATS_AUTH} --nats-auth-user=${NATS_USER} --nats-auth-pass=${NATS_PASS} --nats-auth-token=${NATS_AUTH_TOKEN} --nats-auth-nkey=${NATS_NKEY} --nats-auth-jwt=${NATS_USER_JWT} --nats-consumer-group=${CONSUMER_GROUP_MESSAGE_DELIVERY} --redis-endpoint=${REDIS_ENDPOINT} --channel-ms-endpoint=http://channel:4002
19+
command: /app/services/message-delivery/message-delivery-worker.js --app-name=message-delivery --new-message-topic=${TOPIC_NEW_MESSAGE} --offline-message-topic=${TOPIC_OFFLINE_MESSAGE} --event-store=${EVENT_STORE} --kafka-client-id=${MESSAGE_DELIVERY_CLIENT_ID:-message-delivery-1} --kafka-consumer-group=${CONSUMER_GROUP_MESSAGE_DELIVERY} --kafka-broker-list=${BROKER_LIST} --kafka-security-protocol=${KAFKA_SECURITY_PROTOCOL} --kafka-sasl-username=${KAFKA_SASL_USERNAME} --kafka-sasl-password=${KAFKA_SASL_PASSWORD} --nats-server-list=${NATS_SERVER_LIST} --nats-auth-type=${NATS_AUTH} --nats-auth-user=${NATS_USER} --nats-auth-pass=${NATS_PASS} --nats-auth-token=${NATS_AUTH_TOKEN} --nats-auth-nkey=${NATS_NKEY} --nats-auth-jwt=${NATS_USER_JWT} --nats-consumer-group=${CONSUMER_GROUP_MESSAGE_DELIVERY} --redis-endpoint=${REDIS_ENDPOINT} --channel-ms-endpoint=http://channel:4002
2020

2121
message:
2222
image: ramank775/chatserver:${CHAT_SERVER_TAG}

0 commit comments

Comments
 (0)