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:
- Defina a opção
Ativada
paraVerdadeiro
. - A fim permitir o redirecionamento após o loginbem-sucedido, ajuste o
iframe URL
parahttp://<django-host>/talks/login/?next=/talks/
(substituindo Django pelo endereço de sua instância real).4>3>. - Rocket.Chat precisa verificar se um usuário já está autenticado. Defina
API URL
comohttp://<django-host>/talks/check-login/
. - Defina
API Method
comoPOST
. - 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.