avatar

目录
Docker 创建 Rocket.Chat

简介

RocketChat 是一款优秀的开源聊天软件。支持各种平台,IOS、Android、Web、Mac、Windows 以及 Linux,安装部署简单,功能简单易用,目前部分功能还在完善当中,特别适合小公司自建聊天平台

RocketChat

注意点

  • 配置要求高。我服务器只有 1G 内存,跑 1.0 以上版本是部署不起来的,貌似是 Meteor 的缺点,不过得益于 Node.js 的异步特性,可以支持比较高的并发
  • 音、视频与移动端服务强制要求 SSL

安装 0.62 版本

  1. 安装启动 MongoDB 实例:

    shell
    1
    docker run --name db -d mongo:3.0 --smallfiles
  2. 安装启动 RocketChat Server:

    注意替换 your_public_ip

    shell
    1
    docker run --name rocketchat -p 80:3000 --env ROOT_URL=http://your_public_ip --link db -d rocket.chat:0.62

启动成功后,访问: http://your_public_ip 即可看到 Rocker.Chat 主程序设置界面了。

index

安装最新版本

服务器配置高,可安装最新版本,建议使用 docker-compose 安装

  1. 切换到 root 账号下部署

    shell
    1
    2
    3
    4
    mkdir /home/rocketchat
    cd /home/rocketchat
    mkdir data
    mkdir dump
  2. 新建 docker-compose.yml 文件

    yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    db:
    image: mongo
    volumes:
    - $PWD/data:/data/db
    - $PWD/dump:/dump
    command: mongod --smallfiles
    web:
    image: rocketchat/rocket.chat
    environment:
    - MONGO_URL=mongodb://db:27017/meteor
    - ROOT_URL=http://your-ip-address:8818
    links:
    - db:db
    ports:
    - 8818:3000

    其中 your-ip-address 改成你自己的外网的域名或 ip。

    用的是官方提供的 Docker 镜像 RocketChat。

  3. 然后部署

    shell
    1
    $ docker-compose up

    如果没什么问题,就使用 8818 端口访问。

    最后在线上可以加上 -d 开启守护态。

Nginx 配置

Nginx 的反向代理与 SSL 证书配置。

yml
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
server {
listen 443 ssl http2;
server_name you.domain;

client_max_body_size 40M;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log;
error_log /var/log/nginx/rocketchat.access.log;

# 证书配置
ssl on;
ssl_certificate cert/3467737_you.domain.pem;
ssl_certificate_key cert/3467737_you.domain.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location / {
# 反向代理 配置
# 转发的服务器
proxy_pass http://your_public_ip:8080;
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-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;

proxy_redirect off;
}
}

server {
listen 80;
server_name you.domain;
return 301 https://$host$request_uri;
}

参考文档

文章作者: Tim
文章链接: http://w3ctim.com/post/ff63d323.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tim

评论