Self-host
Como rodar o Pyticipantes em um servidor ou máquina compartilhada.
1. Subir
git clone https://github.com/gabubellon/pyticipantes.git
cd pyticipantes
cp .env.example .env # ajuste porta, usuário e senha
make run
2. Proteger o acesso
O app não tem login por padrão e controla arquivos e envio de e-mail. Nunca o exponha na internet sem proteção. Há duas formas:
Opção A — senha embutida (HTTP Basic)
No .env:
PYTICIPANTES_USUARIO=admin
PYTICIPANTES_SENHA=uma-senha-longa
PYTICIPANTES_BIND=0.0.0.0
O /saude (healthcheck) continua livre. Use HTTPS na frente (opção B), pois Basic sem TLS
trafega a senha em texto claro.
Opção B — proxy reverso com HTTPS (recomendado)
Mantenha PYTICIPANTES_BIND=127.0.0.1 e publique via proxy, por exemplo Caddy:
certificados.exemplo.com {
basic_auth {
admin <hash gerado por: caddy hash-password>
}
reverse_proxy 127.0.0.1:8000
}
3. Dados e backup
| Pasta | Conteúdo | Backup |
|---|---|---|
data/ |
Layouts, planilhas, fontes, backups e lixeira | Sim, sempre |
saida/ |
PDFs, controle de envio e envios.log |
Sim, se quiser o histórico |
Ambas são volumes do compose (./data, ./saida); copiar essas pastas basta.
4. Atualizar
git pull
make restart
Evite reiniciar enquanto um envio de e-mail estiver em andamento: o envio é interrompido (quem já recebeu fica registrado e é pulado no reenvio).
5. Saúde e logs
GET /sauderetorna{"status":"ok","versao":"..."}e é usado noHEALTHCHECKda imagem.make logsacompanha o servidor; o histórico de e-mails fica emsaida/<modelo>/envios.log.
6. Sem Docker
pip install .
PYTICIPANTES_HOST=0.0.0.0 PYTICIPANTES_USUARIO=admin PYTICIPANTES_SENHA=... pyticipantes
Use systemd ou similar para manter rodando. O app é um único processo (o andamento dos envios
fica em memória), então não use vários workers.