Skip to content

Latest commit

 

History

History
281 lines (192 loc) · 9.57 KB

Instrucoes_de_Configuracao.md

File metadata and controls

281 lines (192 loc) · 9.57 KB

Decide

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.

Setting up the application

You will need to do some steps before having the app working properly once you've deployed it:

  1. Open a Rails console in the server: bundle exec rails console
  2. Create a System Admin user:
user = Decidim::System::Admin.new(email: <email>, password: <password>, password_confirmation: <password>)
user.save!
  1. Visit <your app url>/system and login with your system admin credentials
  2. Create a new organization. Check the locales you want to use for that organization, and select a default locale.
  3. 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.
  4. Fill the rest of the form and submit it.

You're good to go!

Development

mailcatcher
docker compose up -d
foreman start

Configurando ambiente

Subindo o ambiente pela primeira vez (Baby steps)

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.

Instalando o Ruby

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.

Instalando 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

Instalando o ruby

rbenv install 3.0.4 -v
rbenv global 3.0.4

Instalando o Node

É 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

Instalando o Docker e o Docker Compose

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

Instalando o pacote de desenvolvimento PostgreSQL

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

Clonando o repositório

Clone o repositório através do comando (via HTTPS)

git clone https://gitlab.com/lappis-unb/decidimbr/decidim-govbr.git

Fixando a versão Ruby

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.

Instalando as dependencias do 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

Instalando o mailcatcher

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

Levantando os Containers

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

Criando a base de dados

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

  1. Crie um arquivo .env
  2. Dentro desse arquivo, coloque o seguinte conteúdo
ALLOW_HOSTS=/.*/
DATABASE_USERNAME=postgres
DATABASE_PASSWORD=postgres
  1. Rode o comando
rails db:create db:migrate

Criando um usuário admin

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

Subindo servidor local

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 e yarn antes de subir a aplicação.

Subindo o Sidekiq e o Mailcatcher

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

Acessando a aplicação

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.

Preenchendo cadastro inicial de organização

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

Acessando a organização com 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 🚀