Beheer

Omgevingen

Houd configuratie en runtime-data per omgeving gescheiden.

Een project draait meestal in drie omgevingen: ontwikkeling op je eigen machine, staging om te reviewen, en productie. De code is overal hetzelfde; wat verschilt, staat in .env.

Instellingen per omgeving

Instelling Ontwikkeling Staging Productie
APP_ENV dev stage prod
SITE_URL http://localhost het staging-adres het publieke adres
PEPPER een eigen een eigen, of die van productie als staging een kopie van de data bevat vast, nooit veranderd
Mailinstellingen een testinbox, of geen een testinbox de echte afzender

APP_ENV kiest het takenbestand van de scheduler (schedule.inc, schedule.stage.inc, schedule.prod.inc) en zet de requeststatistieken aan voor staging en productie. Houd elke .env buiten Git en op de machine waar hij bij hoort.

Een site in een submap

Een site kan onder een pad draaien, zoals https://staging.example.com/project/. Zet BASE_PATH=/project/ in .env. Schrijf interne links met [#base-url#] in templates en nb.base_url in scripts, en links in content vanaf de root van de site (/contact); Nimbly zet het basispad ervoor als de pagina wordt getoond.

Data tussen omgevingen

Records, uploads en paginacontent staan in ext/data/. Kies waar content wordt bewerkt:

  • In ontwikkeling, gecommit naar ext/ en gedeployd zoals code. Productie wordt niet als editor gebruikt.
  • In productie, door redacteuren. Het schema van productie draait dan ext:sync, dat de wijzigingen in ext/ elk uur commit en naar de repository pusht, zodat de volgende deploy erop voortbouwt en ontwikkeling ze kan pullen.

Sessies, de jobwachtrij, de status van de scheduler, geschiedenis en caches zijn runtime-data. Die blijven buiten Git en op elke omgeving apart.

Demo- en testsites

Geef een demonstratie- of testsite een eigen ext/-repository, met eigen records, media en gebruikers, in plaats van een kopie van een live applicatie. Onze demo-applicatie werkt zo.

Na een deploy

Controleer op de omgeving zelf: de commit die draait, een pagina die is veranderd, de versie van de stylesheet, en ./nimbly schedule:status voor de scheduler.

Bekijk deze pagina als Markdown