【docker】私有IM | Matrix的部署与使用

2024-08-20 19:17:29 浏览数 (2)

本文发布于157天前,最后更新于139天前,其中的信息可能有所发展或是发生改变。

1. 前言

打造自己的私有IM,私有聊天室~

官网:Matrix.org

官方安装文档:Installation – Synapse (matrix-org.github.io)

官方docker:matrixdotorg/synapse – Docker Image | Docker Hub

演示:

2. 准备

在开始部署之前,你需要安装 docker和docker-compose。具体安装见:【docker】在服务器上安装 docker/docker-compose

3. 部署

3.1 生成配置文件

创建文件夹:

代码语言:javascript复制
mkdir -p /root/data/docker_data/matrix/data
cd /root/data/docker_data/matrix

需要将域名解析到服务器,然后修改下面代码中SYNAPSE_SERVER_NAME的值为你的域名,例如matrix.yemengstar.com

代码语言:javascript复制
docker run -it --rm 
    -v /root/data/docker_data/matrix/data:/data 
    -e SYNAPSE_SERVER_NAME=matrix.yemengstar.com 
    -e SYNAPSE_REPORT_STATS=yes 
    matrixdotorg/synapse:latest generate

运行以后,homeserver.yaml会自动生成在/var/lib/docker/volumes/synapse-data/_data中,你可以查看这个配置文件,必要的时候可以进行修改。

查看homeserver.yaml

代码语言:javascript复制
cd data
vim homeserver.yaml

默认生成的配置如下:

代码语言:javascript复制
# Configuration file for Synapse.
#
# This is a YAML file: see [1] for a quick introduction. Note in particular
# that *indentation is important*: all the elements of a list or dictionary
# should have the same indentation.
#
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
#
# For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or
# https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "matrix.yemengstar.com"
pid_file: /data/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: false
database:
  name: sqlite3
  args:
    database: /data/homeserver.db
log_config: "/data/matrix.yemengstar.com.log.config"
media_store_path: /data/media_store
registration_shared_secret: "***"
report_stats: true
macaroon_secret_key: "***"
form_secret: "***"
signing_key_path: "/data/matrix.yemengstar.com.signing.key"
trusted_key_servers:
  - server_name: "matrix.org"


# vim:ft=yaml

默认的配置文件没有开启注册功能,所以需要我们手动开启一下。

英文输入法下按i进入编辑模式后,在这个配置文件的最后加入:

代码语言:javascript复制
enable_registration: true
enable_registration_without_verification: true

esc后,输入:wq保存退出。当然你可以选择直接把这个配置文件删了然后编辑好全部贴入。

你也可以新添加一些环境变量,夜梦因为用不到所以就不写了(懒),需要的小伙伴可以查看官方给出的额外的环境变量的配置:matrixdotorg/synapse – Docker Image | Docker Hub

3.2 运行synapse[1]

/root/data/docker_data/matrix文件夹中创建运行配置文件:

代码语言:javascript复制
vim docker-compose.yml

贴入:

代码语言:javascript复制
version: "3.3"

services:
  synapse:
    image: "matrixdotorg/synapse:latest"
    container_name: "matrix_synapse"
    restart: unless-stopped
    ports:
      - 8008:8008
    volumes:
      - "./data:/data"
    environment:
      VIRTUAL_HOST: "matrix.yemengstar.com"
      VIRTUAL_PORT: 8008
      LETSENCRYPT_HOST: "matrix.yemengstar.com"
      SYNAPSE_SERVER_NAME: "matrix.yemengstar.com"
      SYNAPSE_REPORT_STATS: "yes"

设置默认权限:

代码语言:javascript复制
chown -R 991:991 /root/data/docker_data/matrix/data

运行:

代码语言:javascript复制
docker-compose up -d

4. 反向代理

你需要完成反向代理并开启SSL,具体为你的域名->服务器IP:8008,反代可以参考下面两篇文章:

【docker】反向代理神器 ——Nginx Proxy Manager 的安装

【docker】Nginx Proxy Manager 的使用

具体如下图所示:

访问域名可以看到下面的界面:

5. 配合element

夜梦推荐直接下载官方的app用,省的折腾了~

下载地址:Download Element

官方客户端安装好打开,长下面这样:

我们点编辑,添加自己的服务器(域名):

创建新用户:

注册需要强密码。成功登录~

强烈建议在注册完用户以后,关闭注册功能:

代码语言:javascript复制
enable_registration: false
enable_registration_without_verification: false

然后重启一下docker容器:

代码语言:javascript复制
docker restart <CONTAINER ID>

聊天~

0 人点赞