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 漏洞。