Installing Akaunting on Debian 11

Updated on January 12, 2022
Installing Akaunting on Debian 11 header image

Introduction

Akaunting is a free, open-source accounting software based on PHP, used to manage financial-related tasks in a business, such as tracking invoices, payments, and expenses. It can be installed on a cloud server or your personal computer, and it's suitable for small businesses. Some important features are:

  • Create, track, and manage unlimited bank and cash accounts.
  • Manage finances from multiple companies.
  • Detailed financial reporting using graphs for managerial decisions.
  • Client portal for sharing transactions and bulk online payments.
  • Task automation for major jobs that span long durations.
  • Multi-currency support.
  • Discount management system.

This article guides you on how to install Akaunting on Debian 11.0 server.

Prerequisites

Perform the following steps first:

1. Setup LAMP Stack

Update the system package list.

$ sudo apt update

Install PHP 7.4, Apache2, MariaDB server, and other required modules.

$ sudo apt install apache2 mariadb-server php7.4 libapache2-mod-php7.4 php7.4-json php7.4-common php7.4-gmp php7.4-curl php7.4-mysql php7.4-intl php7.4-sqlite3 php7.4-bcmath php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-cli php7.4-xml php7.4-zip php7.4-imap wget unzip -y

2. Setup Akaunting Database

Enable the database server to start automatically on a reboot.

$ sudo systemctl enable mysql

Verify the status of the database server.

$ sudo systemctl status mysql

Run mysql_secure installation script to set up MySQL security. This helps you prevent remote logins to your database server.

$ sudo mysql_secure_installation

When prompted, answer the questions as shown below:

  • Enter current password for root (enter for none): Press Enter.
  • Switch to unix_socket authentication? Press N, then Enter.
  • Change the root password? Press Y, then Enter.
  • Remove anonymous users? Press Y, then Enter.
  • Disallow root login remotely? Press Y, then Enter.
  • Remove test database and access to it? Press Y, then Enter.
  • Reload privilege tables now? Press Y, then Enter.

Log in to MySQL shell. At the prompt, enter your password to continue.

$ sudo mysql -u root -p

Create a database called akaunting. You can change the name to a preferred one.

CREATE DATABASE akaunting;

Create a database user called akauntinguser with a password StrongPassword. Modify the value StrongPassword with your own secure password.

CREATE USER 'akauntinguser'@'localhost' IDENTIFIED BY 'StrongPassword';

Grant the user full access to the database.

GRANT ALL ON akaunting.* TO 'akauntinguser'@'localhost' WITH GRANT OPTION;

Save the changes made to the database.

FLUSH PRIVILEGES;

Exit MySQL shell.

exit;

3. Install Akaunting

Download the latest version of Akaunting.

$ wget -O Akaunting.zip https://akaunting.com/download.php?version=latest

Create installation directory /var/www/akaunting/ in the webroot.

$ sudo mkdir -p /var/www/akaunting/

Extract the downloaded zipped archive into the installation directory.

$ sudo unzip Akaunting.zip -d /var/www/akaunting/

Set the ownership of the directory to the webroot user and group.

$ sudo chown www-data:www-data -R /var/www/akaunting/

Change the access permissions.

$ sudo chmod -R 755 /var/www/akaunting/

4. Configure Apache2

Enable the Apache service to start automatically on a reboot.

$ sudo systemctl enable apache2

Verify the status of the Apache service.

$ sudo systemctl status apache2

Create a new Apache configuration file called akaunting.conf.

$ sudo nano /etc/apache2/sites-available/akaunting.conf

Copy and paste the code below, then save and exit the file.

<VirtualHost *:80>

    ServerAdmin localhost
    DocumentRoot /var/www/akaunting/
    ServerName example.com
    ServerAlias www.example.com
    
    <Directory /var/www/akaunting/>
        DirectoryIndex index.php
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Disable Apache default configuration file.

$ sudo a2dissite 000-default.conf

Enable Akaunting Apache configuration file.

$ sudo a2ensite akaunting.conf

Enable Apache rewrite mode.

$ sudo a2enmod rewrite

Allow firewall through port 80.

$ sudo ufw allow 80/tcp

Restart Apache service.

$ sudo systemctl restart apache2

5. Access Akaunting Web Interface

To access the Akaunting Web Interface, go to your browser and visit http://Server_IP/. For example:

http://192.0.2.10/

Conclusion

You have installed Akaunting on Debian 11 server. On the web interface you accessed, continue with the installation process by creating an administrator account, and connecting to your database using the credentials you used. To learn more about accounting, visit website official documentation.