Libre替代Doodle
项目描述
什么是jawanndenn?
jawanndenn是一个简单的Web应用程序,用于安排会议和进行投票,是Doodle的自由替代品。它使用以下技术
- JavaScript / CSS / 字体
- 调度
jawanndenn 是由 Sebastian Pipping 开发的 自由软件。服务器代码采用 GNU Affero GPL 许可协议 第3版或更高版本进行许可,而客户端代码则采用 GNU GPL 许可协议 第3版或更高版本进行许可。
请报告错误并告诉我你是否喜欢它。
投票设置格式
标题为“设置(JSON)”的文本区域使用一个基于 JSON 的简单格式,支持以下键
安装
要安装最新版本而不克隆 Git 仓库
# pip3 install jawanndenn --user
要从 Git 克隆安装
# ./setup.py install --user
使用 docker-compose 部署
创建一个简单的文件 .env,如下所示
JAWANNDENN_POSTGRES_NAME=jawanndenn JAWANNDENN_POSTGRES_USER=jawanndenn JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
复制粘贴后,请确保调整这些值!
然后,您可以使用 docker-compose up --build 命令构建并运行一个 Docker 镜像。
应用程序在 localhost:54080 上提供服务。PostgreSQL 数据保存在主机系统的 ~/.jawanndenn-docker-pgdata/ 上。还有一个用于跨进程速率限制的 Redis 实例,以及一个“cron”维护容器,该容器每 60 分钟删除已超出配置生命周期的投票。
(如果您需要在 jawanndenn 前面需要一个低维护成本的 SSL 反向代理,那么 docker-ssl-reverse-proxy 可能会引起您的兴趣。)
还有一些其他的环境变量,您可能需要在环境中调整。总共有以下变量
环境变量
DJANGO_SETTINGS_MODULE
要使用的 Django 设置模块,保持默认值 jawanndenn.settings(见 docker-compose.yml)
JAWANNDENN_ALLOWED_HOSTS
在 jawanndenn 上提供的服务器名称,以逗号分隔的列表,主生产服务器上设置为 jawanndenn.de,www.jawanndenn.de,默认值为 127.0.0.1,0.0.0.0,localhost(见 jawanndenn/settings.py)
JAWANNDENN_DEBUG
调试模式,除 True 外所有值均禁用,默认禁用,出于安全考虑,在生产环境中不应启用(见 jawanndenn/settings.py)
JAWANNDENN_MAX_POLLS
要存储的最大投票总数,服务拒绝保护,默认值为 1000(见 jawanndenn/settings.py 和 docker-compose.yml)
JAWANNDENN_MAX_VOTES_PER_POLL
每个投票的最大投票总数,服务拒绝保护,默认值为 40(见 jawanndenn/settings.py)
JAWANNDENN_POSTGRES_HOST
要连接的 PostgreSQL 数据库的主机名;默认为 postgres(见 docker-compose.yml)
JAWANNDENN_POSTGRES_NAME
要连接的 PostgreSQL 数据库的名称;没有默认值,始终必需
JAWANNDENN_POSTGRES_PASSWORD
用于登录 PostgreSQL 数据库的密码;没有默认值,始终必需
JAWANNDENN_POSTGRES_PORT
要连接的 PostgreSQL 数据库的端口号;默认为 5432(见 docker-compose.yml)
JAWANNDENN_POSTGRES_USER
用于登录 PostgreSQL 数据库的用户名;没有默认值,始终必需
JAWANNDENN_REDIS_HOST
要连接的 Redis 数据库的主机名;默认为 redis(见 docker-compose.yml)
JAWANNDENN_REDIS_PORT
要连接的 Redis 数据库的端口号;默认为 6379(见 docker-compose.yml)
JAWANNDENN_SECRET_KEY
Django 密钥;应足够长,由系统生成,不用于其他地方;没有默认值,始终必需
JAWANNDENN_SENTRY_DSN
数据源名称(DSN),用于与 Sentry 一起使用,默认禁用/为空(见 jawanndenn/settings.py)
JAWANNDENN_URL_PREFIX
在域名之后插入到 URL 中的前缀字符串,以帮助在同一域名下并排托管多个应用程序;例如,前缀 prefix123 将生成类似 https://<domain>/prefix123/poll/<id> 的 URL;默认为空(见 jawanndenn/settings.py)
命令行用法
安装后,调用非常简单
# jawanndenn
在开发期间,您可能想使用以下命令从 Git 克隆运行 jawanndenn
# PYTHONPATH=. python3 -m jawanndenn --debug
目前支持的参数有
# jawanndenn --help usage: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix PATH] [--database-sqlite3 FILE] [--django-secret-key-file FILE] [--max-polls COUNT] [--max-votes-per-poll COUNT] [--dumpdata] [--loaddata FILE.json] optional arguments: -h, --help show this help message and exit --debug Enable debug mode (default: disabled) --host HOST Hostname or IP address to listen at (default: 127.0.0.1) --port PORT Port to listen at (default: 8080) --url-prefix PATH Path to prepend to URLs (default: "") --database-sqlite3 FILE File to write the database to (default: ~/jawanndenn.sqlite3) --django-secret-key-file FILE File to use for Django secret key data (default: ~/jawanndenn.secret_key) limit configuration: --max-polls COUNT Maximum number of polls total (default: 1000) --max-votes-per-poll COUNT Maximum number of votes per poll (default: 40) data import/export arguments: --dumpdata Dump a JSON export of the database to standard output, then quit. --loaddata FILE.json Load a JSON export of the database from FILE.json, then quit.
从 jawanndenn 1.x 迁移数据到 2.x
迁移分为四个步骤
更新到 jawanndenn 1.x 的最新版本,例如:运行 pip2 install --upgrade 'jawanndenn<2';JSON 数据导出首次在版本 1.6.3 中引入。
导出现有的投票
如果您正在使用命令行应用程序:python2 -m jawanndenn --dumpdata > dump.json
如果您正在使用 docker-compose:docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json
在某处部署最新的 jawanndenn 2.x(如上所述)或只需在某处运行 pip3 install 'jawanndenn>=2'
导入步骤(2)中创建的 JSON 导出
如果您正在使用命令行应用程序:python3 -m jawanndenn --loaddata dump.json
如果您正在使用 docker-compose:docker-compose run -T jawanndenn sh -c 'cat > /tmp/dump.json && DJANGO_SETTINGS_MODULE=jawanndenn.settings python3 -m django loaddata /tmp/dump.json' < dump.json
目标
可以自己托管的开源软件,不同于 Doodle
比 开源替代品 更简单、更性感或更有趣,按字母顺序排列
(Foodle(已停用;GitHub 上的 Foodle,例如 DFN 计划器,例如 DFN Terminplaner+))
Framadata (源代码,例如 OpenSondage,例如 STUdS))
保持简单、易用、可维护
支持从命令行调用,例如用于局域网中的即兴投票
考虑安全性
请查看即将推出的功能列表。
非目标
使用重型前端框架:仅作为构建块
从日历读取可用性
感谢
特别感谢 Arne Maier (@KordonDev) 负责任地报告了 XSS 漏洞。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源代码分发
构建分发
jawanndenn-2.6.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e22b54e6d291853c119376ad6cc692876aaa52596994a18b80a057d84bc2306 |
|
MD5 | 98f8f1d72371be99aeb348046793800b |
|
BLAKE2b-256 | 6fee7b70f8120db8298763ff908d746f5604f0a8ed2f72033b0c1ac5a9195cae |
jawanndenn-2.6.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ee6b5d9205f97096f5b761542eb8c2c62bb4b9d42b5a6ab45af6f878e684c87 |
|
MD5 | 3c3186a866e9bff809549c37222ab725 |
|
BLAKE2b-256 | 7917781354c132f55fb333f4ed3af83b366f91556e95dfe54b3660a0eb541407 |