centos8安装synapse服务端节点

  • A+
所属分类:技术

chatGPT账号
centos8安装synapse服务端节点
Matrix 是一个分布式的联邦宇宙 IM 系统,多个中心服务器可以互联互通。本文介绍如何在 CentOS 8 下手动安装 Matrix 的服务器软件 Synapse。
安装依赖:
sudo dnf -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel \
  lcms2 libwebp-devel tcl-devel tk-devel redhat-rpm-config \
  python36 virtualenv libffi-devel openssl-devel
sudo dnf -y group install "Development Tools"
配置防火墙:
sudo firewall-cmd --permanent --add-service http
sudo firewall-cmd --permanent --add-service https
sudo firewall-cmd --reload
安装 Synapse
在本例中,我们将 Synapse 的安装目录设定为  /opt/synapse。
mkdir -p /opt/synapse
virtualenv -p python3 /opt/synapse/env
source /opt/synapse/env/bin/activate

pip install --upgrade pip virtualenv six packaging appdirs
pip install --upgrade setuptools
pip install matrix-synapse

source /opt/synapse/env/bin/activate
pip install -U matrix-synapse
cd /opt/synapse
生成配置文件
注意,这里的 --server-name 参数,将会是你 Matrix 用户名的一部分。一般来说建议使用顶级域名,这样最终的用户名会更短。
python -m synapse.app.homeserver \
  --server-name example.com \
  --config-path homeserver.yaml \
  --generate-config \
  --report-stats=no
使用 PostgreSQL
安装过程不再赘述。
创建用户:
sudo su - postgres
createuser synapse
psql
设置密码、创建数据库:
ALTER USER synapse WITH ENCRYPTED password 'DBPassword';
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
\q
退出 synapse 用户:
exit
安装 Synapse 使用 PostgreSQL 所需的相关依赖:
sudo dnf -y install postgresql-devel libpqxx-devel.x86_64
source ~/synapse/bin/activate
pip install psycopg2
修改 Synapse 配置
vim /opt/synapse/homeserver.yaml
找到:
database:
  name: sqlite3
  args:
    database: /opt/synapse/homeserver.db
修改为:
database:
#  name: sqlite3
#  args:
#    database: /opt/synapse/homeserver.db
  name: psycopg2
  args:
    user: synapse
    password: DBPassword
    database: synapse
    port: 5432
    cp_min: 5
    cp_max: 10
尝试启动
synctl start
成功后日志中会有以下绿色字样:
started synapse.app.homeserver(homeserver.yaml)
如果遇到
FATAL: Peer authentication failed for user "synapse" 错误,请检查 PostgreSQL 的 pg_hba.conf 文件中的配置。
与 Nginx 整合
Synapse 默认使用 8008 端口提供 http 服务,使用 8448 端口提供 HTTPS 链接。为简明起见,我们这里使用 Nginx 反代 Synapse,以实现对外提供 HTTPS 访问。
为不与主域下的网站发生冲突,这里使用了二级域名 synapse.example.com。
在 Nginx 中创建一个虚拟主机配置,参考:
server {
        listen          443 ssl http2;
        listen          [::]:443 ssl http2;
        server_name     martix.example.com synapse.example.com;

        ## 请将以下两行替换为自己的 SSL 配置
        #include conf.d/snippets/ssl.conf;
        #include conf.d/snippets/ssl-security.conf;

        location ^~ /{
                proxy_pass          http://localhost:8008;
                proxy_set_header    Host            $http_host;
                proxy_set_header    Scheme  $scheme;
                proxy_set_header    X-Real-IP       $remote_addr;
                proxy_set_header    X-Forwarded-Host $host;
                proxy_set_header    X-Forwarded-Proto $scheme;
                proxy_set_header    Destination $http_destination;
                proxy_set_header    X-Forwarded-Server $host;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        access_log off;
我们选用了二级域名,而 Synapse 中使用的是顶级域名,为了与客户端和联邦中其他服务器通讯,应当在顶级域名对应的网站下,添加
.well-known/matrix/server 和
.well-known/matrix/client 两个 JSON 文件,以指引它们使用二级域名连接到 Synapse 服务。简单起见,直接使用 Nginx 返回 JSON 内容,在顶级域名对应的网站配置中,添加:
location /.well-known/matrix/server {
    return 200 '{"m.server":"synapse.example.com:443"}';
    default_type    application/json;
    add_header Access-Control-Allow-Origin *;
}

location /.well-known/matrix/client {
    return 200 '{"m.homeserver": {"base_url": "https://synapse.example.com"}}';
    default_type    application/json;
    add_header Access-Control-Allow-Origin *;
}
在某些客户端中,即使配置了以上两个 JSON,仍会尝试连接顶级域名。如果你遇到了客户端提示 404 无法连接,可以在登录时,尝试使用
synapse.example.com 作为主域名。或者在确认与顶级域名对应的网站无冲突的情况下,在其配置文件中加入:
location ^~ /_matrix{
    proxy_pass          http://localhost:8008;
    proxy_set_header    Host            $http_host;
    proxy_set_header    Scheme  $scheme;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-Host $host;
    proxy_set_header    X-Forwarded-Proto $scheme;
    proxy_set_header    Destination $http_destination;
    proxy_set_header    X-Forwarded-Server $host;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}
注册管理员用户
register_new_matrix_user -c /opt/synapse/homeserver.yaml http://localhost:8008

New user localpart [root]: root
Password: 
Confirm password: 
Make admin [no]: yes
Sending registration request...
Success!
注意:
  1. 一旦用户注册成功,再修改 homeserver.yaml 中的域名将导致报错,修复将需要一定的手动操作,也可能引起一些未知的问题。所以请在安装时,仔细规划域名。
  2. 请仔细填写注册首个用户时的选项,变更起来也是比较麻烦的。
创建系统服务
# 先停止 synapse
synctl stop
创建用户
groupadd synapse
useradd -d /opt/synapse -m synapse -s /sbin/nologin -g synapse
chown -R synapse: /opt/synapse

vim /etc/systemd/system/synapse.service
输入:
[Unit]
Description=Synapse Matrix homeserver

[Service]
Type=simple
User=synapse
Group=synapse
WorkingDirectory=/opt/synapse
ExecStart=/opt/synapse/env/bin/python3 -m synapse.app.homeserver -c /opt/synapse/homeserver.yaml

[Install]
WantedBy=multi-user.target
保存后,执行:
systemctl daemon-reload
systemctl enable --now synapse
至此,完成centos8安装synapse服务端节点所有操作流程。

添加VX或者telegram获取全程线上免费指导

centos8安装synapse服务端节点

免责声明

发文时比特币价格:$31249

当前比特币价格:[crypto coins=”BTC” type=”text” show=”price”]

当前比特币涨幅:[crypto coins=”BTC” type=”text” show=”percent”]

免责声明:

本文不代表路远网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与路远网没有任何关系;

路远网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,路远网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,路远网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与路远网没有任何关系;

路远区块链研究院声明:路远区块链研究院内容由路远网发布,部分来源于互联网和行业分析师投稿收录,内容为路远区块链研究院加盟专职分析师独立观点,不代表路远网立场。

本文是全系列中第12 / 223篇:行业技术

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号
路远

发表评论

您必须登录才能发表评论!