开放大厅服务器
openlobb的Python项目详细描述
#打开大厅服务器
开放大厅是大厅会议的登记册。它正在开发和测试中 在[捷克海盗党](https://www.pirati.cz)上,但以后可能被 任何政党、组织、机构,…
开放大厅现在是早期测试版。不供生产使用。
这是带有[graphql api](http://graphql.org)的register-server的核心。 通过api连接的是应用程序接口。默认Web应用程序为 可在 [开放大厅/开放大厅应用程序](https://github.com/openlobby/openlobby-app)。
寄存器建立在 [弹性搜索](https://www.elastic.co/products/elasticsearch)。现在是 用于使用自定义捷克语文本分析器以捷克语进行搜索。有 准备ElasticSearch Docker容器,捷克支持 [捷克语露天大厅](https://github.com/openlobby/openlobby-es-czech)。
##配置
- 配置由环境变量完成:
- 调试-设置为任意值以启用调试模式。不要在生产中使用!
- 密钥-长随机密钥字符串(如果不在调试模式下,则必需)
- 数据库DSN-PostgreSQL数据库的DSN(默认值:PostgreSQL://db:db@localhost:5432/openlobby)
- 弹性搜索DSN-弹性搜索集群的DSN(默认值:http://localhost:9200)
- 站点名称-用于OpenID身份验证的站点名称(默认值:打开大厅)
- es_index-弹性搜索索引前缀(默认值:openlobby)
- 重定向uri-重定向openid connect身份验证中使用的uri(默认值:http://localhost:8010/login redirect)
- 把你运行服务器的地址放在那里,但要保持在那里/login redirect
- 这是在openid provider上进行静态客户端注册的重定向uri
###登录快捷方式也称为预先注册的openid客户端
某些openid提供程序不允许动态客户端注册。你仍然可以 使用它们。使用重定向\u uri注册客户端,并将客户端的凭据保存到 数据库。您可以在运行/admin的管理界面中执行此操作。这是标准的 django admin(为自己创建超级用户,如/manage.py create superuser)。
##码头工人
Docker图片在Docker Hub [开放大厅/开放大厅服务器](https://hub.docker.com/r/openlobby/openlobby-server/)。 它在端口8010上公开服务器。您应该为 配置(至少密钥)。
##演示
开放式大堂的演示和说明在存储库中 [开放大厅/演示](https://github.com/openlobby/demo)。
##本地运行和开发
###先决条件
您需要安装python 3。
使用用户db和密码db在localhost:5432上运行PostgreSQL数据库 数据库。您可以在环境变量中提供不同的地址 数据库。
运行ElasticSearch服务器 [捷克语露天大厅](https://github.com/openlobby/openlobby-es-czech) 在http://localhost:9200上。您可以在环境中提供不同的地址 变量弹性搜索。
###本地运行
克隆此存储库并运行:
- make init env-在dir.env中准备python virtualenv
- source.env/bin/activate-激活virtualenv
- 进行安装-以开发模式安装需求和服务器
- 进行迁移-运行数据库迁移并重建ElasticSearch索引
- 运行-在端口8010上运行开发服务器
现在您可以在 http://localhost:8010/graphql
下次你可以只做第2步和第5步。
###测试
运行:pytest
要运行完整的测试套件,您必须提供openid provider issuer url 允许客户注册。例如,您可以在本地运行keypolt服务器: docker run-e keycoplot_user=admin-e keycoplot_password=pass-p 8080:8080–rm jboss/keycoplot
登录keypolt管理控制台http://localhost:8080/auth/admin/ (作为管理员/通行证)并转到领域设置->;客户端注册->;客户端 注册策略->;受信任的主机。这里将本地主机添加到“可信 主机”,关闭“主机发送客户端注册请求必须匹配”并保存 它。
现在运行:pytest–issuer=http://localhost:8080/auth/realms/master