参考矩阵身份验证和查找服务器
matrix-sydent的Python项目详细描述
安装
安装系统依赖项
要在基于Debian的系统上安装Sydent的依赖项,请运行:
sudo apt-get install build-essential python3-dev libffi-dev \ sqlite3 libssl-dev python-virtualenv libxslt1-dev
创建virtualenv
要创建运行Sydent的虚拟环境:
^{pr2}$从PyPI
安装最新的Sydent版本Sydent及其依赖项可以通过运行pip安装:
pip install matrix-sydent
从源安装
或者,可以使用pip从本地git签出安装Sydent:
git clone https://github.com/matrix-org/sydent.git cd sydent pip install -e .
运行Sydent
激活virtualenv后,可以使用以下命令运行Sydent:
python -m sydent.sydent
这将在sydent.conf中创建一个具有某些默认值的配置文件。如果设置是 在[DEFAULT]节和配置文件的另一节中定义, 然后使用另一节中的值。在
您很可能希望更改服务器名(server.name)并指定一个电子邮件服务器 (查找以email.开头的设置)。在
默认情况下,Sydent将监听0.0.0.0:8090。可以通过更改 配置设置clientapi.http.bind_address和clientapi.http.port。在
Sydent使用SQLite作为其数据库后端。默认情况下,它将创建数据库为sydent.db 在其工作目录中。可以通过修改db.file配置选项覆盖该名称。 众所周知,Sydent使用的是SQLite 3.16.2及更高版本。在
短信发起人
SMS发起者的默认值不会添加到生成的配置文件中,它们应该 添加到该配置文件的[sms]部分,格式如下:
originators.<country code> = <long|short|alpha>:<originator>
其中country code是数字国家代码,或default指定发起人 用于未列出的国家。例如,为 美国/加拿大,英国的短代码和其他地方的字母数字创始者:
originators.1 = long:12125552368,long:12125552369 originators.44 = short:12345 originators.default = alpha:Matrix
码头工人
为sydent提供了Dockerfile。要使用它,请在sydent签出中运行docker build -t sydent .。 要运行它,请使用docker run --env=SYDENT_SERVER_NAME=my-sydent-server-p 8090:8090 sydent。在
注意:当容器终止时,所有数据都将丢失!在
持久数据
默认情况下,所有数据存储在/data。 最好的方法是将数据放入Docker卷中。在
docker volume create sydent-data docker run ... --mount type=volume,source=sydent-data,destination=/data sydent
但也可以将本地目录绑定到容器。 但是,您必须注意文件权限。在
mkdir /path/to/sydent-data chown 993:993 /path/to/sydent-data docker run ... --mount type=bind,source=/path/to/sydent-data,destination=/data sydent
环境变量
警告
这些变量只在第一次启动时考虑,并写入配置文件。在
Variable Name | Sydent default | Dockerfile default |
---|---|---|
SYDENT_SERVER_NAME | empty | empty |
SYDENT_CONF | ^{tt3}$ | ^{tt18}$ |
SYDENT_PID_FILE | ^{tt19}$ | ^{tt20}$ |
SYDENT_DB_PATH | ^{tt10}$ | ^{tt22}$ |
测试
Sydent使用matrix is tester(https://github.com/matrix-org/matrix-is-tester/)来提供 符合Matrix Identity Service API的黑盒测试。 可以按如下方式运行:
pip install git+https://github.com/matrix-org/matrix-is-tester.git trial matrix_is_tester
可以将SYDENT_PYTHON环境变量设置为使用特定的python二进制文件启动Sydent:
SYDENT_PYTHON=/path/to/python trial matrix_is_tester
matrix_is_test目录包含matrix_is_tester的Sydent启动程序:这意味着 Sydent的目录必须在Python路径上(例如PYTHONPATH=$PYTHONPATH:/path/to/sydent)。在
Sydent还进行了一些单元测试,以确保它的一些特性不是矩阵的一部分 规范(如复制)继续工作。要运行这些测试,请使用Sydent的 从Sydent存储库的根目录激活virtualenv:
trial tests
内部绑定和取消绑定API
可以启用允许绑定和解除绑定的内部API 在没有任何验证的情况下在标识符和矩阵ID之间。 这是开放的虐待,所以是残疾的 默认值,当它被启用时,只在一个单独的套接字上可用 默认情况下绑定到localhost。在
要启用它,请在配置文件中配置端口。例如:
[http] internalapi.http.port = 8091
要更改该API绑定到的地址,请设置internalapi.http.bind_address配置 在[http]部分中设置,例如:
[http] internalapi.http.port = 8091 internalapi.http.bind_address = 192.168.0.18
如前所述,这是开放的滥用,所以要确保这个地址是不公开的。在
要使用绑定:
curl -XPOST 'http://localhost:8091/_matrix/identity/internal/bind' -H "Content-Type: application/json" -d '{"address": "matthew@arasphere.net", "medium": "email", "mxid": "@matthew:matrix.org"}'
响应的格式与 /_matrix/identity/api/v1/3pid/bind。在
要使用“取消绑定”:
curl -XPOST 'http://localhost:8091/_matrix/identity/internal/unbind' -H "Content-Type: application/json" -d '{"address": "matthew@arasphere.net", "medium": "email", "mxid": "@matthew:matrix.org"}'
响应的格式与 /_matrix/identity/api/v1/3pid/unbind。在
复制
可以配置一个复制身份绑定的Sydent实例网格 彼此之间。见docs/replication.md。在
- 项目
标签: