Skip to content

Abstract deploy specific changes to a user / config directory #44

Description

@btopro

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions