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 emext/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.