Updating.
How to update VoxelBooking with Git or a release archive. Your database and settings are preserved.
Updating
New releases come from the project repository. On a Git install you pull them in one step from Admin → Updates; on shared hosting you apply a release archive. Both preserve your data and configuration.
Checking your current version
Your current version is shown in Admin → Updates and in the sidebar footer. You can also find it in the VERSION file in your installation root.
Git Update (preferred for SSH-capable installs)
If your installation is a Git checkout (typical on a VPS, Forge, RunCloud, or any host with SSH), VoxelBooking can update itself by pulling from the repository. Nothing to download, and vendor/ updates with it.
The Git Updates card appears in Admin → Updates only when the install is a git clone (there's a .git/ directory in the root), the git command is available, and PHP allows proc_open. On shared hosting without these, use the archive methods below; the card won't appear.
- Log in to VoxelBooking as the operator
- Go to Admin → Updates and find the Git Updates card
- Click Check for updates to fetch the latest status from the repository
- If updates are available, click Update now
VoxelBooking fetches the latest commit, resets the application to match it (system files only), and runs any pending database migrations. Your .env, database, storage/, and public/uploads/ are never touched. They live outside version control.
Safety. The updater refuses to run if it detects local edits to tracked files ("Local code changes detected") rather than discarding your work, and it never runs git clean, so untracked content stays in place. A web request can't hang on a credential prompt; Git runs non-interactively with a hard timeout. Every Git update is recorded in the audit log.
Setting up Git updates
To put an install on the Git path, deploy it as a clone instead of unzipping (see Installation → Install via Git). The admin button then pulls from the clone's existing remote.
Versions, tags, and release notes
Each release is a Git tag (for example v1.0.0), and the matching GitHub release holds the notes for what changed. The Git Updates card in Admin → Updates always moves you to the latest commit on your branch and runs migrations for you, the easy path for most installs.
To pin a specific version from a shell, fetch the tags and check one out:
cd /path/to/your/webroot
git fetch --tags
git checkout v1.0.0
VoxelBooking applies database migrations through the install wizard and the in-app updater, so check out a tag on a fresh install or a staging copy and complete the wizard there. For a production update, use the Git Updates card or a release archive. Run git checkout main to return to tracking the latest.
In-Admin Update (recommended for shared hosting)
- Download the latest
.ziprelease - Log in to VoxelBooking as the operator
- Go to Admin → Updates
- Click Choose File and select the
.zipyou downloaded - Click Apply Update
- Wait for the confirmation message - it shows how many files were updated
VoxelBooking extracts the update to a staging area first. If extraction fails, no files are changed. Only after all files extract cleanly are they written to the live application.
Upload too large? If your hosting limits the upload size and the zip is rejected, use the FTP method below instead.
FTP Upload + In-Admin Apply
If your hosting's PHP upload limit is too low for the zip file, upload it via FTP and apply it from the admin panel:
- Download the latest
.ziprelease - Connect to your server via FTP/SFTP
- Upload the
.zipfile (don't extract it) to the/dist/folder in your VoxelBooking installation root. Create the folder if it doesn't exist. - Log in to VoxelBooking as the operator
- Go to Admin → Updates
- The uploaded zip appears automatically with its version number and an Apply button
- Click Apply and wait for the confirmation message
This method bypasses the PHP upload limit since the file is already on the server. After the update completes, you can delete the .zip from /dist/ to save disk space.
What is preserved
All update methods preserve your data:
| Preserved (never overwritten) | Updated (replaced by new version) |
|---|---|
Your .env configuration |
Application code (app/) |
| Your database and all bookings | Templates (templates/) |
Your uploaded images and logos (public/uploads/) |
Public assets (public/assets/) |
Your logs (storage/logs/) |
Translation files (lang/) |
| Your cache and sessions | Configuration (config/) |
Demo database (storage/demo/) |
Vendor dependencies (vendor/) |
Manual Update (FTP)
Use this method as a last resort - for example, if neither of the methods above work for your hosting setup.
- Download the latest
.ziprelease - Extract it on your computer
- Upload the following directories to your server via FTP/SFTP, overwriting the existing ones:
app/config/lang/templates/vendor/public/assets/
- Upload the following root files, overwriting the existing ones:
public/index.phppublic/.htaccessVERSION
- Do NOT overwrite these files and directories:
.env- your database credentials and configurationstorage/- logs, cache, sessions, demo databasepublic/uploads/- business logos, cover images, and uploaded files
After uploading, visit your admin panel to verify the new version appears in the sidebar and on the Updates page.
Backup first
While the updater is designed to be safe, back up before major updates:
.env- database credentialsstorage/- logs and demo databasepublic/uploads/- uploaded images and files- Your MySQL database (via phpMyAdmin or
mysqldump)
Most hosting control panels have a one-click backup option, or you can download these files via FTP.
Troubleshooting
Upload fails or times out - Your hosting may limit upload size or execution time. Try the FTP Upload + In-Admin Apply method - upload the zip to /dist/ via FTP and apply it from the admin panel. Alternatively, ask your hosting provider to increase upload_max_filesize and max_execution_time in PHP settings.
"This is not a valid VoxelBooking update package" - Make sure you're uploading the original .zip release, not a file you re-zipped yourself. The updater looks for a VERSION file and app/Engine/Version.php inside the zip to verify it's a genuine VoxelBooking package.
ext-zip not available - The PHP zip extension is required for in-admin updates. The Updates page shows a notice if it's missing. Ask your hosting provider to enable it, or use the Manual Update (FTP) method instead.
White screen after update - Clear your browser cache (Ctrl+Shift+R or Cmd+Shift+R) and reload. If the issue persists, check your hosting error log for PHP errors.
Ready to build?
Open source. Self-hosted. Full source code.