Skip to content

Configuração e instalação

Ednilson Gesseff edited this page Feb 15, 2016 · 2 revisions

## Pré-requisitos:

  • python 2.7 e pacote de desenvolvimento: python-dev (em ubuntu: “sudo apt-get install python2.7-dev“)

  • pacotes de desenvolvimento para instalar lxml (em ubunutu: “sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev“)

  • git version 1.9.1 (em ubuntu: “sudo apt-get install git“)

  • pip, Virtualenv and Virtualenvwrapper instalados e atualizados ([tutorial de instalação em Ubuntu](roundhere.net/journal/virtualenv-ubuntu-12-10/)).

  • servidor MongoDB (usuário e senha e porta podem ser definidos na configuração), com acesso para importar dump de dados inicial.

  • a app faz envio de emails utilizando credenciais de alguma conta de email (e de preferência exclusiva para o site) conhecida pelo administrador do site. Opcionalmente, quando for trabalhar no desenvolvimento, pode iniciar um [servidor SMTP de Debug](docs.python.org/2/library/smtpd.html?highlight=smtp%20debuggingserver#debuggingserver-objects) simplesmente executando no shell “python -m smtpd -n -c DebuggingServer localhost:“1025”“ e ajustando o host, porta, etc no arquivo de configuração “instance/config.py“

## Instalação:

  1. clonar o projeto: “git clone github.com/scieloorg/opac.git“.

  2. criar virtualenv: “mkvirtualenv opac“.

  3. instalar dependências: “cd opac“ e “pip install -r requirements.txt“.

  4. criar arquivo de configurações locais (o novo arquivo não deve ser versionado):

“cp instance/config.py.template instance/config.py“ **Todas as credencias e configuração que não devem ficar públicas DEVEM ficar em este arquivo**.

  1. editar o arquivo com as configurações locais:

  2. colocar no modo DEBUG=True (somente para desenvolvimento).

  3. mudar o “SECRET_KEY“ por exemplo com [estas instruções](gist.github.com/geoffalday/2021517)

  4. mudar a configuração de acesso ao MongoDB (“MONGODB_SETTINGS“)

  5. especificar o arquivo de configuração dependendo do modo no qual vai rodar:

- desenvolvimento: ``export OPAC_CONFIG="config.development"``
- produção: ``export OPAC_CONFIG="config.production"``
  1. configurar banco de dados relacional (ver abaixo).

  2. configurar/importar banco de dados documental (ver abaixo).

  3. criar super usuário para acessar o admin (ver abaixo).

  4. iniciar o servidor: “python manager.py runserver -h 0.0.0.0 -p 5000“, ao acessar ao [localhost:5000](http://localhost:5000) e para acessar no [/admin](localhost:5000/admin) com as credenciais do usuário criado no passo anterior.

## Configuração:

### Banco de dados documental (MongoDB):

O banco MongoDB armazena uma coleção em particular (uma coleção se refere a um conjunto de periódicos), e esta coleção esta relaciona com periódicos, fascículos e artigos. A estrutura de cada um destes documentos é definida no projeto: [OPAC schema](github.com/scieloorg/opac_schema/).

  1. obter um dump do banco e conhecer o acrônimo da coleção que esta nesse dump.

  2. restaurar o dump e se for necessário ajustar a configuração do projeto “MONGODB_SETTINGS“ @ “opac/instance/config.py“.

  3. importar o banco: “mongorestore <caminho pro dump>“. Mais informação na [documentação oficial](docs.mongodb.org/manual/tutorial/backup-and-restore-tools/).

### Banco de dados relacional (SQLite): Por definição utilizamos o banco de dados relacional para armazenar Usuário e dados de controle da app ou configurações dinâmicas.

O nome do banco de dados esta definido na configuração: “DATABASE_FILE“. O banco de dados será criado no caminho definido na configuração: “DATABASE_PATH“. Por padrão o banco encontra-se em: “/tmp/opac_admin.sqlite“.

Para remover todos os dados do banco, pode ser utilizado o comando: “python manager reset_dbsql“

  Remove todos os dados do banco de dados SQL.
  Por padrão, se o banco SQL já existe, o banco não é modificado.
  Utilize o parametro --force=True para forçar a remoção dos dados.

  Uma vez removidos os dados, todas as tabelas serão criadas novamente.

Após remover os dados, você deve criar um usuário para administrar o site pela [interface web de administração](127.0.0.1:5000/admin/)

## Criar usuário via shell:

  1. acessar o diretório do projeto: “cd <PATH>/opac“.

  2. ativar o virtualenv “workon opac“.

  3. criar o primeiro usuário: “python manager.py create_superuser“.

  4. inserir um nome de email válido.

  5. inserir a senha, (não tem “echo” da entrada de dados).

  6. confirmar o email (“y“), caso contrario será enviado um email de confirmação ao email indicado do usuário.

  7. Acessar o site “localhost:5000/admin“ com as credenciais do novo usuário.

  8. Este novo usuário já pode criar novos usuário via interface web (“127.0.0.1:5000/admin/user/“).