自建的流程:
compose.yml:
services:
rocketchat:
image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-latest}
restart: always
container_name: rocketchat
environment:
MONGO_URL: "${MONGO_URL:-\
mongodb://${MONGODB_ADVERTISED_HOSTNAME:-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:-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:
- mongodb
expose:
- ${PORT:-3000}
ports:
- "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"
mongodb:
image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-7.0}
restart: always
container_name: rocketchat_mongodb
volumes:
- ./mongodb_data:/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:-mongodb}
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb}
MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-no}
MONGODB_ROOT_PASSWORD: ${MONGODB_ROOT_PASSWORD:-}
MONGODB_REPLICA_SET_KEY: ${MONGODB_REPLICA_SET_KEY:-}
.env【更改password和key等】:
### Rocket.Chat configuration
# Rocket.Chat version
RELEASE=7.4.1
# IP to bind the process to
BIND_IP=127.0.0.1
# URL used to access your Rocket.Chat instance
ROOT_URL=https://chat.example.com
# Port on the host to bind to
HOST_PORT=3567
### MongoDB configuration
# MongoDB version/image tag
MONGODB_VERSION=7.0
# 安全设置
ALLOW_EMPTY_PASSWORD=no
MONGODB_ROOT_PASSWORD=your_password
MONGODB_ROOT_USER=root
MONGODB_REPLICA_SET_KEY=your_key
# 连接字符串
MONGO_URL=mongodb://root:your_password@mongodb:27017/rocketchat?replicaSet=rs0&authSource=admin
MONGO_OPLOG_URL=mongodb://root:your_password@mongodb:27017/local?replicaSet=rs0&authSource=admin
Caddyfile:
chat.example.com {
reverse_proxy localhost:3567
}
操作命令【省略cloudflare设置dns记录等步骤】
# 创建MongoDB数据目录,用于持久化存储数据
mkdir ./mongodb_data
# 修改数据目录的所有者为1001:1001用户和用户组
# 1001是Bitnami MongoDB容器内的默认用户ID,解决权限问题
chown -R 1001:1001 ./mongodb_data
# 设置数据目录权限为775
# 表示:所有者(rwx)、用户组(rwx)、其他用户(r-x)
chmod -R 775 ./mongodb_data
# 使用Docker Compose在后台启动容器
# -d 参数表示detached模式(后台运行)
docker compose up -d
# 重新加载Caddy服务配置
# 应用反向代理设置,使Caddy代理Rocket.Chat
systemctl reload caddy
紧接着访问chat.example.com来创建admin账号。
可以做的剩余的事:
参考资料: