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