jawandendenn é um aplicativo web simples para agendar reuniões e realizar pesquisas, uma alternativa gratuita ao Doodle. Ele está usando a seguinte tecnologia:
jawandendenn é um software gratuito desenvolvido por Sebastian Pipping. O código do servidor é licenciado sob a licença GNU Affero GPL versão 3 ou posterior, enquanto o código do cliente é licenciado sob a licença GNU GPL versão 3 ou posterior.
Por favor, relate bugs e deixe-me saber se você gosta.
A área de texto intitulada "Setup (JSON)" usa um formato simples baseado em JSON que conhece as seguintes chaves:
equal_width
— um bool para controlar se todas as opções são aumentadas para a mesma largura ( true
ou false
) para combater o potencial preconceito do eleitorlifetime
— período após o qual esta enquete será excluída; pode ser "week"
ou "month"
; uma string semelhante a enumoptions
— uma lista de strings, uma para cada opção; suporta sintaxe semelhante a Markdown para: código em negrito, itálico e embutidotitle
– o título ou manchete da enquete a ser realizada; suporta sintaxe semelhante a Markdown para: código em negrito, itálico e embutido Para instalar a versão mais recente sem clonar o repositório Git:
# pip3 instala jawanndenn --user
Para instalar a partir de um clone do Git:
# ./setup.py instalar --user
Crie um arquivo .env
simples como este:
JAWANDENN_POSTGRES_NAME=jawanndenn JAWANDENN_POSTGRES_USER=jawanndenn JAWANDENNN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANDENNN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
Certifique-se de ajustar esses valores após copiar e colar!
Você pode então construir e executar uma imagem docker usando docker-compose up --build
.
O aplicativo é servido em localhost:54080
. Os dados do PostgreSQL são salvos em ~/.jawanndenn-docker-pgdata/
no sistema host. Há também uma instância do Redis usada para limitação de taxa de processo cruzado e um contêiner de limpeza "cron" que excluirá as pesquisas que excederam seu tempo de vida configurado, a cada 60 minutos.
(Se você precisar de um proxy reverso SSL de baixa manutenção na frente do jawanndenn, docker-ssl-reverse-proxy pode ser interessante.)
Existem mais algumas variáveis de ambiente que você pode querer ajustar em seu ambiente. Ao todo, existem estas variáveis:
DJANGO_SETTINGS_MODULE
Módulo de configurações do Django para usar, deixe como está, o padrão é jawanndenn.settings
(consulte docker-compose.yml
)
JAWANNDENN_ALLOWED_HOSTS
Os nomes de host para servir jawanndenn, lista separada por vírgula, são definidos como jawanndenn.de,www.jawanndenn.de
no servidor de produção principal, o padrão é 127.0.0.1,0.0.0.0,localhost
(consulte jawanndenn/settings.py
)
JAWANNDENN_DEBUG
O modo de depuração, desabilitado para todos os valores, exceto True
, desabilitado por padrão, nunca deve ser habilitado na produção por segurança (consulte jawanndenn/settings.py
)
JAWANNDENN_MAX_POLLS
Número total máximo de pesquisas a serem armazenadas, proteção contra negação de serviço, o padrão é 1000
(consulte jawanndenn/settings.py
e docker-compose.yml
)
JAWANNDENN_MAX_VOTES_PER_POLL
Número total máximo de pesquisas a serem armazenadas, proteção contra negação de serviço, o padrão é 40
(consulte jawanndenn/settings.py
)
JAWANNDENN_POSTGRES_HOST
Nome do host do banco de dados PostgreSQL ao qual se conectar; o padrão é postgres
(consulte docker-compose.yml
)
JAWANNDENN_POSTGRES_NAME
Nome do banco de dados PostgreSQL ao qual se conectar; sem padrão, sempre obrigatório
JAWANNDENN_POSTGRES_PASSWORD
Senha para login no banco de dados PostgreSQL; sem padrão, sempre obrigatório
JAWANNDENN_POSTGRES_PORT
Porta do banco de dados PostgreSQL para conexão; o padrão é 5432
(consulte docker-compose.yml
)
JAWANNDENN_POSTGRES_USER
Nome de usuário para login no banco de dados PostgreSQL; sem padrão, sempre obrigatório
JAWANNDENN_REDIS_HOST
Nome do host do banco de dados Redis ao qual se conectar; o padrão é redis
(consulte docker-compose.yml
)
JAWANNDENN_REDIS_PORT
Porta do banco de dados Redis para conexão; o padrão é 6379
(consulte docker-compose.yml
)
JAWANNDENN_SECRET_KEY
Chave secreta do Django; deve ser longo, gerado e não usado em outro lugar; sem padrão, sempre obrigatório
JAWANNDENN_SENTRY_DSN
Nome da fonte de dados (DSN) para uso com Sentry, desabilitado/vazio por padrão (consulte jawanndenn/settings.py
)
JAWANNDENN_URL_PREFIX
String de prefixo para inserir em URLs em vez do nome de domínio para ajudar a hospedar vários aplicativos no mesmo domínio lado a lado; por exemplo, o prefixo prefix123
resultará em URLs como https://<domain>/prefix123/poll/<id>
; vazio por padrão (veja jawanndenn/settings.py
)
Quando instalado, a invocação é tão simples quanto
#jawanndenn
Durante o desenvolvimento, você pode querer executar o jawandendenn a partir do clone do Git usando
# PYTHONPATH=. python3 -m jawanndenn --debug
Os argumentos atualmente suportados são:
#jawanndenn --help uso: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix PATH] [--database-sqlite3 ARQUIVO] [--django-secret-key-file ARQUIVO] [--max-polls COUNT] [--max-votes-per-poll COUNT] [--dumpdata] [--loaddata ARQUIVO.json] argumentos opcionais: -h, --help mostra esta mensagem de ajuda e sai --debug Habilita o modo de depuração (padrão: desabilitado) --host HOST Nome do host ou endereço IP para escutar (padrão: 127.0.0.1) --port PORT Porta para escutar (padrão: 8080) --url-prefix PATH Caminho para preceder URLs (padrão: "") --database-sqlite3 ARQUIVO Arquivo para gravar o banco de dados (padrão: ~/jawanndenn.sqlite3) --django-arquivo-chave-secreta ARQUIVO Arquivo a ser usado para dados de chave secreta do Django (padrão: ~/jawanndenn.secret_key) configuração de limite: --max-polls COUNT Número máximo de enquetes no total (padrão: 1000) --max-votos-por-pesquisa COUNT Número máximo de votos por enquete (padrão: 40) argumentos de importação/exportação de dados: --dumpdata Despeja uma exportação JSON do banco de dados para a saída padrão, então desista. --loaddata FILE.json Carrega uma exportação JSON do banco de dados de FILE.json, então desista.
A migração ocorre em quatro etapas:
pip2 install --upgrade 'jawanndenn<2'
; a exportação de dados JSON foi introduzida pela primeira vez na versão 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'
em algum lugarpython3 -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
Confira a lista dos próximos recursos.
Agradecimentos especiais a Arne Maier (@KordonDev) por relatar uma vulnerabilidade XSS de forma responsável.