InvoicePlane v2 is a modern, open-source invoicing and billing application built with Laravel 12, Filament 4, and Livewire. It features a modular architecture, multi-tenancy support, and comprehensive Peppol e-invoicing integration for European businesses.
- Invoice & Quote Management - Create, send, and track invoices and quotes
- Peppol E-Invoicing - Send invoices through the European Peppol network (UBL, FatturaPA, ZUGFeRD)
- Customer & Contact Handling - Manage customers and relationships
- Payment Tracking & Reminders - Track payments and send automated reminders
- Modular Architecture - Laravel + Filament with clean module separation
- Multi-Tenant Support - Via Filament Companies with company isolation
- Realtime UI - Built with Livewire for reactive interfaces
- Asynchronous Export System - Requires queue workers for background processing
- Comprehensive Testing - PHPUnit tests with 100% coverage goal
- Internationalization - Full translation support via Crowdin
- PHP 8.2 or higher
- Composer
- Node.js 20+ and Yarn
- MySQL 8.0+ or PostgreSQL 13+
- Redis (recommended for queue/cache)
To install and run InvoicePlane v2 locally, see the Installation Guide.
# Clone the repository
git clone https://github.com/InvoicePlane/InvoicePlane-v2.git
cd InvoicePlane-v2
# Install dependencies
composer install
yarn install
# Setup environment
cp .env.example .env
php artisan key:generate
# Setup database
php artisan migrate --seed
# Build frontend assets
yarn build
# Start queue worker for export functionality
php artisan queue:workNote: Export functionality requires a queue worker to be running. For production, configure a queue driver (Redis, database, etc.) and use a process manager like Supervisor.
For detailed setup instructions, see INSTALLATION.md.
- Installation Guide - Complete setup instructions
- Contributing Guide - How to contribute code
- Testing Guide - Running and writing tests
- Maintenance Guide - Dependency management and security updates
- Seeding Guide - Database seeding instructions
- Upgrade Guide - Upgrading from previous versions
- Security Policy - Reporting security vulnerabilities
- Peppol Architecture - E-invoicing system details
- Workflows README - GitHub Actions automation and secrets setup
# Run all tests
php artisan test
# Run with coverage
php artisan test --coverage
# Run specific test suite
php artisan test --testsuite=Unit
php artisan test --testsuite=Feature# Format code with Laravel Pint
vendor/bin/pint
# Run static analysis
vendor/bin/phpstan analyse
# Run Rector for automated refactoring
vendor/bin/rector process --dry-run# Development build
yarn dev
# Production build
yarn build
# Watch for changes
yarn dev --watchWe welcome community contributions!
To learn how to contribute code, create modules, write tests, or help translate the app:
- Read the Contributing Guide
- Follow the Module Checklist to avoid duplication
- Review the Junie Guidelines for coding standards
- Check Copilot Instructions for AI assistance
Help translate InvoicePlane v2 into your language using Crowdin:
Current languages:
- English (default)
- Dutch
- German
- Spanish
- French
- And more...
See TRANSLATIONS.md for more details.
- Discord - Join our Discord server
- Forums - Community discussions
- Issue Tracker - Report bugs and request features
- Documentation Wiki - Official documentation
If you discover a security vulnerability, please follow our Security Policy for responsible disclosure.
Do not report security vulnerabilities through public GitHub issues.
InvoicePlane v2 is open-source software licensed under the MIT License.
The InvoicePlane name and logo are protected trademarks of Kovah.de.
Built with:
- Laravel - The PHP framework
- Filament - Admin panel framework
- Livewire - Reactive frontend
- Tailwind CSS - Utility-first CSS
- PHPUnit - Testing framework
Special thanks to all our contributors!
Developed by the InvoicePlane community