94 lines
3.1 KiB
Markdown
94 lines
3.1 KiB
Markdown
**Purpose**: Deploy a RocketChat and MongoDB database together.
|
|
|
|
```jsx title="docker-compose.yml"
|
|
services:
|
|
rocketchat:
|
|
image: registry.rocket.chat/rocketchat/rocket.chat:${RELEASE:-latest}
|
|
restart: always
|
|
# labels:
|
|
# traefik.enable: "true"
|
|
# traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`)
|
|
# traefik.http.routers.rocketchat.tls: "true"
|
|
# traefik.http.routers.rocketchat.entrypoints: https
|
|
# traefik.http.routers.rocketchat.tls.certresolver: le
|
|
environment:
|
|
MONGO_URL: "${MONGO_URL:-\
|
|
mongodb://${MONGODB_ADVERTISED_HOSTNAME:-rc_mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
|
|
${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
|
|
MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\
|
|
-mongodb://${MONGODB_ADVERTISED_HOSTNAME:-rc_mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
|
|
local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
|
|
ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}}
|
|
PORT: ${PORT:-3000}
|
|
DEPLOY_METHOD: docker
|
|
DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-}
|
|
REG_TOKEN: ${REG_TOKEN:-}
|
|
depends_on:
|
|
- rc_mongodb
|
|
expose:
|
|
- ${PORT:-3000}
|
|
dns:
|
|
- 1.1.1.1
|
|
- 1.0.0.1
|
|
- 8.8.8.8
|
|
- 8.8.4.4
|
|
ports:
|
|
- "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"
|
|
networks:
|
|
docker_network:
|
|
ipv4_address: 192.168.5.2
|
|
|
|
rc_mongodb:
|
|
image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-5.0}
|
|
restart: always
|
|
volumes:
|
|
- /srv/deeptree/rocket.chat/mongodb:/bitnami/mongodb
|
|
environment:
|
|
MONGODB_REPLICA_SET_MODE: primary
|
|
MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
|
|
MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
|
|
MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-rc_mongodb}
|
|
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
|
|
MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-rc_mongodb}
|
|
MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
|
|
ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}
|
|
networks:
|
|
docker_network:
|
|
ipv4_address: 192.168.5.3
|
|
|
|
networks:
|
|
docker__network:
|
|
external: true
|
|
```
|
|
|
|
```jsx title=".env"
|
|
TZ=America/Denver
|
|
RELEASE=6.3.0
|
|
PORT=3000 #Redundant - Can be Removed
|
|
MONGODB_VERSION=6.0
|
|
MONGODB_INITIAL_PRIMARY_HOST=rc_mongodb #Redundant - Can be Removed
|
|
MONGODB_ADVERTISED_HOSTNAME=rc_mongodb #Redundant - Can be Removed
|
|
```
|
|
## Reverse Proxy Configuration
|
|
```jsx title="nginx.conf"
|
|
# Rocket.Chat Server
|
|
server {
|
|
listen 443 ssl;
|
|
server_name rocketchat.domain.net;
|
|
error_log /var/log/nginx/new_rocketchat_error.log;
|
|
client_max_body_size 500M;
|
|
location / {
|
|
proxy_pass http://192.168.5.2:3000;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto https;
|
|
proxy_set_header X-Nginx-Proxy true;
|
|
proxy_redirect off;
|
|
}
|
|
}
|
|
```
|