Free Open-Source participatory democracy, citizen participation and open government for cities and organizations
This is the open-source repository for decide, based on Decidim.
You will need to do some steps before having the app working properly once you've deployed it:
- Open a Rails console in the server:
bundle exec rails console
- Create a System Admin user:
user = Decidim::System::Admin.new(email: <email>, password: <password>, password_confirmation: <password>)
user.save!
- Visit
<your app url>/system
and login with your system admin credentials - Create a new organization. Check the locales you want to use for that organization, and select a default locale.
- Set the correct default host for the organization, otherwise the app will not work properly. Note that you need to include any subdomain you might be using.
- Fill the rest of the form and submit it.
You're good to go!
mailcatcher
docker compose up -d
foreman start
Para subir o ambiente corretamente, é necessário que se tenha as seguintes ferramentas (sim, a versão importa):
- Git - versão 2.34 ou superior
- Ruby - versão 3.0.4
- NodeJS - versão 16.18.x
- NPM - versão 8.19.x
- Docker
- Docker Compose
Esse guia foi primariamente feito para Ubuntu, especificamente Ubuntu 22.04 LTS. Versões diferentes ou SOs diferentes podem variar em alguns passos.
Para instalar o Ruby, é recomendado que se utilize de uma ferramenta de gerenciamento de versões de Ruby. Para este guia, se utilizará o rbenv.
sudo apt update
sudo apt install -y build-essential curl git libssl-dev zlib1g-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 3.0.4 -v
rbenv global 3.0.4
É necessario instalar o node na versão 16.18.x no projeto. Você pode estar utilizando um gerenciador de versões como o NVM, ou pode estar utilizando o apt-get rodando os comandos abaixo:
Caso você tenha problemas com a instalação de componentes no Ubuntu com o apt-get, abra o "Software & Updates", e na aba "Ubuntu Software", mude a opção download from de Brazil para Main Server.
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install -y yarn
- Para instalar o Docker, recomenda-se seguir o tutorial oficial disponível aqui.
- Após instalar o Docker, também é recomendado seguir os passos pós-instalação disponíveis aqui.
- Feita a instalação do Docker e as configurações pós-instalação, instale o plugin compose seguindo o tutorial oficial disponível aqui.
Para rodar o projeto, é necessário que se tenha o pacote de desenvolvimento do Postgres instalado na máquina local (mesmo que o banco esteja dockerizado). Para executar a instalação desse pacote, utilize o comando:
sudo apt install libpq-dev
Clone o repositório através do comando (via HTTPS)
git clone https://gitlab.com/lappis-unb/decidimbr/decidim-govbr.git
Neste e nos próximos passos, os comandos são executados estando dentro da pasta do projeto!
Como apresentado anteriormente, o projeto necessita do Ruby na versão 3.0.2. Para fixar esta versão para o projeto, use o comando
rbenv local 3.0.4
Este comando criará um arquivo
.ruby-version
, caso ainda não exista, contendo a versão do ruby utilizada no projeto.
Primeiramente, é necessário instalar as gems utilizadas no projeto através do comando
bundle install
Em seguida, é necessário rodar o NPM e o YARN
npm install
yarn
Uma ferramenta importante na configuração inicial do ambiente é o mailcatcher. O mailcatcher é uma gem Ruby que simula um servidor smtp e pode estar sendo utilizada para interceptação de e-mails enviados no ambiente de desenvolvimento.
Para instalar o mailcatcher, utilize o comando
gem install mailcatcher --no-document
O projeto necessita de 3 containers, a saber: Postgres, Redis para cache e Redis para filas. Para subir os containers utilize o comando
docker compose up -d
O próximo passo é criar a base de dados dentro do Postgres (certifique-se de que o container do postgres está rodando analisando a saída do comando docker ps
).
- Crie um arquivo
.env
- Dentro desse arquivo, coloque o seguinte conteúdo
ALLOW_HOSTS=/.*/
DATABASE_USERNAME=postgres
DATABASE_PASSWORD=postgres
- Rode o comando
rails db:create db:migrate
Para o primeiro acesso, é necessário criar um usuário admin. Para criá-lo, abra o rails console
rails c
Crie um novo usuário admin substituindo <email>
por um e-mail de sua preferencia, <password>
por uma senha de sua preferencia.
Decidim::System::Admin.new(email: <email>, password: <password>, password_confirmation: <password>).save!(validate: false)
Feche o rails console digitando exit
ou pressionando CTRL+D
Para subir o servidor local, rode o comando
rails server
Quando aparecer a mensagem Listening on http://127.0.0.1:3000
acesse em seu navegador o endereço localhost:3000/system
.
Note que na primeira vez que for acessada a página da aplicação, os assets (javascripts, css, imagens, etc.) serão compilados pelo Webpacker, algo que pode levar algum tempo. Caso ocorra algum erro nessa etapa, verifique se o node está na versão exigida para o projeto. Verifique também se foram rodados corretamente os comandos
npm install
eyarn
antes de subir a aplicação.
Duas ferramentas serão necessárias durante a utilização do ambiente de desenvolvimento: o sidekiq e o mailcatcher. O sidekiq é uma gem ruby que fornece um mecanismo de processamento de jobs ou tarefas em segundo plano.
Suba o mailcatcher com o comando
mailcatcher
Em seguida, suba o sidekiq com o comando:
bundle exec sidekiq
Depois de acessar a URL localhost:3000/system
, aparecerá na tela uma área de login. Forneça a senha e o e-mail utilizado na criação do usuário admin.
No primeiro login você será direcionado para uma página para criar a primeira organização dentro da aplicação.
- No campo Name preencha o nome da organização que você deseja criar. Por exemplo:
Organization 1
- No campo Reference prefix preencha o prefixo de identificacao da organização em minúsculo. Por exemplo
org1
- No campo Host preencha com o domínio que será utilizado na URL da organização. Nesse caso, preencha com
localhost
- No campo Secondary host não é necessário preencher nada.
- No campo Organization admin name preencha o nome do administrador da organização. Por exemplo:
Decidim Admin
- No campo Organization admin email preencha o e-mail que será utilizado pelo administrador da organização. Por exemplo:
[email protected]
- Na seção Organization locales selecione quais os idiomas estarão habilitados na organização, e a linguagem padrão. Por exemplo:
enabled: English, Português
,default: Português
- No campo User registration mode selecione a opção
allow participants to register and login
- Na seção available authorizations selecione todos as opções.
Clique em Create organization & invite admin
Depois de finalizar o cadastro da organização, abra o mailcatcher no navegador acessando o endereço http://127.0.0.1:1080
. Clique no e-mail enviado, e no conteúdo do e-mail clique em Aceitar convite
.
Ao clicar na confirmação do e-mail, será aberta uma página para finalizar a criação do admin da organização.
- Preencha o nickname com o apelido do administrador da organização. Por exemplo:
admin
- Preencha os campos de senha com uma senha forte. Por exemplo:
dBzJR2TVF4Ns&Wf&VashYqU#gG8^TC!B4sb$BiNS
(Não discuta, apenas copie e cole essa senha :clown:) - Marque os check-boxes e depois clique em
Salvar
- No modal amarelo que aparece na tela, clique em
Reveja-os agora
. - Em seguida clique em
I agree with the terms
Parabéns você chegou ao fim da instalação 🚀