Something from ELMS:LN / Grav land. Grav abstracts all changes made after deploy into the user directory. This makes it super easy to know what to upgrade, what to version control, and where all credential data is vs what's safe to give out. ELMS:LN also does something similar using symlinks where all of our deploy specific changes actually live in a config directory. In practice what happens:
https://github.com/elmsln/elmsln-config-example is git cloned and replaces config folder in elmsln high level structure
https://github.com/elmsln/elmsln/blob/master/.gitignore#L5 ensures it's ignored from VC
Deploy UX that will never cause a data loss as a result:
cd /var/www/elmsln
git fetch --all
git reset --hard origin/master
Or when new version of our codebase release
cd /var/www/elmsln && git pull origin 0.10.x will safely work on any deploy that's ever made which doesn't modify this core convention. This allows us to start automating deployment and maintenance scripts.
This will never blow away anything made after the initial stamp down of the data. It's not to say my structure is right, just that I know it helped our developer UX immensely / simplified process after the fact. Grav's user folder offers similar workflow advantages when it comes to upgrading "core" at a later date in the same regard.
Something from ELMS:LN / Grav land. Grav abstracts all changes made after deploy into the
userdirectory. This makes it super easy to know what to upgrade, what to version control, and where all credential data is vs what's safe to give out. ELMS:LN also does something similar using symlinks where all of our deploy specific changes actually live in aconfigdirectory. In practice what happens:https://github.com/elmsln/elmsln-config-example is git cloned and replaces config folder in elmsln high level structure
https://github.com/elmsln/elmsln/blob/master/.gitignore#L5 ensures it's ignored from VC
Deploy UX that will never cause a data loss as a result:
Or when new version of our codebase release
cd /var/www/elmsln && git pull origin 0.10.xwill safely work on any deploy that's ever made which doesn't modify this core convention. This allows us to start automating deployment and maintenance scripts.This will never blow away anything made after the initial stamp down of the data. It's not to say my structure is right, just that I know it helped our developer UX immensely / simplified process after the fact. Grav's
userfolder offers similar workflow advantages when it comes to upgrading "core" at a later date in the same regard.