Updating the CMS
The panel tells you about a new version itself: a badge in the «Marketplace» menu, a notice on the dashboard and on the Marketplace → Updates tab. Plugins and themes are updated with the «Update» button in the same place.
Core — with a button (since 3.7)
Marketplace → Updates → «Update the core to X.Y.Z». The site does everything itself:
- downloads the distribution and verifies its checksum and digital signature — a tampered archive is never installed;
- puts a backup of the replaced files into
storage/backups/(the last three are kept, with a «Roll back» button next to them); - replaces
core/,modules/,config/,bin/,docs/,public/assets/,index.php,admin.phpand*.md; - clears the template cache and opcache; database migrations run on the next request.
Left untouched: .env, storage/ (except backups), public/uploads/, your own plugins and themes.
If a list of reasons is shown instead of the button, updating from the panel is not possible on this hosting: usually the web server has no write access to core/, less often the zip extension is missing, PHP is too old or there is not enough disk space. Update manually in that case.
Core — manually (and to move to 3.7 from older versions)
- Backup: export the database, copy
.env,storage/,public/uploads/. - Download the archive of the new version: https://celena.io/downloads/celena-cms-3.7.0.zip
- Upload the files over the site:
core/,modules/,config/,bin/,docs/,public/assets/,index.php,admin.php,.htaccess,*.md. Do not touch.env,storage/,public/uploads/,install.lockand your own plugins/themes. Do not copyinstall.php. - Clear the cache: delete the files in
storage/cache/(find storage/cache -type f -delete). - Open the site and the panel — migrations run automatically (or
php bin/celena migrate).
After one manual update to 3.7 every later version installs with the button.
Moving from 3.5 to 3.6 and above
- Add the marketplace public key to
.env(it is in the new.env.example):MARKETPLACE_PUBKEY="6q2vesNDnmG4QuwMh7NUCo+2V8SNYSs2HwcAIbnVnew="— without it package signatures are not verified. - Set
chmod 600 .env. - Check the recipients of the lead form: «Leads → Forms».
- Mark your own packages that must never reach the marketplace with a
.privatefile in their root.
The full list of changes is in CHANGELOG.md in the site root.