invoiceShelf

invoiceShelf

Official

Docker app from anna's Repository

Overview

InvoiceShelf is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates. InvoiceShelf is a fork of Crater that focuses in stability, updates and new features. The Web Application is made using Laravel & VueJS while the Mobile Apps are built using React Native.

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

  1. Documentation
  2. System Requirements
  3. Download
  4. Discord
  5. Roadmap
  6. Translate
  7. License

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

Star History Chart

License

InvoiceShelf is released under the GNU Affero General Public License v3.0. See LICENSE for the full text.

Install invoiceShelf on Unraid in a few clicks.

Find invoiceShelf in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for invoiceShelf Review the template variables and paths Click Install

Requirements

Additional database is required, read the README for details. I reccomend setting up MariaDB in a seperate docker container!

Categories

Download Statistics

568,213
Total Downloads
14,610
This Month
15,097
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
invoiceshelf/invoiceshelf:nightly
Last Updated2026-06-14
First Seen2025-02-11

Runtime arguments

Web UI
http://[IP]:[PORT:80]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

Host Path for /configPathrw

Container Path: /config

Target
/config
Host Path for /confPathrw

Container Path: /config

Target
/conf
PHP_TZVariable
Default
Europe/Vienna
Value
Europe/Vienna
APP_NAMEVariable
Target
Laravel
Default
Laravel
Value
Laravel
APP_ENVVariable
Default
local
Value
local
APP_DEBUGVariable
Default
true
Value
true
DB_CONNECTIONVariable
Default
mysql
Value
mysql
DB_HOSTVariable

The database hostname.

Value
/
DB_PORTVariable

The database port.

Default
3306
Value
3306
DB_DATABASEVariable

The database name.

Default
invoiceshelf
Value
invoiceshelf
DB_USERNAMEVariable

The database username.

Default
invoiceshelf
Value
invoiceshelf
DB_PASSWORDVariable

The database user password.

Value
/
CACHE_STOREVariable
Default
FILE
Value
file
SESSION_DRIVERVariable
Default
file
Value
file
SESSION_LIFETIMEVariable
Default
120
Value
120
SESSION_ENCRYPTVariable
Default
false
Value
false
SESSION_PATHVariable
Default
/
Value
/
SESSION_DOMAINVariable

Your Unraid Server IP or domain you are hosting InvoiceShelf on.

Default
localhost
Value
localhost
ANCTUM_STATEFUL_DOMAINSVariable

Your InvoiceShelf instance WebUI URL for Laravel Sanctum authentication.

Default
localhost:90
Value
localhost:90
DB_PASSWORD_FILEVariableLeave blank if you do not wish to use a database pasword file.
Your InvoiceShelf instance WebUI Port.Porttcp
Target
80
Default
90
Value
90