Skip to main content

Git (advanced)

warning

Installing from Git is intended for contributors and developers who want to hack on the SolidInvoice source. It is not recommended for production use โ€” for that, use the quick install, Homebrew, or Docker.

System requirementsโ€‹

  • PHP 8.4 or higher with the curl, gd, intl, json, openssl, pdo, soap, and xsl extensions.
  • Composer.
  • Bun.
  • Symfony CLI โ€” recommended for the local web server (see below). Optional if you bring your own webserver.
  • A supported database (MySQL, MariaDB, PostgreSQL, or SQLite).

Clone and installโ€‹

git clone https://github.com/SolidInvoice/SolidInvoice.git
cd SolidInvoice
composer install
bun install
bun run build

Run the local web serverโ€‹

The recommended way to run SolidInvoice for development is the Symfony CLI โ€” it ships a local web server with HTTPS, Docker integration, and a workers manager.

symfony serve

This reads the project's .symfony.local.yaml and:

  • Starts an HTTPS web server on port 7005 (configurable in .symfony.local.yaml).
  • Starts the async messenger consumer as a managed worker, so scheduled tasks and async messages (emails) are processed without you having to run messenger:consume separately.

The committed .symfony.local.yaml already contains both the HTTP and worker configuration:

.symfony.local.yaml
http:
document_root: public/
passthru: index.php
port: 7005
preferred_port: 7005
allow_http: true
daemon: true

workers:
messenger_consume:
cmd: ['symfony', 'console', 'messenger:consume', 'async', '--time-limit=3600', '--memory-limit=128M']
watch: ['config', 'src']

The watch paths restart the worker whenever you change application code, so it picks up your edits automatically.

To follow the worker logs alongside the web server logs:

symfony server:log

Bring-your-own webserverโ€‹

If you'd rather use Nginx or Apache directly, point the document root at public/ (see the distribution package guide for example configs) and set up the background worker the same way.

Finish setupโ€‹

Open the URL Symfony CLI prints (typically https://127.0.0.1:7005) and finish setup with the first-run wizard.

For development workflow, code conventions, and how to run the test suite, read CONTRIBUTING.md in the repository.

If you encounter issues, please open a bug report.