前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【docker】私有IM | Matrix的部署与使用

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

作者头像
夜梦星尘
发布2024-08-20 19:17:29
1870
发布2024-08-20 19:17:29
举报
文章被收录于专栏:夜梦星尘的折腾日记

本文发布于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>

聊天~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-3-10 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 准备
  • 3. 部署
    • 3.1 生成配置文件
      • 3.2 运行synapse[1]
      • 4. 反向代理
      • 5. 配合element
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档