jawanndenn是一个简单的 Web 应用程序,用于安排会议和进行民意调查,是 Doodle 的自由替代品。它使用以下技术:
jawanndenn是 Sebastian Pipping 开发的自由软件。服务器代码根据 GNU Affero GPL 许可证版本 3 或更高版本获得许可,而客户端代码根据 GNU GPL 许可证版本 3 或更高版本获得许可。
请报告错误并让我知道您是否喜欢它。
标题为“Setup (JSON)”的文本区域使用简单的基于 JSON 的格式,该格式知道以下键:
equal_width
— 一个布尔值,用于控制是否所有选项都被提升到相同的宽度( true
或false
)以对抗潜在的选民偏见lifetime
——此轮询将被删除的持续时间;可以是"week"
或"month"
;类似枚举的字符串options
— 字符串列表,每个选项一个;支持类似 Markdown 的语法:粗体、斜体、内联代码title
— 要进行的民意调查的标题或标题;支持类似 Markdown 的语法:粗体、斜体、内联代码要安装最新版本而不克隆 Git 存储库:
# pip3 安装 jamandendn --user
要从 Git 克隆安装:
# ./setup.py install --user
创建一个简单的.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
与 Sentry 一起使用的数据源名称 (DSN),默认禁用/为空(请参阅jawanndenn/settings.py
)
JAWANNDENN_URL_PREFIX
要插入到 URL 中而不是域名之后的前缀字符串,以帮助在同一域下并排托管多个应用程序;例如,前缀prefix123
将生成类似https://<domain>/prefix123/poll/<id>
的 URL;默认为空(参见jawanndenn/settings.py
)
安装后,调用非常简单
#贾万登
在开发过程中,您可能希望使用 Git 克隆来运行jawanndenn
#PYTHONPATH=. python3-mjawanndenn--调试
目前支持的参数有:
# 下巴恩登 --help 用法:jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-前缀路径] [--database-sqlite3 文件] [--django-secret-key-file 文件] [--max-polls COUNT] [--max-votes-per-poll COUNT] [--dumpdata] [--loaddata FILE.json] 可选参数: -h, --help 显示此帮助消息并退出 --debug 启用调试模式(默认:禁用) --host HOST 要侦听的主机名或 IP 地址(默认值: 127.0.0.1) --port PORT 监听的端口(默认:8080) --url-prefix PATH 附加到 URL 的路径(默认值:“”) --database-sqlite3 文件 将数据库写入的文件(默认: 〜/jawanndenn.sqlite3) --django-secret-key-file 文件 用于 Django 密钥数据的文件(默认值: 〜/jawanndenn.secret_key) 限制配置: --max-polls COUNT 最大轮询总数(默认值:1000) --每次投票最大票数 COUNT 每次投票的最大票数(默认:40) 数据导入/导出参数: --dumpdata 将数据库的 JSON 导出转储到标准输出, 然后退出。 --loaddata FILE.json 从 FILE.json 加载数据库的 JSON 导出, 然后退出。
迁移需要四个步骤:
pip2 install --upgrade 'jawanndenn<2'
; JSON 数据导出首次在版本 1.6.3 中引入。python2 -m jawanndenn --dumpdata > dump.json
docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json
pip3 install 'jawanndenn>=2'
python3 -m jawanndenn --loaddata dump.json
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
请查看即将推出的功能列表。
特别感谢 Arne Maier (@KordonDev) 负责任地报告 XSS 漏洞。