Saturday, December 28, 2024
Google search engine
HomeGuest BlogsInstall Crater Invoicing Solution on Debian 11 / Debian 10

Install Crater Invoicing Solution on Debian 11 / Debian 10

.tdi_3.td-a-rec{text-align:center}.tdi_3 .td-element-style{z-index:-1}.tdi_3.td-a-rec-img{text-align:left}.tdi_3.td-a-rec-img img{margin:0 auto 0 0}@media(max-width:767px){.tdi_3.td-a-rec-img{text-align:center}}

This guide aims to demonstrate how to install Crater Invoicing Solution on Debian 11 / Debian 10. The Crater is an open-source PHP-based invoicing software used by individuals or small and medium businesses. It helps one track payments, expenses as well as create professional invoices. It has both a web application built on Laravel & VueJS and a mobile application built on React Native.

The Crater Invoicing Solution offers the features below:

  • Track Payment – helps in tracking transactions and payments
  • Estimates – make an estimate or offer a price
  • Invoice – used to create and send invoices to clients
  • Reports – makes a billing report
  • Taxes – set the type of tax
  • Exprenses – helps keep a record and track expenses
  • It has a mobile app for Android and iOS mobile versions.
  • Recurring Invoices – used to automatically create invoices on a given schedule & limit
  • Customers – the list of customers and their information.

Install Crater Invoicing Solution on Debian 11 / Debian 10

This guide aims to illustrate two methods one can use to install Crater Invoicing Solution on Debian 11 / Debian 10:

.tdi_2.td-a-rec{text-align:center}.tdi_2 .td-element-style{z-index:-1}.tdi_2.td-a-rec-img{text-align:left}.tdi_2.td-a-rec-img img{margin:0 auto 0 0}@media(max-width:767px){.tdi_2.td-a-rec-img{text-align:center}}

  • Manual installation.
  • Using Docker containers

Option 1 – Install Crater Invoicing Solution on Debian 11 / Debian 10 Manually.

For this method, we will require the following:

  • PHP: 7.4 and its extensions
  • Web Server: Apache
  • Database: MariaDB

1. Download Crater archive

Download the latest available version of Crater from the official Crater Downloads page. If using command line install wget and curl:

sudo apt update
sudo apt install wget curl unzip

Alternatively, you can use Wget to pull the archive.

VER=$(curl -s https://api.github.com/repos/crater-invoice/crater/releases/latest|grep tag_name | cut -d '"' -f 4)
wget https://github.com/crater-invoice/crater/archive/refs/tags/${VER}.tar.gz

Once successful, extract the archive.

tar xvf ${VER}.tar.gz

2. Install and Configure Apache on Debian 11 / Debian 10.

We will install the Apache webserver on our system as below.

sudo apt install apache2

Install composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Navigate to crater directory and perform composer installation of dependencies:

cd crater-${VER}
composer install

Copy .env.example to .env

cp .env.example .env

Edit .env file and update Database connection parameters and App URL:

APP_ENV=production
APP_KEY=base64:kgk/4DW1vEVy7aEvet5FPp5un6PIGe/so8H0mvoUtW0=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=//crater.geeksforgeeks.org

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=crater
DB_USERNAME=crater
DB_PASSWORD="Passw0rd"

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_DRIVER=sync
SESSION_DRIVER=cookie
SESSION_LIFETIME=1440

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

#MAIL_DRIVER=smtp
#MAIL_HOST=
#MAIL_PORT=
#MAIL_USERNAME=
#MAIL_PASSWORD=
#MAIL_ENCRYPTION=
#
#PUSHER_APP_ID=
#PUSHER_KEY=
#PUSHER_SECRET=
#
#SANCTUM_STATEFUL_DOMAINS=crater.test
#SESSION_DOMAIN=crater.test
#
#TRUSTED_PROXIES="*"
#
#CRON_JOB_AUTH_TOKEN=""

Now move the extracted file to the Apache web directory.

cd ..
sudo mv crater-${VER} /var/www/crater

Grant ownership of the folder.

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

Proceed and create a virtual hosts file.

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

In the file, add the below lines, and replace your server name appropriately:

<VirtualHost *:80>
    ServerName crater.geeksforgeeks.org    
    DocumentRoot /var/www/crater/public
 
    <Directory /var/www/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> 

Save the file and enable the rewrite module.

sudo a2enmod rewrite

Enable the created site.

sudo a2ensite crater
sudo systemctl restart apache2

3. Install PHP and extensions.

We will use the below command to install PHP and all the required extensions.

sudo apt install libapache2-mod-php php-common php-bcmath php-mbstring php-mysql php-tokenizer php-zip php-curl php-xml openssl redis php-redis -y 

Verify the installed PHP versions.

$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies

Restart Apache web server.

sudo systemctl restart apache2	

4. Install MariaDB Database server

MariaDB is available in the default Debian repositories and can be installed using the command:

sudo apt install mariadb-server 	

Once the installation is complete, harden the instance:

sudo mysql_secure_installation 

Proceed as below.

Enter current password for root (enter for none): Press Enter
....
Switch to unix_socket authentication [Y/n] y
.......
Change the root password? [Y/n] y
New password: Enter Password
Re-enter new password: Re-Enter Password
......
Remove anonymous users? [Y/n] y
...
Disallow root login remotely? [Y/n] y
...
...
Remove test database and access to it? [Y/n] y
....
Reload privilege tables now? [Y/n] y
.....
Thanks for using MariaDB!

Now create a database for the Crater Invoicing Solution. First login to the shell using the created root password

sudo mysql -u root -p

Now create the database and user as below

create database crater;
create user 'crater'@'localhost' identified by 'Passw0rd';
grant all privileges on crater.* to 'crater'@'localhost';
flush privileges;
exit

Now from here, you can proceed to the Web installation wizard.

http://crater.geeksforgeeks.org

Option 2 – Install Crater Invoicing Solution on Debian using Docker

This is the easiest way to run the Crater Invoicing Solution since the container contains all the required dependencies for Crater.

Ensure that the latest versions of Docker Engine and Docker Compose are installed on your Debian 11 / Debian 10. Below is a dedicated guide to help you install them.

After installation add the user to docker group:

sudo usermod -aG docker $USER
newgrp docker

Once installed, proceed and clone the Crater repository. Ensure that git is installed on your system.

sudo apt install git
git clone https://github.com/crater-invoice/crater

Navigate into the directory and copy the environment as below.

cd crater
sudo cp .env.example .env
sudo chmod 775 .env

Now start the Crater container.

docker-compose up -d

Sample Output:

[+] Running 11/15
 ⠿ nginx Pulled                                                                                                                        3.7s
   ⠿ cbdbe7a5bc2a Pull complete                                                                                                        0.8s
   ⠿ c554c602ff32 Pull complete                                                                                                        1.2s
 ⠿ app Error                                                                                                                           1.7s
 ⠦ db Pulling                                                                                                                         10.7s
   ⠿ ea362f368469 Pull complete                                                                                                        2.1s
   ⠿ adb9a1b1379d Pull complete                                                                                                        2.2s
   ⠿ ac5c95406850 Pull complete                                                                                                        2.5s
   ⠿ fa48d8b47ec1 Pull complete                                                                                                        6.7s
   ⠿ bcf1feb44ac3 Pull complete                                                                                                        6.9s
   ⠿ 8a5de7784a0f Pull complete                                                                                                        7.4s
   ⠿ b8724b8a281a Pull complete                                                                                                        7.6s
   ⠿ a8a7c3f612d6 Pull complete                                                                                                        7.8s
   ⠹ 39b09b59e889 Downloading     [===============================================>   ]  82.07MB/87.28MB                               8.2s
   ⠹ 14bc3a6b0a94 Download complete                                                                                                    8.2s
........
[+] Running 6/6
 ⠿ Network crater_crater     Created                                                                                                   0.1s
 ⠿ Volume "crater_db"        Created                                                                                                   0.0s
 ⠿ Container crater-app-1    Started                                                                                                   1.5s
 ⠿ Container crater-db-1     Started                                                                                                   1.7s
 ⠿ Container crater-nginx-1  Started                                                                                                   1.3s
 ⠿ Container crater-cron-1   Started                                                                                                   1.8s

Once successful, verify if the containers are running.

$ docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                         NAMES
4f728dcc93a3   nginx:1.17-alpine   "nginx -g 'daemon of…"   42 seconds ago   Up 40 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp             crater-nginx-1
b88e2239c05a   mariadb             "docker-entrypoint.s…"   42 seconds ago   Up 39 seconds   0.0.0.0:33006->3306/tcp, :::33006->3306/tcp   crater-db-1
68a20e303d13   crater-php          "docker-php-entrypoi…"   42 seconds ago   Up 39 seconds   9000/tcp                                      crater-app-1
b95a02e7d805   crater_cron         "docker-php-entrypoi…"   42 seconds ago   Up 39 seconds   9000/tcp                                      crater-cron-1

Initiate the setup

sudo ./docker-compose/setup.sh

Proceed as below.

The links have been created.
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > Press Enter

Set the right permissions.

chmod -R 775 ~/crater/storage/framework/
chmod -R 775 ~/crater/storage/logs/
chmod -R 775 ~/crater/bootstrap/cache/

Access the Crater Web installation wizard.

Now we will proceed and access the Crater web installation wizard using the URL http://IP_Address or http://domain_name. You will be granted the requirements check page.

Install Crater Invoicing Solution on Debian 11 Debian 10

Proceed and check the system requirements.

Install Crater Invoicing Solution on Debian 11 Debian 10 1

If all the requirements are met as below, continue and check the folder permissions as well.

Install Crater Invoicing Solution on Debian 11 Debian 10 2

Configure the database as below

For Docker:

Database port:3306
Database Name: crater
Database Username: crater
Database Password: crater
Database Host: db

For the Manual installation.

Database port: 3306
Database Name: crater
Database Username: crater
Database Password: Passw0rd
Database Host: 127.0.0.1

The details should be filled in as shown below.

Install Crater Invoicing Solution on Debian 11 Debian 10 3

Proceed to the domain verification.

Install Crater Invoicing Solution on Debian 11 Debian 10 4

Configure your mail service.

Install Crater Invoicing Solution on Debian 11 Debian 10 5

Create a Crater user account.

Install Crater Invoicing Solution on Debian 11 Debian 10 6

Enter the company information.

Install Crater Invoicing Solution on Debian 11 Debian 10 7

Set the preferences, remember the currency set cannot be altered later.

Install Crater Invoicing Solution on Debian 11 Debian 10 8

Now save the changes made and continue with the installation. Once successful, you should see the below dashboard:

Install Crater Invoicing Solution on Debian 11 Debian 10 9

Use Crater Invoicing Solution.

Now we are set to use our Crater Invoicing Solution. Begin by creating a customer as below.

Install Crater Invoicing Solution on Debian 11 Debian 10 10

With a customer added, create the items list.

Install Crater Invoicing Solution on Debian 11 Debian 10 11

Using the created item list, create an invoice for a customer as below.

Install Crater Invoicing Solution on Debian 11 Debian 10 12

Save the invoice and it will appear as below.

Install Crater Invoicing Solution on Debian 11 Debian 10 13

Here, you can download and print the invoice or send it to the recipient using mail as shown.

Install Crater Invoicing Solution on Debian 11 Debian 10 14

With the above activities, you will have your dashboard updated as below.

Install Crater Invoicing Solution on Debian 11 Debian 10 15

That was enough learning!

We have gone through how to install Crater Invoicing Solution on Debian 11 / Debian 10. We have also seen how to get started with Crater Invoicing Solution. I hope this was beneficial.

Related posts:

Install Invoice Ninja on CentOS 8 | Rocky Linux 8

Top 5 Bitcoin Investors, You Should Know About it

Payment solutions for hotels – everything you need to know

Can You Use Bitcoin as A Payment Method?

.tdi_4.td-a-rec{text-align:center}.tdi_4 .td-element-style{z-index:-1}.tdi_4.td-a-rec-img{text-align:left}.tdi_4.td-a-rec-img img{margin:0 auto 0 0}@media(max-width:767px){.tdi_4.td-a-rec-img{text-align:center}}

RELATED ARTICLES

Most Popular

Recent Comments