Home
Softono
BillingTrack-Wired

BillingTrack-Wired

Open source PHP
20
Stars
16
Forks
1
Issues
3
Watchers
2 weeks
Last Commit

About BillingTrack-Wired

BillingTrack quote, invoice, workorder management

Platforms

Web Self-hosted

Languages

PHP

Links

BillingTrack V7

BillingTrack is a self-hosted billing system for freelancers, contractors and small businesses.

Includes:

  • Client Management
  • Quotes
  • Workorders
  • Invoices
  • Recurring Invoices
  • Payments
  • Expenses
  • Time tracking
  • Purchase Orders
  • Scheduling
  • Reports
  • Employees, Products, Vendors and more !!

Host on your own server.
Your clients can view and pay their invoices online using the built-in PayPal, Stripe and Mollie integrations.

Built with Laravel
Wired with Laravel Livewire
:+1: If you find this software useful, feel free to make a donation: https://paypal.me/cytecheng

Prerequisites

Installation

Upgrade

IMPORTANT UPGRADING FROM BILLINGTRACK 5.X.X

Live Demo

Installation Prerequisites

BillingTrack is web-based software, so to install and use it, you must have a server environment of some sort. Please review the minimum requirements below to determine whether or not you will be able to install and use the software. .

  • A web server of some sort - Apache, nginx, etc.

  • PHP >= 8.2

  • MySQL or MariaDB

  • A modern and updated web browser

  • BCMath PHP Extension

  • Ctype PHP Extension

  • cURL PHP Extensiom

  • DOM PHP Extension

  • Fileinfo PHP extension

  • GD PHP extension

  • JSON PHP Extension

  • Mbstring PHP Extension

  • OpenSSL PHP Extension

  • PCRE PHP Extension

  • PDO PHP Extension

  • Tokenizer PHP Extension

  • XML PHP Extension

    PHP Extension list from "composer check-platform-reqs"

  • ext-ctype

  • ext-curl

  • ext-dom

  • ext-fileinfo

  • ext-filter

  • ext-hash

  • ext-iconv

  • ext-json

  • ext-libxml

  • ext-mbstring

  • ext-openssl

  • ext-pcre

  • ext-phar

  • ext-session

  • ext-tokenizer

  • ext-xml

  • ext-xmlwriter

  • lib-pcre

Composer installed

Here is a good link with composer installation instructions for Ubuntu 20.04: Composer Install instructions

Sample Apache2 virtual host conf:

BillingTrack.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/BillingTrack/public
    ServerName BillingTrack
    ServerAlias BillingTrack
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/BillingTrack/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>


</VirtualHost>

Sample Nginx configuration:

server {
listen 80;
listen [::]:80;
server_name BillingTrack;
root /srv/BillingTrack/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

How to Install BillingTrack

  1. Clone or download the repository to a new web directory.
  2. Run "composer install" in web directory
  3. create a NEW BillingTrack database.
  4. Copy .env.example to .env
  5. edit .env and change:
  • DB_HOST=
  • DB_DATABASE=
  • DB_USERNAME=
  • DB_PASSWORD=
    to your **NEW** database settings.
    NOTE: Do not change APP_ENV=local. Changing this will cause migrations to fail without feedback. Changing this value to "production" has no beneficial effect on BillingTrack operation.
  1. save .env file.
  • Run "php artisan key:generate"
  • This copies the app key into the .env file, attached to the APP_KEY= line.
  1. Set permissions for your site.
  2. Start YOUR_BILLINGTRACK_WEBSITE/setup
  3. After database configuration finishes (this may take a while. 10 minutes is not unusual):

Note: In some instances a fresh install will throw an "unknown error" alert box. If this happens, dismiss the alert box and continue. In all reported cases the migration completed properly but some timeout was thrown that causes the error.

  • Create new account -> creates fresh installation with account
  1. sign in

How to Upgrade BillingTrack

Upgrade Existing v6.x.x installation to v7.0.0
Do not attempt to upgrade a Billingtrack version older than v6.x.x to V7 SEE UPGRADING FROM BILLINGTRACK 5.X.X

  • The upgrade migration is very complex and can take a long time (a test database containing 24,000 documents takes 4 hours to complete)

  • The migration function removes PHP memory_limit and max_execution_time limits during processing (restores them to original when complete)

  • This could severely affect your server performance

  • NOTE: BillingTrack-wired v7.0.0 and later require PHP >= 8.2

  • BREAKING CHANGES v7.x.x

  • This update combines the core modules (Quote, Workorder, Invoice, Recurringinvoice, and Purchaseorder) database tables into a single documents table.

  • User defined custom templates (in the custom/templates directory) will be affected by this change.

  • Note that the existing "custom.blade.php" file in each module directory will be overwritten by the upgrade. If you have modified it directly (without copying it to a new name first) you will need to BACK IT UP prior to upgrade.

  • This "custom.blade.php" file is meant to be a starting point for creating your own custom template.

  • During Migration, existing custom templates will be copied to a new directory named "V6Backup" in the custom/templates directory.

  • The migration will then modify the original custom templates and change all occurrences of ($quote, $workorder, $invoice, and $purchaseorder) to $document.

  • It will also modify any references to ${module}->formatted_due_at or ${module}->formatted_expires_at to ${module}->formatted_action_date.

  • ANY TEMPLATE CUSTOMIZATIONS OUTSIDE OF THESE PARAMETERS WILL HAVE TO BE CHANGED BY THE USER.

  • Users will also need to manually modify any customizations to email templates under Admin - System Settings - Email - Templates.

  • The API has also changed so if you are using it you will need to upgrade the API and any code you have referencing it.

  • The new API and examples are located in this repository, resources/misc/billingtrack-api-v7.zip

  • BACKUP YOUR EXISTING DATABASE !!!!

  • Git pull (if originally cloned) or download and overwrite existing installation.

  • if downloading and extracting zip, delete the contents of:

    • "YOUR_BILLINGTRACK_WEBSITE/public"
    • "YOUR_BILLINGTRACK_WEBSITE/database/seeds"
    • "YOUR_BILLINGTRACK_WEBSITE/app"
      directories prior to extracting.
  • Run composer update

  • Start-> YOUR_BILLINGTRACK_WEBSITE/setup

  • After migration completes, signin.

UPGRADE FROM BILLINGTRACK 5.X.X

If attempting to upgrade from BillingTrack V5.X.X to V7, you will first need to upgrade to V6
V6.1.1 release is available in the releases section of this repository
Minimum PHP requirement for BillingTrack-Wired (v6.X.X) is PHP >= 8.1

  • Create a new installation/site. (see How to Install BillingTrack)
  • Although it is theoretically possible to do so, do not attempt to upgrade an existing BillingTrack 5.x.x Site.
  • This is a new repository and existing cloners will not be able to pull the update.
  • This will upgrade the existing BillingTrack database, but it is HIGHLY recommended to backup the existing database and copy to a new one.
  • After copying old database to new and modifying the .env file per the installation instructions to reflect the NEW copied database:
  • Start-> YOUR_BILLINGTRACK_WEBSITE/setup
  • After migration completes (this may take a while. 10 minutes is not unusual), signin.