A libre self-hosted web application designed to help you manage invoices, clients, and payments efficiently.
Release Notes
Every release is documented in CHANGELOG.md. Downloadable packages and the
per-version release notes are published on the
GitHub Releases page. Formal security
advisories live in .github/security/; step-by-step upgrade instructions
are in UPGRADE.md.
Security releases matter here. Check the CHANGELOG before upgrading, and subscribe to GitHub Releases notifications so you don't miss one.
Key Features
- Invoice & Quote Management: Effortlessly create, send, and manage professional invoices and quotes.
- Client Management: Maintain detailed client records, including contact information and transaction history.
- Product Management: Maintain products to add to your Invoices.
- Project & Tasks Management: Maintain tasks to add to your Invoices.
- Payment Tracking: Monitor payments, set up reminders, and integrate with multiple payment gateways.
- Customization: Tailor templates, themes, and settings to match your brand preferences.
- Reporting: Generate insightful reports to track your financial performance.
Getting Started
Quick Start with Docker (Recommended for Development)
# Clone the repository git clone https://github.com/InvoicePlane/InvoicePlane.git cd InvoicePlane # Build and start the app + database — dependencies, assets, and # configuration are all handled inside the container. docker compose up -d --build # Access the application # InvoicePlane: http://localhost:4895
compose.ymlis for local development/testing only — it ships a fixedENCRYPTION_KEYand database password (uploads, storage, and the database do persist across restarts via named volumes). For a real deployment, see Container (Docker) Deployment Instructions for the environment variables to set instead.
Production Installation
- Download the latest release from the InvoicePlane website.
- Extract and upload the files to your web server.
- Copy
ipconfig.php.exampletoipconfig.phpand set your base URL and database credentials. - Navigate to
http://your-domain.com/index.php/setupto run the installer.
For a detailed installation guide, see Installation instructions.
Removing index.php from URLs
To remove index.php from your URLs:
- Enable
mod_rewriteon your web server. - Set
REMOVE_INDEXPHP=trueinipconfig.php. - Rename the
htaccessfile in the root directory to.htaccess.
Note: If you experience issues after making these changes, revert to the default settings by undoing the steps above.
Custom Invoice & Quote Templates
Since version 1.7.2, custom template names are added through an allowlist in ipconfig.php —
the filesystem is never scanned, which is what keeps the template system safe from remote code
execution. See CUSTOM_TEMPLATES.md for the how-to, and
UPGRADE.md before upgrading an installation that already uses custom
templates.
Session Storage
Session files are stored in PHP's default session save path (sys_get_temp_dir()) unless
overridden. Set SESS_SAVE_PATH in ipconfig.php to an absolute path to store sessions
elsewhere, e.g. outside the document root for additional security:
SESS_SAVE_PATH=/var/lib/invoiceplane/storage/framework/sessions
If you mount a volume in Docker, include the configured path in your persistent volumes (see Container (Docker) Deployment Instructions).
Container Deployment
A pre-built container image is available, configured entirely through environment variables —
no ipconfig.php file needed. The entrypoint generates the configuration and runs any pending
database migrations automatically on startup.
See Container (Docker) Deployment Instructions for the full list of required/optional environment variables, default admin user setup, and persistent volumes.
Community and Support
Join our Discord — it's the fastest way to reach users, developers, and contributors in real time, whether you need help, want to report something, or are interested in contributing.
Other resources:
- Discord: discord.gg/PPzD2hTrXt — real-time chat with the community.
- Community Forums: community.invoiceplane.com — ask questions, share knowledge, and get help from the community.
- Issue Tracker: GitHub Issues — report bugs and request features.
- Wiki & Documentation: wiki.invoiceplane.com — find guides, FAQs, and detailed setup instructions.
InvoicePlane is developed and maintained by a dedicated team of volunteers. Support is provided by the community on a best-effort basis.
Contributing
We welcome contributions from the community! To get involved:
- Report Issues: Use the Issue Tracker to report bugs or request features.
- Submit Pull Requests: Fork the repository, make your changes, and open a pull request.
- Translate: Help translate InvoicePlane — see TRANSLATIONS.md.
For contribution guidelines, see CONTRIBUTING.md.
Developer Resources
- Development Guidelines — Security patterns and code review checklist
- Agent / AI Instructions — Guide for AI coding assistants working on this codebase
- Copilot Instructions — GitHub Copilot context
- Docker Setup — Docker configuration guide
Security
If you discover a security vulnerability, please report it privately by opening a GitHub Security Advisory before disclosing it publicly. See our Security Policy for the full process.
Published advisories and per-version security notes are collected in
.github/security/ and on the
GitHub Security Advisories page.
License & Copyright
InvoicePlane is licensed under the MIT License.
The InvoicePlane name and logo are copyrighted by Kovah.de and InvoicePlane.com. Usage is restricted. For more information, visit invoiceplane.com/license-copyright.