参考矩阵身份验证和查找服务器

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_addressclientapi.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 NameSydent defaultDockerfile default
SYDENT_SERVER_NAMEemptyempty
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。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么springboot应用程序在AWS中不工作,但在本地却可以正常工作?   java消息队列处理,每个消息都有长时间运行的任务   java如何将从后端获取的数据列表与Ui元素进行比较   java如何在Spring下在Jetty服务器上发布CXF webservice?   java如何确保TCPsocket在另一端关闭?(如何读取确认信号)   java jsonPath标准中不推荐使用的方法和运算符()替换为什么?   多租户应用中的java HikariCP连接池   java如何在AndroidKeyStore中存储对称密钥?   java Apache Camel:由于JVM状态,无法注册关闭挂钩   java试图理解多维数组   java Drow使用Graphics2D在值周围画一行   java如何维护wicket中面板的样式信息?   Java即时。解析无法验证日期