Installing Invoice Ninja on EndeavourOS Latest

Invoice Ninja is a free and open-source invoicing and billing software that simplifies creating and managing invoices, expenses, and quotes for your business. Here's how to install it on EndeavourOS Latest:

Step 1: Update the System

Before installing any new software, it's necessary to update the system to the latest version. To do this, open the terminal and run the following commands:

sudo pacman -Syu

Enter your password when prompted and wait for the update process to finish.

Step 2: Install LAMP Stack

Invoice Ninja requires a LAMP (Linux, Apache, MySQL, PHP) stack to run. So, we need to install it on our system.

To install the LAMP stack, run the following command:

sudo pacman -S apache mariadb php php-apache mariadb-clients

After installing the LAMP stack, start and enable the Apache and MySQL service with the following commands:

sudo systemctl start httpd
sudo systemctl start mariadb
sudo systemctl enable httpd
sudo systemctl enable mariadb

Step 3: Create a Database

To use Invoice Ninja, we need to create a new database to store its data. To create a new MySQL database, run the following commands:

sudo mysql -u root
CREATE DATABASE invoiceninja;
GRANT ALL PRIVILEGES ON invoiceninja.* TO 'ninjauser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;

In the commands above, invoiceninja is the name of the new database that we want to create, ninjauser is the database user, and password is the password for the user.

Step 4: Download and Install Invoice Ninja

To download and install Invoice Ninja, we first need to install the Git tool. To install Git, run the following command:

sudo pacman -S git

Once Git is installed, clone the Git repository of the latest version of Invoice Ninja using the following command:

git clone https://github.com/invoiceninja/invoiceninja.git /var/www/html/invoiceninja/

Next, navigate to the directory where Invoice Ninja was cloned, and run the following command:

cp .env.example .env

This command creates a new .env file in the current directory.

Then, edit the .env file by running the following command:

nano .env

In the .env file, locate the following lines:

DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

and replace them with:

DB_DATABASE=invoiceninja
DB_USERNAME=ninjauser
DB_PASSWORD=password

Exit the editor by pressing Ctrl+X, then Y.

Finally, set the correct permissions for the Invoice Ninja directory by running the following command:

sudo chown -R http:http /var/www/html/invoiceninja/

Step 5: Install Dependencies and Run Migrations

To install the Invoice Ninja dependencies and run the migrations, navigate to the invoiceninja directory and run the following commands:

cd /var/www/html/invoiceninja/
composer install --no-dev --prefer-dist
php artisan key:generate
php artisan migrate --seed

Step 6: Configure Apache

To configure Apache to serve the Invoice Ninja website, create a new virtual host configuration file by running the following command:

sudo nano /etc/httpd/conf/extra/ninja.conf

In the editor, paste the following lines:

<VirtualHost *:80>
  ServerName YOUR_SERVER_DOMAIN_NAME_OR_IP_ADDRESS
  DocumentRoot /var/www/html/invoiceninja/public/

  <Directory /var/www/html/invoiceninja/public/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
    Require all granted
  </Directory>

  ErrorLog /var/log/httpd/ninja_error_log
  CustomLog /var/log/httpd/ninja_access_log combined
</VirtualHost>

Replace YOUR_SERVER_DOMAIN_NAME_OR_IP_ADDRESS with your server's domain name or IP address. Save and close the editor by pressing Ctrl+X, then Y.

Next, enable the Apache rewrite module by running the following command:

sudo a2enmod rewrite

Finally, reload the Apache service with the following command:

sudo systemctl restart httpd

Step 7: Access Invoice Ninja

You can now access the Invoice Ninja website by opening your web browser and navigating to http://YOUR_SERVER_DOMAIN_NAME_OR_IP_ADDRESS. You should see the Invoice Ninja login page. Use the default login credentials to log in:

You can change the default credentials later in the Invoice Ninja settings.

That's it! You have successfully installed Invoice Ninja on EndeavourOS Latest. Enjoy!

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!