New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove composer as a production requirement #161

Open
ssddanbrown opened this Issue Aug 8, 2016 · 1 comment

Comments

2 participants
@ssddanbrown
Member

ssddanbrown commented Aug 8, 2016

By removing composer as a production requirement it should make the install process easier and quicker.

@lommes

This comment has been minimized.

Contributor

lommes commented Feb 1, 2018

I think the only way to do this, is to include all files from vendor/ (filesize will be between 20 and 25 MB). This is the only way to make it independant from hosting restrictions. There are lots of providers who do not offer ssh in basic hosting plans which are totally fine for BookStack.

Updating dependecies is not really difficult, since this is nothing a user does on a regular basis. The vendor folder, which is generated by composer install from the update steps, will be including the same versions of packages a user gets until the next release of bookstack.

In my opinion the main points to consider are:

  • How to enable the "updater" since we can not rely on BookStack-Logins because the System might be broken until the updates are performed. This might be achieved by simply placing a file with a defined name in a defined folder which will be deleted after the update is performed.
  • How to determine which steps need to be taken. This is easy for things like migrations and clearing cache/view because we can use the artisan commands from code. Files which are not included in the download (.env) might change. We can simply tell the user to compare relevant files (.env with .env.example) and ask them to manually merge changes.

The easiest way would be implementing a route which looks for a specific file, runs artisan migrate, artisan cache:clear and artisan view:clear, displays generic information which files might have changed that the user has to merge manually and finally delete the enabling file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment