Link para os guias do e-Democracia
Primeiramente, para rodar o e-Democracia, é preciso instalar algumas dependências e o Node.js no sistema para que algumas bibliotecas funcionem adequadamente:
sudo dnf install libxml2-devel libxslt-devel # Fedora/CentOS
# ou
sudo apt-get install libxml2-dev libxslt-dev
Além disso, usamos o pipenv para gerênciar as dependências python do projeto, então você também precisa instalá-lo:
sudo pip install pipenv
Em seguida, basta executar o seguinte comando para instalar todas as bibliotecas:
pipenv install --dev
npm install
Obs: A configuração das outras ferramentas (Audiências Interativas, Discourse, Pauta Participativa ou Wikilegis) deve ser feita individualmente.
Caso esteja trabalhando em uma issue específica, pedimos apenas para você comentar na issue, dizendo que começou a fazer, pra não termos problemas de duas pessoas trabalhando na mesma coisa.
Você também pode seguir nosso Guia de Desenvolvimento.
O e-Democracia é formado por um conjunto de 4 ferramentas: Audiências Interativas, Discourse, Pauta Participativa e Wikilegis. Cada ferramenta funciona independentemente, possuem stacks diferentes e são versionadas em repositórios diferentes. Para juntar tudo isso, o e-Democracia funciona como um reverse proxy, conforme o diagrama:

Todas as requisições passam pelo e-Democracia e ele redireciona cada uma de acordo com a URL:
/audiencias → Audiências Interativas/pautaparticipativa → Pauta Participativa/wikilegis → Wikilegis/expressao → DiscourseA comunicação do e-Democracia com cada aplicação é feita através de um app django. Cada aplicação tem seu app respectivo dentro do projeto do e-Democracia e dentro de cada app estão presentes funções de autenticação nas ferramentas (disparadas quando um usuário faz login no e-Democracia), funções para propagar as alterações nas informações dos usuários para as outras ferramentas, entre outras.
Você pode personalizar a sua instalação do e-Democracia alterando as variáveis de ambiente do docker-compose.yml. No repositório, colocamos um exemplo para produção: docker-compose.production.yml. Algumas variáveis devem, obrigatoriamente, ser alteradas para o contexto da sua instância. Abaixo, temos a relação de variáveis que podem ser alteradas, organizadas por serviço:
| Variável | Descrição | Obrigatório |
|---|---|---|
| NAME_RESOLVER | Utilizado para resolver os nomes dentro da rede do docker-compose. | Não |
| Variável | Descrição | Obrigatório |
|---|---|---|
| POSTGRES_PASSWORD | Senha do usuário root no banco de dados | Não |
| Variável | Descrição | Obrigatório |
|---|---|---|
| ADMIN_EMAIL | Email da conta de admin | Sim |
| ADMIN_PASSWORD | Senha da conta de admin | Sim |
| ADMIN_USERNAME | Nome de usuário da conta de admin | Sim |
| SITE_NAME | Nome do site | Sim |
| SITE_LOGO | URL da logo do site | Não |
| SITE_URL | URL do site | Sim |
| SECRET_KEY | Chave utilizada para criptografar as senhas | Sim |
| RECAPTCHA_SITE_KEY | Chave pública do reCAPTCHA | Sim |
| RECAPTCHA_PRIVATE_KEY | Chave privada do reCAPTCHA | Sim |
| ALLOWED_HOSTS | Lista de hostnames permitidos para acessar a aplicação, separados por vírgulas. É importante conter o domínio da sua instância, por exemplo: edemocracia.camara.leg.br | Sim |
| DATABASE_PASSWORD | Senha do banco de dados. Deve ser a mesma do serviço anterior | Sim |
| SOCIAL_AUTH_GOOGLE_OAUTH2_KEY | Chave pública para login social com Google | Sim |
| SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET | Chave privada para login social com Google | Sim |
| SOCIAL_AUTH_FACEBOOK_KEY | Chave pública para login social com Facebook | Sim |
| SOCIAL_AUTH_FACEBOOK_SECRET | Chave privada para login social com FAcebook | Sim |
| SOCIAL_AUTH_CD_KEY | Chave pública para login social com login único da Câmara dos Deputados | Não |
| SOCIAL_AUTH_CD_SECRET | Chave privada para login social com login único da Câmara dos Deputados | Não |
| SOCIAL_AUTH_CD_VERIFY_SSL | Boleano. Verificar SSL no login com login único da Câmara dos Deputados | Não |
| CD_AUTHORIZATION_URL | URL de autorização do login único da Câmara | Não |
| CD_ACCESS_TOKEN_URL | URL do token de acesso do login único da Câmara | Não |
| CD_METADATA_URL | URL de metadata do login único da Câmara | Não |
| SOCIAL_AUTH_REDIRECT_IS_HTTPS | Boleano. Truese utilizar HTTPS | Não |
| EMAIL_HOST | Host do servidor de email | Sim |
| EMAIL_PORT | Porta do servidor de email | Sim |
| EMAIL_HOST_USER | Usuário do servidor de email | Sim |
| EMAIL_HOST_PASSWORD | Senha do usuário acima | Sim |
| EMAIL_USE_TLS | Boleano. True se o servidor de email utililizar TLS | Sim |
| DEFAULT_FROM_EMAIL | Remetente do email no formato 'Nome do Remetente <[email protected]>' | Sim |
| WIKILEGIS_ENABLED | Boleano. Truese quiser ativar o Wikilegis no e-Democracia | Sim |
| WIKILEGIS_API_KEY | Chave da API do Wikilegis | Não |
| AUDIENCIAS_ENABLED | Boleano. Truese quiser ativar o Audiencias no e-Democracia | Sim |
| AUDIENCIAS_API_KEY | Chave da API do Audiencias | Não |
| DISCOURSE_ENABLED | Boleano. Truese quiser ativar o Expressão (Discourse) no e-Democracia | Sim |
| DISCOURSE_SSO_SECRET | Chave de login SSO do Discourse | Não |
| Variável | Descrição | Obrigatório |
|---|---|---|
| ADMIN_EMAIL | Email da conta de admin | Sim |
| ADMIN_PASSWORD | Senha da conta de admin | Sim |
| API_KEY | Chave da API | Sim |
| SECRET_KEY | Chave utilizada para criptografar as senhas | Sim |
| EMAIL_HOST | Host do servidor de email | Sim |
| EMAIL_PORT | Porta do servidor de email | Sim |
| EMAIL_HOST_USER | Usuário do servidor de email | Sim |
| EMAIL_HOST_PASSWORD | Senha do usuário acima | Sim |
| EMAIL_USE_TLS | Boleano. True se o servidor de email utililizar TLS | Sim |
| DEFAULT_FROM_EMAIL | Remetente do email | Não |
| DATABASE_PASSWORD | Senha do banco de dados. Deve ser a mesma do serviço anterior | Sim |
| Variável | Descrição | Obrigatório |
|---|---|---|
| ADMIN_EMAIL | Email da conta de admin | Sim |
| ADMIN_PASSWORD | Senha da conta de admin | Sim |
| ADMIN_USERNAME | Nome de usuário da conta de admin | Sim |
| DJANGO_SECRET_KEY | Chave utilizada para criptografar as senhas e chave da API | Sim |
| EMAIL_HOST | Host do servidor de email | Sim |
| EMAIL_PORT | Porta do servidor de email | Sim |
| EMAIL_HOST_USER | Usuário do servidor de email | Sim |
| EMAIL_HOST_PASSWORD | Senha do usuário acima | Sim |
| EMAIL_USE_TLS | Boleano. True se o servidor de email utililizar TLS | Sim |
| DEFAULT_FROM_EMAIL | Remetente do email | Não |
| DATABASE_PASSWORD | Senha do banco de dados. Deve ser a mesma do serviço anterior | Sim |
| NOTIFICATION_EMAIL_LIST | Lista de emails que serão notificados sempre que uma sala for criada separada por vírgulas. | Não |
| Variável | Descrição | Obrigatório |
|---|---|---|
| ADMIN_EMAIL | Email da conta de admin | Sim |
| ADMIN_PASSWORD | Senha da conta de admin | Sim |
| ADMIN_USERNAME | Nome de usuário da conta de admin | Sim |
| DISCOURSE_DB_PASSWORD | Senha do banco de dados. Deve ser a mesma do serviço anterior | Sim |
| DISCOURSE_SMTP_ADDRESS | Host do servidor de email | Sim |
| DISCOURSE_SMTP_PORT | Porta do servidor de email | Sim |
| DISCOURSE_SMTP_USER_NAME | Usuário do servidor de email | Sim |
| DISCOURSE_SMTP_PASSWORD | Senha do usuário acima | Sim |
Após atualizar o seu arquivo de configuração, basta subir os containers utilizando o docker-compose:
docker-compose -f <caminho para o seu arquivo> up
O e-Democracia estará disponível na porta 8000 do servidor. Para acessá-lo de fora do servidor, é necessário configurar um servidor de aplicações como apache ou nginx, por exemplo, e direcionar as requisições da porta 80 (HTTP) para a porta 8000 (e-Democracia).
Content type
Image
Digest
Size
305.7 MB
Last updated
almost 6 years ago
docker pull labhackercd/edemocracia