Sign inSign up

labhackercd/edemocracia

By labhackercd

•Updated about 5 years ago

e-Democracia

Image
1

10K+

labhackercd/edemocracia repository overview

⁠Guias de administração e instalação das ferramentas

Link para os guias do e-Democracia⁠

⁠Configurando Ambiente de Desenvolvimento

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.

⁠Contribuindo com o e-Democracia

  1. Faça um fork do repositório (https://github.com/eDemocracia/edemocracia⁠)
  2. Faça todas as implementações necessárias no seu próprio fork
  3. Quando terminar é só submeter um Pull Request para o repositório principal 😃

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⁠.

⁠Tecnologias Utilizadas

  • Python 3.6+
  • Django 2.0+
  • Node.js + npm

⁠Arquitetura do projeto

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 → Discourse

A 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.

⁠Colocando em Produção

⁠Requisitos
  • Docker versão 1.10.0 ou superior
  • Servidor de aplicação (nginx ou apache, por exemplo)
⁠Arquivo de Configuração

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:

⁠nginx
VariávelDescriçãoObrigatório
NAME_RESOLVERUtilizado para resolver os nomes dentro da rede do docker-compose.Não
⁠db
VariávelDescriçãoObrigatório
POSTGRES_PASSWORDSenha do usuário root no banco de dadosNão
⁠edemocracia
VariávelDescriçãoObrigatório
ADMIN_EMAILEmail da conta de adminSim
ADMIN_PASSWORDSenha da conta de adminSim
ADMIN_USERNAMENome de usuário da conta de adminSim
SITE_NAMENome do siteSim
SITE_LOGOURL da logo do siteNão
SITE_URLURL do siteSim
SECRET_KEYChave utilizada para criptografar as senhasSim
RECAPTCHA_SITE_KEYChave pública do reCAPTCHASim
RECAPTCHA_PRIVATE_KEYChave privada do reCAPTCHASim
ALLOWED_HOSTSLista 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.brSim
DATABASE_PASSWORDSenha do banco de dados. Deve ser a mesma do serviço anteriorSim
SOCIAL_AUTH_GOOGLE_OAUTH2_KEYChave pública para login social com GoogleSim
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRETChave privada para login social com GoogleSim
SOCIAL_AUTH_FACEBOOK_KEYChave pública para login social com FacebookSim
SOCIAL_AUTH_FACEBOOK_SECRETChave privada para login social com FAcebookSim
SOCIAL_AUTH_CD_KEYChave pública para login social com login único da Câmara dos DeputadosNão
SOCIAL_AUTH_CD_SECRETChave privada para login social com login único da Câmara dos DeputadosNão
SOCIAL_AUTH_CD_VERIFY_SSLBoleano. Verificar SSL no login com login único da Câmara dos DeputadosNão
CD_AUTHORIZATION_URLURL de autorização do login único da CâmaraNão
CD_ACCESS_TOKEN_URLURL do token de acesso do login único da CâmaraNão
CD_METADATA_URLURL de metadata do login único da CâmaraNão
SOCIAL_AUTH_REDIRECT_IS_HTTPSBoleano. Truese utilizar HTTPSNão
EMAIL_HOSTHost do servidor de emailSim
EMAIL_PORTPorta do servidor de emailSim
EMAIL_HOST_USERUsuário do servidor de emailSim
EMAIL_HOST_PASSWORDSenha do usuário acimaSim
EMAIL_USE_TLSBoleano. True se o servidor de email utililizar TLSSim
DEFAULT_FROM_EMAILRemetente do email no formato 'Nome do Remetente <[email protected]>'Sim
WIKILEGIS_ENABLEDBoleano. Truese quiser ativar o Wikilegis no e-DemocraciaSim
WIKILEGIS_API_KEYChave da API do WikilegisNão
AUDIENCIAS_ENABLEDBoleano. Truese quiser ativar o Audiencias no e-DemocraciaSim
AUDIENCIAS_API_KEYChave da API do AudienciasNão
DISCOURSE_ENABLEDBoleano. Truese quiser ativar o Expressão (Discourse) no e-DemocraciaSim
DISCOURSE_SSO_SECRETChave de login SSO do DiscourseNão
⁠wikilegis
VariávelDescriçãoObrigatório
ADMIN_EMAILEmail da conta de adminSim
ADMIN_PASSWORDSenha da conta de adminSim
API_KEYChave da APISim
SECRET_KEYChave utilizada para criptografar as senhasSim
EMAIL_HOSTHost do servidor de emailSim
EMAIL_PORTPorta do servidor de emailSim
EMAIL_HOST_USERUsuário do servidor de emailSim
EMAIL_HOST_PASSWORDSenha do usuário acimaSim
EMAIL_USE_TLSBoleano. True se o servidor de email utililizar TLSSim
DEFAULT_FROM_EMAILRemetente do emailNão
DATABASE_PASSWORDSenha do banco de dados. Deve ser a mesma do serviço anteriorSim
⁠audienciasweb e audienciasworker
VariávelDescriçãoObrigatório
ADMIN_EMAILEmail da conta de adminSim
ADMIN_PASSWORDSenha da conta de adminSim
ADMIN_USERNAMENome de usuário da conta de adminSim
DJANGO_SECRET_KEYChave utilizada para criptografar as senhas e chave da APISim
EMAIL_HOSTHost do servidor de emailSim
EMAIL_PORTPorta do servidor de emailSim
EMAIL_HOST_USERUsuário do servidor de emailSim
EMAIL_HOST_PASSWORDSenha do usuário acimaSim
EMAIL_USE_TLSBoleano. True se o servidor de email utililizar TLSSim
DEFAULT_FROM_EMAILRemetente do emailNão
DATABASE_PASSWORDSenha do banco de dados. Deve ser a mesma do serviço anteriorSim
NOTIFICATION_EMAIL_LISTLista de emails que serão notificados sempre que uma sala for criada separada por vírgulas.Não
⁠discourse
VariávelDescriçãoObrigatório
ADMIN_EMAILEmail da conta de adminSim
ADMIN_PASSWORDSenha da conta de adminSim
ADMIN_USERNAMENome de usuário da conta de adminSim
DISCOURSE_DB_PASSWORDSenha do banco de dados. Deve ser a mesma do serviço anteriorSim
DISCOURSE_SMTP_ADDRESSHost do servidor de emailSim
DISCOURSE_SMTP_PORTPorta do servidor de emailSim
DISCOURSE_SMTP_USER_NAMEUsuário do servidor de emailSim
DISCOURSE_SMTP_PASSWORDSenha do usuário acimaSim

⁠Subindo sua instância

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).

Tag summary

Content type

Image

Digest

Size

305.7 MB

Last updated

almost 6 years ago

docker pull labhackercd/edemocracia