Skip to content
Introduction Price $49 −$20
ESC

Searching...

Quick Links

Type to search • Press to navigate • Enter to select

Keep typing to search...

No results found

No documentation matches ""

Updating.

How to update InvoiceScript while preserving invoices, settings, PDFs, XML exports, uploads, and backups.

May 17, 2026

Updating

Updates are included with your purchase. Download the latest release package from the marketplace at no additional cost.

💡 Always test updates in a staging environment before updating production. Back up your database and storage/ directory first.

Two Ways to Update

Choose the method that fits your hosting environment:

Method Best For Requirements
Admin Update Page Any hosting Admin access
Manual File Replacement Shared hosting, FTP FTP/SFTP access

Admin Update Page

The recommended method. Upload the release ZIP to your server, and the admin page handles extraction, file replacement, migrations, and cache clearing.

Steps

  1. Download the latest release ZIP from the marketplace.
  2. Upload the ZIP file to storage/app/update-packages/ on your server via FTP, SFTP, or your hosting file manager.
  3. Log in as an administrator.
  4. Click your name in the top-right corner and select Update.
  5. The detected package appears with its version number and whether it's an upgrade, reinstall, or downgrade.
  6. Click Install update and confirm.
  7. The system extracts the package, replaces application files, runs database migrations, and clears caches.
  8. Verify the application loads correctly.

What Happens During Installation

  1. The ZIP is validated: entries are checked for path traversal, absolute paths, and symlinks. Maximum 50,000 entries / 2 GB uncompressed.
  2. The ZIP is extracted to a temporary directory.
  3. Application files are replaced (code, views, assets, vendor dependencies, migrations, seeders).
  4. Protected paths are preserved (see below).
  5. Database migrations run.
  6. Configuration, view, and route caches are cleared.
  7. The ZIP is removed after successful installation.
  8. A system.update_installed audit log entry is recorded.

Manual File Replacement

Upload files directly via FTP or SFTP. This is the fallback for environments where you prefer full control.

Steps

  1. Download the latest release ZIP from the marketplace.
  2. Extract the ZIP on your local machine.
  3. Back up your database, .env, and storage/ directory.
  4. Upload the extracted files to your server, overwriting existing files.
  5. Do not overwrite .env, storage/, or any .sqlite database files.
  6. If the release includes database changes, run php artisan migrate via SSH.
  7. Visit your domain and verify the application loads.

💡 No SSH access? Use the Admin Update Page instead. It handles database migrations and cache clearing automatically.

Protected Paths

These paths are never overwritten during an admin update:

Path Reason
.env Your environment configuration (database, mail, app key)
storage/ Logs, framework cache, uploaded files, update packages, backups
Any .sqlite file SQLite database files, regardless of filename or location
Configured DB_DATABASE path Your active database file, as set in .env

Everything else is replaceable by an update, including:

  • Application code (app/, config/, routes/, etc.)
  • Database migrations (database/migrations/)
  • Database seeders and factories
  • Vendor dependencies (vendor/)
  • Built assets (public/build/)
  • Default views (resources/views/)
  • Default language files (lang/)
  • Default PDF templates

⚠️ Important: If you have customized any files outside protected paths, they will be overwritten. Custom PDF templates should be placed in the documented custom template path. Email templates are stored in the database and are not affected by updates.

Checking Your Version

Your current version displays on the Update page. You can also check the VERSION file in your installation root.

Backup First

Back up before every update:

  • Database (export via your hosting panel or copy the .sqlite file)
  • .env
  • storage/
  • Custom templates
  • Language overrides

InvoiceScript backups contain financial and customer data. Store them securely.

Troubleshooting

Upload too large: Increase upload_max_filesize and post_max_size in your PHP configuration, or use FTP/SFTP to upload the ZIP directly.

Missing zip extension: Enable the PHP zip extension. Contact your hosting provider if you cannot enable it.

Migration failed: Restore from backup and contact support with the relevant lines from storage/logs/laravel.log.

White screen after update: Clear your browser cache, check storage/logs/laravel.log, and verify all files uploaded correctly.

Ready to build?

One-time purchase. Self-hosted. Own every file forever.

Get InvoiceScript