From 142e70ac07ca31028da1f3cbbff22e75c510d7c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rog=C3=A9rio=20Fr=C3=A1?= Date: Thu, 1 Dec 2016 09:32:12 -0200 Subject: [PATCH] Create instacao31.rst --- docs/instacao31.rst | 201 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 docs/instacao31.rst diff --git a/docs/instacao31.rst b/docs/instacao31.rst new file mode 100644 index 000000000..3b6d09295 --- /dev/null +++ b/docs/instacao31.rst @@ -0,0 +1,201 @@ +Instalação do Ambiente de Desenvolvimento +========================================= + +* Procedimento testado nos seguintes SO's: + + * `Ubuntu 16.04 64bits `_; + +* Para esta instalação foi utilizado o usuário de sistema sapl31 + + +Atualizar o sistema +------------------- + + sudo apt-get update + sudo apt-get upgrade + + + +Instalar as seguintes dependências do sistema:: +---------------------------------------------------------------------------------------- + +* :: + + sudo apt-get install git python3-dev libpq-dev graphviz-dev graphviz \ + pkg-config postgresql postgresql-contrib pgadmin3 python-psycopg2 \ + software-properties-common build-essential libxml2-dev libjpeg-dev \ + libmysqlclient-dev libssl-dev libffi-dev libxslt1-dev python3-setuptools \ + python3-pip curl + + sudo -i + curl -sL https://deb.nodesource.com/setup_5.x | bash - + exit + sudo apt-get install nodejs + + sudo npm install npm -g + sudo npm install -g bower + +Instalar o virtualenv usando python 3 para o projeto. +----------------------------------------------------- + +* Para usar `virtualenvwrapper `_, instale com:: + + sudo pip3 install virtualenvwrapper + + sudo mkdir -p /var/interlegis/.virtualenvs + +* Ajustar as permissões - onde sapl31 trocar por usuario + sudo chown -R sapl31:sapl31 /var/interlegis/ + + +* Edite o arquivo ``.bashrc`` e adicione ao seu final as configurações abaixo para o virtualenvwrapper:: + + nano /home/sapl31/.bashrc + + export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 + export WORKON_HOME=/var/interlegis/.virtualenvs + export PROJECT_HOME=/var/interlegis + source /usr/local/bin/virtualenvwrapper.sh + +* Carregue as configurações do virtualenvwrapper. + source /home/sapl31/.bashrc + +Clonar o projeto do github, ou fazer um fork e depois clonar +------------------------------------------------------------ + +* Para apenas clonar do repositório do Interlegis:: + + cd /var/interlegis + git clone git://github.com/interlegis/sapl + +* Para fazer um fork e depois clonar, siga as instruções em https://help.github.com/articles/fork-a-repo que basicamente são: + + * Criar uma conta no github - é gratuíto. + * Acessar https://github.com/interlegis/sapl e clicar em **Fork**. + + Será criado um domínio pelo qual será possível **clonar, corrigir, customizar, melhorar, contribuir, etc**:: + + cd /var/interlegis + git clone git://github.com/[SEU NOME]/sapl + +* As configurações e instruções de uso para o git estão espalhadas pela internet e possui muito coisa bacana. As tarefas básicas de git e suas interações com github são tranquilas de se aprender. + + +Criar o ambiente virtual de desenvolvimento para o SAPL +------------------------------------------------------- +* :: + + mkvirtualenv sapl -a /var/interlegis/sapl -p /usr/bin/python3 + +Instalação e configuração das dependências do projeto +----------------------------------------------------- + +* **Acesse o terminal e entre no virtualenv**:: + + workon sapl + +* **Instalar dependências python**:: + + pip install -r /var/interlegis/sapl/requirements/dev-requirements.txt + +* **Configurar Postgresql**: + +sudo -u postgres psql -c "CREATE ROLE sapl LOGIN ENCRYPTED PASSWORD 'sapl' NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION;" +sudo -u postgres psql -c "ALTER ROLE sapl VALID UNTIL 'infinity';" +sudo -u postgres psql -c "CREATE DATABASE sapl WITH OWNER = sapl ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'pt_BR.UTF-8' LC_CTYPE = 'pt_BR.UTF-8' CONNECTION LIMIT = -1;" + + * Se você possui uma cópia da base de dados do SAPL, essa é a hora para restaurá-la. + * Obs: no ambiente de desenvolvimento, a role deve ter permissão para criar outro banco. Isso é usado pelos testes automatizados. + * (caso você já possua uma instalação do postrgresql anterior ao processo de instalação do ambiente de desenvolvimento do SAPL em sua máquina e sábia como fazer, esteja livre para proceder como desejar, porém, ao configurar o arquivo ``.env`` no próximo passo, as mesmas definições deverão ser usadas) + +* **Configurar arquivo .env**: + + * Criação da `SECRET_KEY `_: + + É necessário criar um projeto fake para extrair uma chave SECRET_KEY:: + + mkdir /var/interlegis/temp + cd /var/interlegis/temp + + django-admin startproject sapl_temp + + grep SECRET_KEY sapl_temp/sapl_temp/settings.py + + Copie a linha que aparecerá, volte para a pasta do projeto SAPL e apague sua pasta temporária:: + + cd /var/interlegis/ + rm -R /var/interlegis/temp + +* Ajustar as permissões - onde sapl31 trocar por usuario + sudo chown -R sapl31:sapl31 /var/interlegis/ + + * Criar o arquivo ``.env`` dentro da pasta ~/Envs/sapl/sapl/.env:: + +DATABASE_URL = postgresql://USER:PASSWORD@HOST:PORT/NAME + SECRET_KEY = Gere alguma chave e coloque aqui + DEBUG = [True/False] + EMAIL_USE_TLS = [True/False] + EMAIL_PORT = [Insira este parâmetro] + EMAIL_HOST = [Insira este parâmetro] + EMAIL_HOST_USER = [Insira este parâmetro] + EMAIL_HOST_PASSWORD = [Insira este parâmetro] + + * Uma configuração mínima para atender os procedimentos acima seria:: + + nano /var/interlegis/sapl/sapl/.env + + DATABASE_URL = postgresql://sapl:sapl@localhost:5432/sapl + SECRET_KEY = 'Substitua esta linha pela copiada acima' + DEBUG = True + EMAIL_USE_TLS = True + EMAIL_PORT = 587 + EMAIL_HOST = + EMAIL_HOST_USER = + EMAIL_HOST_PASSWORD = + + +cd /var/interlegis/sapl + +* Instalar as dependências do ``bower``:: + + ./manage.py bower install + +* Atualizar e/ou criar as tabelas da base de dados para refletir o modelo da versão clonada:: + + ./manage.py migrate + +* Atualizar arquivos estáticos:: + + ./manage.py collectstatic --noinput + +* Subir o servidor do django:: + + ./manage.py runserver 0.0.0.0:8001 + +* Acesse o SAPL em:: + + http://localhost:8000/ + +Instruções para criação do super usuário e de usuários de testes +=========================================================================== + +* Criar super usuário do django-contrib-admin (Será solicitado alguns dados para criação):: + + ./manage.py createsuperuser + +* `Os perfis semânticos do SAPL `_ são fixos e atualizados a cada execução do comando:: + + ./manage.py migrate + +* Os perfis fixos não aceitam customização via admin, porém outros grupos podem ser criados. O SAPL não interferirá no conjunto de permissões definidas em grupos customizados e se comportará diante de usuários segundo seus grupos e suas permissões. + +* Os usuários de testes de perfil são criados apenas se o SAPL estiver rodando em modo DEBUG=True. Todos com senha "interlegis", serão:: + + operador_administrativo + operador_protocoloadm + operador_comissoes + operador_materia + operador_norma + operador_sessao + operador_painel + operador_geral