mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-08-05 15:42:14 +00:00
9eeb141b0da0711ea8b0ac0bdccbba5314a6d78b
Port of #708 to 3.x. This branch carries the identical bug: the changelog is written to /tmp/changelog.txt while curl is told to read `changelog.txt`, a relative path resolved against the checkout. The next 3.x release would fail exactly as 2.4.2 did — published, zip uploaded, images built, and never registered, so no install offered it. It has not bitten here only because no 3.x release has been cut since the automation landed; 3.0.0-alpha.1 predates it, the same reason 2.4.2 was the first to hit it on 2.x. Registration moves into its own job that downloads the published asset rather than reusing the build job's working directory, so it can also be re-run on demand for an existing tag instead of needing production shell access to repair. A missing WEBSITE_RELEASE_TOKEN is now fatal on a real release rather than a warning, and the registration is verified against the download endpoint afterwards, which fails unless the row exists and its zip is retrievable. Both blocks are byte-identical to what merged on 2.x, so the two trees do not drift and the next change ports cleanly. Checked for this branch specifically: the verify probe returns 200 for 3.0.0-alpha.1, so it holds on the insider channel; that release ships the same InvoiceShelf.zip asset name; and the "-" suffix already derives CHANNEL=insider without change. LATEST_MAJOR stays "2" — 2.x owns the moving :latest tags until 3.0.0 GA.
Introduction
InvoiceShelf is an open-source web app that helps you track expenses, record payments, and create professional invoices and estimates. It is self-hosted, multi-tenant, and built for individuals and small businesses that want to keep their books on their own infrastructure.
The web application is built with Laravel and Vue 3.
To get started using Docker Compose, follow the Installation guide.
Table of Contents
Documentation
System Requirements
- PHP 8.4+ is required (since v2.2.0, when InvoiceShelf moved to Laravel 13).
- Database: MySQL, MariaDB, PostgreSQL, or SQLite.
- Before updating from inside the app, verify your server meets the target version's PHP and extension requirements.
- The in-app updater verifies requirements and refuses to proceed if they are not met.
Download
Discord
Join the discussion on the InvoiceShelf Discord: Invite Link
Roadmap
Rough roadmap of things to come, not in any specific order:
- Automatic Update
- Email Configuration
- Installation Wizard
- Address Customisation & Default Notes
- Edit Email before Sending Invoice
- Available as a Docker image
- Performance Improvements
- Customer View Page
- Custom Fields on Invoices & Estimates
- Multiple Companies
- Recurring Invoices
- Customer Portal
- Decoupled system settings from company settings (v3.0)
- Proper multi-tenancy system (v3.0)
- Company member invitations with custom roles (v3.0)
- Dark mode (v3.0)
- Full TypeScript refactor of the frontend (v3.0)
- Improved backend architecture (v3.0)
- Security hardening (v3.0)
- Reworked installation wizard (v3.0)
- Module Directory (v3.0)
- Rewritten Payments module (v3.0)
- Accept Payments (Stripe integration)
- Improved template system for invoices and estimates
Translate
Help us translate InvoiceShelf into your language: https://crowdin.com/project/invoiceshelf
Star History
License
InvoiceShelf is released under the GNU Affero General Public License v3.0. See LICENSE for the full text.
Languages
PHP
59.9%
Vue
36.1%
Blade
3.2%
Shell
0.6%
Dockerfile
0.1%