Matrix端到端加密聊天软件部署教程 Tuwunel + Element Web 终极部署教程 (Docker Compose 版)

18 1 月, 2026 7点热度 0人点赞 0条评论

🚀 Tuwunel + Element Web 终极部署教程 (Docker Compose 版)

Tuwunel 是一个基于 Rust 编写的高性能 Matrix 聊天服务器端(Homeserver),它是 Conduwuit 的继任者(而 Conduwuit 又是 Conduit 的分支),主打极致的性能、轻量化和企业级稳定性。相比官方的 Synapse,Tuwunel 资源占用更低且响应迅速。

准备工作

  • 服务器系统:Debian / Ubuntu
  • 核心工具:Docker, Docker Compose, Nginx Proxy Manager (NPM)
  • 域名准备 (假设):
    • 服务端域名:matrix.xxx.com (用于数据传输)
    • 客户端域名:mt.xxx.com (用于网页访问,可选)

第一步:创建目录与配置文件

在服务器上建立一个干净的目录:

mkdir -p /docker_data/Tuwunel
cd /docker_data/Tuwunel

1. 创建 docker-compose.yml

这是最关键的文件。我们使用 Docker 卷 (tuwunel_data) 来存储数据库,彻底根除 Permission Denied 错误。

创建文件:

nano docker-compose.yml

复制粘贴以下内容:

version: '3'

services:
  # --- 1. 服务端:Tuwunel ---
  tuwunel:
    image: jevolk/tuwunel:latest
    container_name: tuwunel-server
    restart: unless-stopped
    ports:
      # 外部端口 6167 <--> 内部端口 6167
      - "6167:6167"
    volumes:
      # 【核心】使用 Docker 托管卷,自动管理权限
      - tuwunel_data:/var/lib/tuwunel
    environment:
      # 你的服务端域名,自行修改
      - TUWUNEL_SERVER_NAME=matrix.xxx.com
      # 监听端口与地址
      - TUWUNEL_PORT=6167
      - TUWUNEL_ADDRESS=0.0.0.0
      # 允许注册 (为了建管理员账号,先开着)
      - TUWUNEL_ALLOW_REGISTRATION=true
      # 开启无 Token 注册必须加这行“发誓”参数
      - TUWUNEL_YES_I_AM_VERY_VERY_SURE_I_WANT_AN_OPEN_REGISTRATION_SERVER_PRONE_TO_ABUSE=true
      # 上传限制 (50MB)
      - TUWUNEL_MAX_REQUEST_SIZE=50000000
      - RUST_LOG=info

  # --- 2. 客户端:Element Web ---
  element-web:
    image: vectorim/element-web:latest
    container_name: element-web
    restart: unless-stopped
    ports:
      # 外部端口 8077 <--> 内部端口 80
      - "8077:80"
    volumes:
      # 挂载客户端配置文件
      - ./element-config.json:/app/config.json

# 声明数据卷
volumes:
  tuwunel_data:

(保存退出:Ctrl+O -> Enter -> Ctrl+X)

2. 创建 element-config.json

这个文件告诉网页端去哪里连接服务器。

创建文件:

nano element-config.json

复制粘贴以下内容:

{
    "default_server_config": {
        "m.homeserver": {
            "base_url": "https://matrix.xxx.com",
            "server_name": "matrix.xxx.com"
        }
    },
    "brand": "Element",
    "integrations_ui_url": "https://scalar.vector.im/",
    "integrations_rest_url": "https://scalar.vector.im/api",
    "integrations_widgets_urls": [
        "https://scalar.vector.im/_matrix/integrations/v1",
        "https://scalar.vector.im/_matrix/integrations/v1/3rdparty"
    ],
    "hosting_signup_link": "https://element.io/matrix-services"
}

(保存退出)


第二步:启动服务

在当前目录下执行:

docker compose up -d

等待几秒后,检查状态:

docker ps

确保两个容器状态都是 Up (特别是 tuwunel-server 没有显示 Restarting)。


第三步:配置 Nginx Proxy Manager (NPM)

你需要配置两条反向代理规则。

1. 配置服务端 (Server)

  • Domain Names: matrix.xxx.com

  • Scheme: http

  • Forward Host: 你的服务器IP (或者容器名 tuwunel-server,如果在同一网络)

  • Forward Port: 6167

  • SSL: 开启并强制 HTTPS。

  • Advanced (高级配置 - 必填): 为了让联邦和客户端能自动发现服务器,必须添加 .well-known 配置。点击 Advanced 选项卡,填入:

    location /.well-known/matrix/server {
      return 200 '{"m.server": "matrix.ms.rontalks.ggff.net:443"}';
      default_type application/json;
      add_header Access-Control-Allow-Origin *;
    }
    
    location /.well-known/matrix/client {
      return 200 '{"m.homeserver": {"base_url": "https://matrix.xxx.com"}}';
      default_type application/json;
      add_header Access-Control-Allow-Origin *;
    }

2. 配置客户端 (Element Web)

  • Domain Names: mt.xxx.com (你的网页端域名)
  • Scheme: http
  • Forward Host: 你的服务器IP
  • Forward Port: 8077
  • SSL: 开启并强制 HTTPS。

第四步:注册并设置管理员

  1. 注册: 访问你的网页版 (https://mt.xxx.com),注册一个新账号(例如 rontalks)。

  2. 暂停服务: 回到 SSH 终端,暂停容器(必须暂停才能操作数据库):

    docker compose down
  3. 进入控制台提权: 复制并在终端执行以下命令:

    docker run --rm -it \
     -v tuwunel_data:/var/lib/tuwunel \
     -e TUWUNEL_SERVER_NAME=matrix.xxx.com \
     jevolk/tuwunel:latest \
     --console
  4. 执行提权: 出现 uwu> 后输入:

    admin users make-user-admin @rontalks:matrix.xxx.com

    (记得把 @rontalks... 换成你的真实 ID)

  5. 退出: 按 Ctrl + D


第五步:安全收尾 (关闭注册)

为了防止陌生人随意注册,建议关闭注册功能。

  1. 修改配置:

    nano docker-compose.yml

    TUWUNEL_ALLOW_REGISTRATION=true 改为 false

  2. 最终重启:

    docker compose up -d

恭喜!你现在拥有了一个高性能、安全、完全属于你自己的 Matrix 聊天服务器。

这是真正的“天神权限”。比如你要重置某人的密码,或者彻底删除某个违规账号,Element 网页版上是点不动的,你需要再次回到我们刚才那个 uwu> 控制台里敲命令。

还记得怎么进控制台吗? docker compose run --rm -e TUWUNEL_SERVER_NAME=matrix.xxx.com tuwunel --console

常用管理命令小抄 (Cheat Sheet):

  1. 查看所有注册用户

    admin users list
  2. 重置用户密码 (比如你的朋友忘了密码):

    admin users reset-password @username:你的域名 新密码
  3. 封禁/停用账号 (遇到发广告的):

    admin users deactivate @badguy:你的域名
  4. 创建新用户 (如果不开放注册,你可以手动建号):

    register -u 用户名 -p 密码 -a (如果是管理员加-a)

Ron

这个人很懒,什么都没留下

文章评论