mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-08-05 07:32:14 +00:00
552da3ca849ed4ee1a0c43c6e55b03f1b7143c21
Choosing Gotenberg in ./devenv started the `pdf` sidecar and configured nothing else, so the app still defaulted to dompdf. Pointing it at the sidecar by hand then hit the SSRF guard, because `pdf` resolves to a private address on the compose network — the failure #691 fixed, hit from inside our own dev environment. The three gotenberg compose files now set PDF_DRIVER, GOTENBERG_HOST and GOTENBERG_ALLOWED_PRIVATE_HOST on php-fpm, so the stack renders through the sidecar with no .env editing at all. The serversideup pool config already sets `clear_env = no`, so these reach the workers; verified by generating a real invoice PDF end to end (24967 bytes, %PDF-1.4). Setting the environment in compose rather than writing to .env keeps the devenv script from mutating a developer's own file — it does not touch .env today, and the values belong to the compose file the developer selected. Non-Docker setups have the same keys documented in .env.example. devenv now prints what it configured, including that the compose file exempts that one host from the SSRF guard, since a security control being relaxed should not be silent.
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%