InvoiceShelf logo

InvoiceShelf

Open source invoicing solution for individuals and businesses

Alternative to: freshbooks, invoice ninja, zoho invoice


About Versions (25)

2.4.2

2026-07-29

Maintenance release for the 2.x line, fixing five issues reported against the Docker images. Recommended for all self-hosted 2.x installs.

Containers failing to start on mounted volumes

The entrypoint now recreates storage/framework, storage/logs and storage/app when a volume is missing them, instead of leaving the app to die with Please provide a valid cache path. Docker seeds a named volume only once, when it is empty, so a volume created by an older image never gained those directories on its own.

It also no longer aborts on a chown it has no permission to make — a single file owned by your host user was previously enough to stop the container booting. If a mount genuinely is not writable, startup now says so and names the fix rather than failing later with a stack trace.

Fixes docker#75, docker#69; improves docker#77 and docker#63.

The application timezone was ignored

APP_TIMEZONE had no effect at all, so recurring invoices and scheduled tasks always ran on UTC no matter what you configured. Setting TIMEZONE on the container now works as documented.

Behaviour change: if you have been setting TIMEZONE expecting it to work, your schedules will move to that timezone after upgrading. Fixes docker#64.

Setup wizard blank on MariaDB

A fresh install using the shipped docker-compose.mysql.yml could not get past the database step, because that file sets DB_CONNECTION=mariadb and the wizard had no form for it. Fixes docker#79.

Gotenberg on a private network

The SSRF guard added in 2.4.0 rejected http://pdf:3000 — its own shipped default — which made the standard sidecar setup impossible to configure. Name the host you trust to permit it, and only it:

GOTENBERG_ALLOWED_PRIVATE_HOST=http://pdf:3000

Every other private address stays blocked, so the setting cannot be repointed at an internal service. Fixes #688.

PHP 8.5 compatibility

PDO::MYSQL_ATTR_SSL_CA is deprecated in PHP 8.5; the correct constant is now resolved per version. No change on PHP 8.4.


Docker: invoiceshelf/invoiceshelf:2.4.2 (also :latest, :2, :2.4).