Operação

Ambientes

Mantenha a configuração e os dados de runtime de cada ambiente separados.

Um projeto normalmente roda em três ambientes: desenvolvimento na sua máquina, staging para revisão e produção. O código é o mesmo em todos; o que muda está no .env.

Configurações por ambiente

Configuração Desenvolvimento Staging Produção
APP_ENV dev stage prod
SITE_URL http://localhost o endereço de staging o endereço público
PEPPER próprio próprio, ou o de produção quando o staging tem uma cópia dos dados estável, nunca alterado
Configurações de e-mail uma caixa de teste, ou nenhuma uma caixa de teste o remetente real

O APP_ENV escolhe o arquivo de tarefas do agendador (schedule.inc, schedule.stage.inc, schedule.prod.inc) e liga as estatísticas de requisições em staging e produção. Mantenha cada .env fora do Git e na máquina a que pertence.

Um site numa subpasta

Um site pode rodar num caminho, como https://staging.example.com/project/. Defina BASE_PATH=/project/ no .env. Escreva os links internos com [#base-url#] nos templates e nb.base_url nos scripts, e os links no conteúdo a partir da raiz do site (/contact); o Nimbly acrescenta o caminho base quando a página é exibida.

Dados entre ambientes

Registros, envios e conteúdo das páginas ficam em ext/data/. Escolha onde o conteúdo é editado:

  • Em desenvolvimento, com commit em ext/ e deploy como código. A produção não é usada como editor.
  • Em produção, pelos editores. A agenda de produção então roda o ext:sync, que a cada hora faz commit das mudanças em ext/ e as envia ao repositório, para que o próximo deploy parta delas e o desenvolvimento possa puxá-las.

Sessões, a fila de jobs, o estado do agendador, o histórico e os caches são dados de runtime. Eles ficam fora do Git e em cada ambiente.

Sites de demonstração e de teste

Dê a um site de demonstração ou de teste seu próprio repositório ext/, com registros, mídia e usuários próprios, em vez de uma cópia de uma aplicação em produção. Nossa aplicação de demonstração funciona assim.

Depois de um deploy

Verifique no próprio ambiente: o commit que está rodando, uma página que mudou, a versão da folha de estilo e o ./nimbly schedule:status para o agendador.

Ver esta página em Markdown