Getting Started

Introduction

SolidInvoice is an open-source application that allows you to manage clients and contacts and send invoices and quotes.

System Requirements

Note

In order to run SolidInvoice, you need at least PHP version 7.1.4, but the latest version is always recommended

Requirements:

  • PHP (>=7.1.4)
  • MySQL Database (> 5.5.0)

Downloading

There are different ways of obtaining SolidInvoice.

If you plan to contribute to SolidInvoice (E.G write patches, you should follow the Installing from source section. Otherwise follow the Installing distribution package section.

Installing distribution package

To install a packaged version of SolidInvoice, download the latest version from https://github.com/SolidInvoice/SolidInvoice/releases.

Extract the archive to a folder that is accessible from your web-server (view the Configuring your WebServer document for more information)

Tip

If you are on a shared hosting environment, or only have ftp access to a server, then you can use ftp to upload all the files to the server

Installing from source

In order to install SolidInvoice from source, you will need composer, a package and dependency manager for PHP. If you do not yet have composer installed, follow the guide on Installing Composer.

Installing Composer

If you do not yet have composer installed on your system, you can use the following command to get composer

$ curl -sS http://getcomposer.org/installer | php

Once composer is downloaded, you can use it from the command line using the following command

$ php composer.phar

Using Composer

To install SolidInvoice using composer, run the following commands

$ php composer.phar create-project solidinvoice/solidinvoice

This will download SolidInvoice into a directory called solidinvoice, and will also install all the dependencies. If you encounter any issues while trying to install, please submit a bug report.

The last step is to install the Node packages and dump all the web assets

$ npm install
$ ./node_modules/.bin/gulp

Using Git

If you want to install SolidInvoice using git, you can clone the repository using the following command:

$ git clone https://github.com/SolidInvoice/SolidInvoice.git

You will then need composer to install the required dependencies. To install Composer, please refer to the installing-composer section.

Go into the repository directory and install all the dependencies

$ cd SolidInvoice
$ php composer.phar install

If you encounter any issues while trying to install, please submit a bug report.

The last step is to install the Node packages and dump all the web assets

$ npm install
$ ./node_modules/.bin/gulp

Configuring your WebServer

If you are using a shared hosting server which uses apache and has rewrite rules enabled, then you can upload all the files either to your root public directory, or under a sub-folder. E.G If you upload the files to a ./billing/ directory, then you can access the site using http://yourdomain.com/billing

Tip

You can also use the built-in server, although it is not recommended for production use.

Configuring Apache

To run SolidInvoice on apache, you need to create a custom virtual host.

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com

    DocumentRoot /opt/solidinvoice/web
    <Directory /opt/solidinvoice/web>
        # enable the .htaccess rewrites
        AllowOverride All
        Order allow,deny
        Allow from All
    </Directory>

    ErrorLog /var/log/apache2/solidinvoice.error.log
    CustomLog /var/log/apache2/solidinvoice.access.log combined
</VirtualHost>

Warning

The above configurations might be different depending on the OS you are using on your server. For specific details on setting up Apache on your OS, please view the respective documentation for your operating system.

Configuring NginX

To run SolidInvoice on NginX, you need to create a custom virtual host.

server {
    server_name yourdomain.com www.yourdomain.com;
    root /opt/solidinvoice/web;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/(app|app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

Warning

The above configurations might be different depending on the OS you are using on your server. For specific details on setting up NginX on your OS, please view the respective documentation for your operating system.

PHP built-in server

To start the built-in web server, run the following command:

$ php app/console server:run

This will start the local web server, which is accessible at http://localhost:8080

Danger

The built-in web server is not meant to be used for production. If you want to run SolidInvoice in a production environment, rather use apache or nginx

For more info on the built-in server, or options you can use when using the built-in server see http://php.net/manual/en/features.commandline.webserver.php or http://symfony.com/doc/current/cookbook/web_server/built_in.html

Installation

When navigating to the application for the first time, you will automatically land on the installation page.

This page will show if your system meets all the requirements in order to run SolidInvoice. If your system does not meet the requirements, an error message will advise you what you need to change in order to meet the requirements. After you have fixed any issues, refresh the page by either pressing F5 or hitting the Refresh button.

If there are no errors, you can proceed by pressing the Next button.

installation

Configuration

This step allows you to set up your database and email configuration.

Database Configuration

Add your database information. If the database doesn’t exist, SolidInvoice will attempt to create it.

Attention

Only MySQL is supported at the moment. Support for other databases may be added in a future release

Email Configuration

Set up your email configuration in order to send out emails.

Current supported email transports:

PHP Mail:

Uses the standard mail() function of PHP.

Note

Your server must be configured correctly for this to work.

Sendmail:

Uses Sendmail for sending emails.

Note

Sendmail must be set up and configured properly on server for this to work.

SMTP:

Connects to a SMTP server for sending emails.

Gmail:

Sends emails through Gmail. Note: A valid Gmail account and password must be provided.

When you are done, continue by pressing the Next button.

config

Installation Process

At this point, the database will be installed and all your tables will be created.

When the installation is complete and there are no error, you can continue with the setup process by pressing on the Next button.

process

System Information

The following values needs to be configured:

Locale:

Note

The Locale doesn’t only determine the language to use. It is also used for currency and number formatting. So be sure to choose the correct locale for your country.

Note

Only the English language is supported at the moment, but support for other languages may be added in a future release.

Currency:
Base Url:

This value should be pre-populated, and in most cases can remain unchanged.

When you are done, continue by pressing the Next button.

Admin User

You need to create an admin user. The provided details will be the credentials you use to log into the system.

Final Steps

After the setup process is complete, the last step is to set up the Cron job.

The Cron job is used to run scheduled tasks like recurring invoices. Setting up the cron job will be different based on your hosting provider. Please consult your hosting provider for the proper way to set up the cron job.

Warning

If you do not set up the cron job, functionality will be limited, and scheduled tasks won’t be able to run. It is highly recommended to set up the cron job.

When you are done and ready to use the application, press the Log in now button to log into the application.

final

SolidInvoice Documentation

SolidInvoice is an open-source application that allows you to manage clients and contacts and send invoices and quotes.