博客主页 🐟
团队协作空间element-web安装教程
团队协作空间element-web安装教程

Author:

轻虹空雨

©

Wordage:

共计 6645 字

needs:

约 4 分钟

Popular:

92 ℃

Created:

:自部署团队协作应用element-web的简要教程
目 录

Element-web是一个开源的、基于 Matrix 协议的团队协作应用,支持多平台和多端口,包括 Web、桌面端和移动端。Element-web 提供以下功能:

  • 即时聊天:支持一对一聊天、群聊、频道聊天等。
  • 文件共享:支持文件上传、分享和下载。
  • 视频会议:支持音频和视频会议。
  • 工作流管理:支持创建和管理任务、项目和流程。
  • 第三方应用集成:支持与其他应用程序集成,例如 GitHub、Google Drive 等。

本文内容由本人与“木创社”成员(一只鬆Ice Year)共同完成

Matrix介绍

Matrix是一个开源、可交互、去中心化的实时通信服务框架。使用Matrix可以搭建安全的通信服务器,配合支持 Matrix 的客户端可以实现个人、团队间的实时聊天交互。

与常见的QQ、微信、钉钉相比,Matrix的特点就是开源,可私有化部署,保证通信的安全和隐私。与Rocket.chat、MatterMost相比,Matrix的特点还要加上去中心化这个特点。

每个运行Matrix的服务器都是一个节点,用户可以选择在任意节点注册、连接,同一个节点内的用户可以任意通信。同时,节点与节点之间也可以通过联邦(Federation)机制进行通信,实现不同节点的用户之间进行通信。

你需要准备的

  • 一个运行着Linux 系统的服务器,配置为至少2c2g或以上
  • 一个正常运行的域名以及对其 DNS 记录的管理权(除非你想在本地主机上设置它)
  • 服务器已经安装 Docker 和 Docker-compose
  • 了解基本的 Linux 命令并会使用LInux终端

部署后端服务

一、配置反向代理服务

  1. 新建一个名为proxy的文件夹并进入其中
mkdir proxy && cd proxy

我们建议你拥有使用Vim编辑器的能力,但如果你没有,也可以使用服务器面板或其他编辑器管理配置文件。

  1. 创建一个docker-compose.yml并且使用Vim打开编辑它
touch docker-compose.yml && vim docker-compose.yml
  1. 复制以下内容到docker-compose.yaml
version: "3.3"

services:
    proxy:
        image: "jwilder/nginx-proxy"
        container_name: "proxy"
        volumes:
            - "certs:/etc/nginx/certs"
            - "vhost:/etc/nginx/vhost.d"
            - "html:/usr/share/nginx/html"
            - "/run/docker.sock:/tmp/docker.sock:ro"
        networks: ["matrix-network"]
        restart: "always"
        ports:
            - "80:80"
            - "443:443"
            
    letsencrypt:
        image: "jrcs/letsencrypt-nginx-proxy-companion"
        container_name: "letsencrypt"
        volumes:
            - "certs:/etc/nginx/certs"
            - "vhost:/etc/nginx/vhost.d"
            - "html:/usr/share/nginx/html"
            - "/run/docker.sock:/var/run/docker.sock:ro"
        environment:
            NGINX_PROXY_CONTAINER: "proxy"
        networks: ["matrix-network"]
        restart: "always"
        depends_on: ["proxy"]        
  
networks:
    matrix-network:
        driver: bridge
        external: true

volumes:
    certs:
    vhost:
    html:  

Tips:

  • 如果你已经部署过其他Nginx服务(已占用80&443端口),并且在服务器上运行,同时你不想影响它的正常工作,你可以手动把Nginx服务下面的ports内的参数稍作修改来让容器映射其他端口,但请注意你需要在你已启动的Nginx反代服务自行配置以对其进行正确的反代。
  • 它使用默认桥接网络以外的网络,所以你需要在后面的容器中也使用正确的网络配置,使容器间也能够正确通讯。
  • 容器端口 80 和 443 已绑定,分别用于 http 和 https。
  • 卷证书、vhost 和 html 将在 jwilder/nginx-proxy 和 jrcs/letsencrypt-nginx-proxy-companion 容器之间共享。
  • docker 套接字以只读方式安装在 /tmp/docker.sock 处。
  • 环境变量 NGINX_PROXY_CONTAINER 设置为反向代理容器的容器名称,在我们的例子中是“proxy”
  • 网络是外部的。这是为了避免其他容器不共享同一网络的任何问题,因为 docker-compose 在自动创建时如何命名其卷和网络;所以这需要我们创建网络。
  1. 创建Docker网络,使用以下命令创建matrix-network网络
docker network create matrix-network
  1. 启动容器(确认你是在proxy目录下执行此命令)
docker compose up -d

现在,你应该已经完成了反向代理服务器的启动。

二、部署Synapse服务器

  1. 新建一个名为synapse的文件夹
mkdir synapse && cd synapse
  1. 在目录下新建docker-compose.yml并打开编辑它
touch docker-compose.yml && vim docker-compose.yml
  1. 复制以下内容到synapse目录下的docker-compose.yml

修改sub.domain.com为你想要Synapse呈现的服务器地址,并且确认您已将服务器的 IP 添加到 域名的DNS 的 A 记录中,并且 CNAME 记录指向确切的子域。

version: "3.3"

services:
    synapse:
        image: "matrixdotorg/synapse:latest"
        container_name: "synapse"
        volumes:
            - "./data:/data"
        environment:
            VIRTUAL_HOST: "sub.domain.com"
            VIRTUAL_PORT: 8008
            LETSENCRYPT_HOST: "sub.domain.com"
            SYNAPSE_SERVER_NAME: "sub.domain.com"
            SYNAPSE_REPORT_STATS: "yes"
        networks: ["matrix-network"]        

    postgresql:
        image: postgres:latest
        restart: always
        environment:
            POSTGRES_PASSWORD: somepassword
            POSTGRES_USER: synapse
            POSTGRES_DB: synapse
            POSTGRES_INITDB_ARGS: "--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
        volumes:
            - "postgresdata:/var/lib/postgresql/"
        networks: ["matrix-network"]


networks:
    matrix-network:
        driver: bridge
        external: true
volumes:
    postgresdata:

Tips:

  • 环境变量 VIRTUAL_HOST 和 LETSENCRYPT_HOST 用于 LetsEncrypt 和反向代理容器,它们将生成必要的配置更改以及证书。
  • 确保 SYNAPSE_SERVER_NAME 指向 Synapse 服务器的 FQDN(以及子域)。
  • 将 VIRUAL_PORT 设置为 8008。synapse 容器公开 HTTP 端口 8008,供客户端与其通信。
  • 确保该容器与反向代理容器使用相同的网络,否则容器之间将无法正常通讯。
  • 按需修改POSTGRES_PASSWORDPOSTGRES_USERPOSTGRES_DB后方数值为你需要的值以保证数据库安全性。

执行以下命令,创建data目录,并生成配置文件

mkdir data && docker-compose run --rm synapse generate

三、配置Synapse数据库

我们在前面的文件配置了PostgreSQL数据库,但我们需要对Synapse的配置文件进行修改来让它能够识别并使用这个PostgreSQL数据库。

  1. 打开Synapse的data目录,找到homeserver.yaml文件并找到以下几行
database:
    name: sqlite3
    args:
        database: /path/to/homeserver.db

删除它们并修改为以下内容:

database:
    name: psycopg2
    args:
        user: synapse
        password: somepassword
        host: postgresql
        database: synapse
        cp_min: 5
        cp_max: 10

内部关于数据库的配置应该与你之前在docker-compose.yml中配置的一致。

数据库的配置选择是 psycopg2,它是基于 Python 的 PostgreSQL 适配器。

四、部署并启动服务

docker compose up -d

这样,你应该已经完成了后端服务的部署。

五、补充

  1. 创建Synapse用户

我们需要打开Synapse容器的终端来使用此命令,逐行粘贴以下命令到你的终端并执行。

docker-compose exec synapse bash
register_new_matrix_user -c /data/homeserver.yaml <your matrix server host>

请将“”替换为你的Synapse后端地址,注意要带Http协议头,如https://matrix.domain.com

接下来Synapse会引导你进行创建用户,如用户名,密码,是否为管理员等。

  1. 开启公开注册功能

我们需要打开Synapse的data目录下的homeserver.yaml并设置以下参数,然后重启Synapse服务即可。

enable_registration: True

部署前端服务

正如我们说过的,Matrix只是一个协议与框架。Synapse只是一个使用Matrix协议的实现方式。你需要一个 Matrix 客户端才能将其用作消息传递工具。

在我们接下来的示例中,我们将使用Element作为前端客户端,这可能是你可以使用的最流行的 Matrix 客户端之一。

当然,你依然可以选择其他的客户端,例如Schildichat,Fluffychat,Cinny等,他们也是比较流行的Martix客户端。

下载Element

  1. 前往Element的Github仓库以获取最新的Release版本。
  2. 下载并解压Element客户端文件并访问其解压目录,然后输入以下命令以创建配置文件
cp config.sample.json config.json
  1. 编辑config.json并设置default_server_config.m.homeserver.base_url为我们之前部署的Matrix服务端地址。
  2. 配置反向代理指向解压Element的目录并为其赋予Https。
  3. 访问前端Element客户端测试效果。
= END =
作者:
轻虹空雨
文章:
轻虹空雨的小圈
地址:
https://mufeng086.com/2023/10/31/element-web.html
更新:
2023 年 11 月 05 日 15 时
声明:
本文由博主原创,依据 CC BY-NC-SA 4.0 许可协议授权,转载请注明出处
文章二维码
团队协作空间element-web安装教程
共计 0 条评论,点此发表评论
博客主页 轻虹空雨的小圈 热爱依然,生活仍然 51统计 百度统计
萌ICP备20238186号 苏ICP备2023024709号
苏公网安备32060202001065
本站已运行 356 天 17 小时 23 分 自豪地使用 Typecho 建站,并搭配 MyDiary 主题 Copyright © 2022 ~ 2023. 轻虹空雨的小圈 All rights reserved.
打赏图
打赏博主
欢迎
搜 索
足 迹
分 类
  • 生活事
  • 技术探索
  • 兴趣娱乐