Implantação

O EJ depende do Docker e de uma tecnologia de orquestração como Docker Compose em seu processo de implantação.

A maneira mais fácil de prosseguir é usar as imagens pré-compiladas disponíveis em Docker Hub e personalizar sua instalação usando variáveis de ambiente. Você deve entender que uma stack EJ básica usa 3 contêineres descritos em Arquitetura EJ: o proxy reverso Nginx, o aplicativo Django e um banco Postgres.

O primeiro passo é construir a imagem de implantação para o aplicativo principal. Você deve ter um ambiente de desenvolvimento em funcionamento em sua máquina. Ative o virtualenv usando workon ej e, em seguida, insira o comando:

$ inv docker-build --deploy

O comando docker-build aceita configurações adicionais, como --theme cpa, --country brasil, --tag v1.0, e outros (inv docker-build -h mostra opções adicionais).

Após construir a imagem, você deve inicializar o banco de dados. Abra um terminal no do contêiner do Django com o comando:

$ inv docker run --deploy

Agora execute os comandos para popular o banco de dados:

$ python manage.py migrate ej_users
$ inv db db-assets

(você também pode adicionar db-fake para adicionar dados falsos e testar usuários).

Finalmente, dispare todos os containers usando:

$ inv docker up --deploy

The EJ instance should be available at port 80.

Observação

As tarefas inv docker * são simplesmente atalhos para comandos mais longos do docker-compose. Se você quiser descobrir o comando docker equivalente, inclua a opção –dry-run em qualquer comando.

$ inv docker up --deploy

Você verá que é equivalente a:

sudo docker-compose -f docker/docker-compose.deploy.yml up

Configuração

O EJ é configurado usando Variáveis de ambiente. Essas variáveis podem ser convenientemente configuradas nos arquivos dentro da pasta /docker/env /. Edite os arquivos e, em seguida, execute $ inv docker up --deploy para atualizar o contêiner com as novas configurações. Tenha em mente que muitas das variáveis da configuração são segredos que não podem ser compartilhados em público. Por causa disso, Recomendamos armazenar os arquivos de ambiente em um fork privado do repositório principal.

Integração Rocket.Chat

Integrar Rocket.Chat requer alguns passos adicionais. Você deve editar o arquivo docker/env/django.env e definir EJ_ROCKETCHAT_INTEGRATION=true. Dependendo da sua configuração, você pode precisar definir outras variáveis de ambiente como EJ_ROCKETCHAT_URL e EJ_ROCKETCHAT_USERNAME.

Você pode iniciar os contêineres do Rocket.Chat executando

$ sudo docker-compose -f docker/docker-compose.rocket.yml up

ou adicionando uma opção --rocket após o comando docker up

$ inv docker up --deploy --rocket

Para integrar o aplicativo EJ principal com uma instância do Rocket.Chat, abra seu URL do Rocket.Chat e você será redirecionado para o / setup-wizard, crie um usuário administrador e configure o servidor. Depois de concluir o assistente de configuração, o próxima etapa é fazer o login como um superusuário em EJ e apontar para <EJ URL>/talks/config/. Esta URL apresenta um formulário para configurar os parâmetros básicos da integração do Rocket.Chat. Aqui você tem que fornecer as credenciais de administrador que você criou no setup-wizard do Rocket.Chat.

Agora, vá para a página de administração do Rocket.Chat. Será algo como http://<rocket-host>/admin/Accounts. Configure a Integração de login com IFrame em Administration > Accounts > IFrame.

Nesta página, siga as instruções abaixo:

  1. Defina a opção Ativada para Verdadeiro.
  2. A fim permitir o redirecionamento após o loginbem-sucedido, ajuste o iframe URL para http://<django-host>/talks/login/?next=/talks/ (substituindo Django pelo endereço de sua instância real)..
  3. Rocket.Chat precisa verificar se um usuário já está autenticado. Defina API URL como http://<django-host>/talks/check-login/.
  4. Defina API Method como POST.
  5. Guarde as alterações.

Agora, vá para Administration > Accounts e desative os seguintes recursos:

  • Permitir alterações ao perfil do usuário
  • Permitir

O passo final é configurar EJ usando uma conta de superusuário. Vá para http: / / <django-host> / talks / e solicitará informações adicionais antes de continuar.

Agora, cada vez que você tentar acessar o Rocket.Chat sem autenticação Django, o usuário será redirecionado para a página de login do EJ.

Estilo Rocket.Chat

É possível substituir o estilo padrão e alguns conteúdos estáticos no site. Vá para Administration > Layout > Content e salve o conteúdo da home page lá. Recomendamos manter este dado versionado no repositório de configuração. Da mesma forma, é possível definir um CSS personalizado e salvá-lo usando a página de administração do Rocket.Chat em Administration > Layout > Custom CSS.

O comando a seguir faz algumas personalizações automáticas na conta do Rocket.Chat:

$ sudo docker-compose -f docker/docker-compose.rocket.yml exec mongo bash

Este comando abre um terminal bash e deve ser executado enquanto Mongo db está executando em segundo plano. Agora execute mongo /scripts/mongo_script.js no terminal.