An Open-source Invoicing Application for Freelancers/SMBs

The crater is an open-source self-hosted invoicing application based on the Laravel PHP framework targeting individual users or small and medium-sized businesses (SMBs).

Crater Features
  • Invoice: Create and send invoices to clients
  • Estimate: make an estimate or offer a price
  • Track Payment: tracking transactions and payments
  • Expenses: record and track expenses
  • Reports: make a billing report
  • Taxes: set the type of tax
  • Mobile App: Android and iOS mobile versions available
Environment
  • OS: Debian 11/Ubuntu 20.04
  • Web Server: Apache
  • PHP: 7.4
  • Database: MariaDB 10.3
  • Subdomain: crater.opensio.co.in
  • SSL: Let’s Encrypt
  • Crater: v5.0.6
Install LAMP Stack

sudo apt install -y apache2 mariadb-server libapache2-mod-php php-common php-bcmath php-mbstring php-mysql php-tokenizer php-zip php-curl

Securing MariaDB installation.

sudo mysql_secure_installation

Restart apache.

sudo systemctl restart apache2

Download Crater

Download Crater on craterapp.com/downloads.

sudo wget https://craterapp.com/downloads/file/5.0.6 -O crater.zip

Unzip crater.zip

sudo apt install -y unzip && sudo unzip crater.zip

Move the crater folder.

sudo mv crater /var/www/html/

Change the ownership and permissions of the folder.

sudo chown -R www-data:www-data /var/www/html/crater/
sudo chmod 775 /var/www/html/crater/storage/framework
sudo chmod 775 /var/www/html/crater/storage/logs
sudo chmod 775 /var/www/html/crater/bootstrap/cache

Create virtual hosts file.

sudo vim /etc/apache2/sites-available/crater.conf

Enter the virtual host configuration.

<VirtualHost *:80>
ServerName crater.opensio.co.in
DocumentRoot /var/www/html/crater/public
<Directory /var/www/html/crater/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/crater_error.log
CustomLog /var/log/apache2/crater_access.log combined
</VirtualHost>

Activate the rewrite module, virtual host, and restart the apache web server.

sudo a2enmod rewrite
sudo a2ensite crater.conf
sudo systemctl reload apache2 && sudo systemctl restart apache2

Create database.

sudo mysql
create database crater;
create user ‘crater’@’localhost’ identified by ‘crater123’;
grant all privileges on crater.* to ‘crater’@’localhost’;
flush privileges;
exit

Install SSL using certbot.

sudo apt install python3-certbot-apache -y

SSL request for subdomain crater.opensio.co.in

sudo certbot –non-interactive -m info@opensio.co.in –agree-tos –no-eff-email –apache -d crater.opensio.co.in –redirect

Installation Wizard

Browse to the subdomain (crater.opensio.co.in)used for the installation wizard.

Click Check Requirements to check if the server meets the requirements to run Crater.

Crater System Requirements

If it meets the requirements click Continue.

PHP extensions

Checking directory permissions. Continue.

Directory Permissions

Configure Site URL and database. Enter the database name, username, and password that was created previously. Save & Continue.

Database Connection

Domain verification. Verify Now.

Domain Verification

Mail configuration, enter the name and email address as the identity of the email sender. Save.

Mail Configuration

Account information, enter your name, email, and password. Save & Continue.

Account Information

Company information, enter company name and country. Save & Continue.

Company Information

Company preferences, select currency (cannot be changed later), date format, and time zone. Save & Continue.

Company Preferences

Install Crater complete.

Reference: https://docs.craterapp.com/