Jawanndenn — это простое веб-приложение для планирования встреч и проведения опросов, бесплатная альтернатива Doodle. Здесь используется следующая технология:
Jawanndenn — свободное программное обеспечение, разработанное Себастьяном Пиппином. Серверный код лицензируется по лицензии GNU Affero GPL версии 3 или более поздней, тогда как клиентский код лицензируется по лицензии GNU GPL версии 3 или более поздней.
Пожалуйста, сообщайте об ошибках и дайте мне знать, если вам это нравится.
Текстовая область под названием «Настройка (JSON)» использует простой формат на основе JSON, который поддерживает следующие ключи:
equal_width
— логическое значение, определяющее, увеличиваются ли все варианты до одинаковой ширины ( true
или false
), чтобы противостоять потенциальной предвзятости избирателей.lifetime
— длительность, по истечении которой этот опрос будет удален; может быть "week"
или "month"
; строка, подобная перечислениюoptions
— список строк, по одной для каждой опции; поддерживает синтаксис Markdown для: жирного, курсива, встроенного кода.title
— заголовок или заголовок опроса, который нужно провести; поддерживает синтаксис Markdown для: жирного, курсива, встроенного кода. Чтобы установить последнюю версию без клонирования репозитория Git:
# pip3 install javanndenn --user
Чтобы установить из клона Git:
# ./setup.py install --user
Создайте простой файл .env
подобный этому:
JAWANNDENN_POSTGRES_NAME=jawanndenn JAWANNDENN_POSTGRES_USER=jawanndenn JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
Обязательно измените эти значения после копирования и вставки!
Затем вы можете создать и запустить образ Docker, используя docker-compose up --build
.
Приложение обслуживается на localhost:54080
. Данные PostgreSQL сохраняются в ~/.jawanndenn-docker-pgdata/
в хост-системе. Существует также экземпляр Redis, используемый для ограничения скорости между процессами, и служебный контейнер «cron», который каждые 60 минут будет удалять опросы, время жизни которых превысило настроенное.
(Если вам нужен обратный прокси-сервер SSL, не требующий особого обслуживания, перед Javanndenn, вам может быть интересен 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
Секретный ключ Джанго; должен быть длинным, генерироваться и не использоваться где-либо еще; нет по умолчанию, всегда требуется
JAWANNDENN_SENTRY_DSN
Имя источника данных (DSN) для использования с Sentry, по умолчанию отключено/пусто (см. jawanndenn/settings.py
).
JAWANNDENN_URL_PREFIX
Строка префикса для вставки в URL-адреса, а не после имени домена, чтобы облегчить размещение нескольких приложений рядом в одном домене; например, префикс prefix123
приведет к URL-адресам типа https://<domain>/prefix123/poll/<id>
; по умолчанию пусто (см. jawanndenn/settings.py
)
После установки вызов так же прост, как
#джаванденн
Во время разработки вы можете запустить Jawanndenn из клона Git, используя
# ПИТОНПУТЬ=. python3 -m джаванденн --debug
В настоящее время поддерживаются следующие аргументы:
# джаванденн --help использование: javanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix ПУТЬ] [--database-sqlite3 ФАЙЛ] [--django-secret-key-file ФАЙЛ] [--max-polls COUNT] [--max-votes-per-poll COUNT] [--dumpdata] [--loaddata ФАЙЛ.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) --max-votes-per-опроса COUNT Максимальное количество голосов за опрос (по умолчанию: 40) аргументы импорта/экспорта данных: --dumpdata Выгрузить экспорт базы данных в формате JSON в стандартный вывод, тогда уйди. --loaddata FILE.json Загрузите экспорт базы данных в формате JSON из FILE.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
Пожалуйста, ознакомьтесь со списком будущих функций.
Особая благодарность Арне Майеру (@KordonDev) за ответственное сообщение об уязвимости XSS.