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.
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 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.
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.
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 |
---|---|
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.