How To Install Akaunting Self-Hosted Accounting Software on Debian 10 Buster

This tutorial will be showing you how to install Akaunting on Debian 10 Buster with Apache or Nginx web server. Akaunting is a free, open-source self-hostable account software. You can use it for tracking personal finance or modest business account .

Akaunting Features

  • Completely Free and open source.
  • Easy-to-use web-based Interface. See your financials online anytime, anywhere on your Mac, PC, tablet or mobile phone.
  • Mobile & Tablet Ready Interface
  • Multilingual Admin & Client Panel
  • Designed For Small Businesses
  • 100% Financial Data Ownership
  • Lifetime FREE Updates
  • You can create clients and send invoices to them. You can also set a password so they could to access the client portal.
  • Send professional invoices to clients and start accepting online payments, no commission/transaction fee.
  • Add deposits to and transfers between accounts and keep the balance of your bank accounts active.
  • Create vendors so you could assign bills and payments to them and later filter their transactions easily.
  • Create and manage bills so your finances are always accurate and healthy. Know what and when to pay.
  • Add non-billable expenses as payments in order to keep your bank/cash account balances up-to-date.
  • Enable inventory tracking and manage goods as they come in and go out. Items also speed up invoicing.
  • Create unlimited bank and cash accounts and track their opening and current balances.
  • Send invoices and add expenses in any currency and let the system convert them in your main currency.
  • Manage the finances of multiple companies from one admin panel. Assign users to different companies.
  • Get detailed financial reports to help you better visualize all the information you need to improve your business.
  • Extend Akaunting by installing apps from the app store, you can install or purchase anything.
  • Configure permissions on a Role level to protect and simplify their management experience.

Prerequsites of Installing Akaunting on Debian 10 Buster

first, you need a Debian server with at least 512MB RAM. If you are looking for a VPS ( virtual private server ), then you can click this special radio link to create an account on Vultr to get $ 50 free credit ( for modern users only ). once you have an account at Vultr, install Debian 10 Buster on your waiter and follow the instructions below .
Akaunting requires PHP and MySQL/MariaDB. To follow this tutorial, you should have already set up a LAMP stack or LEMP stack. If you prefer to use Apache world wide web server, then install LAMP push-down list .
If you prefer to use Nginx web server, then install LEMP push-down storage.

You besides need a sphere name, so your clients can see the bill via your domain identify. I registered my domain name at NameCheap because the price is gloomy and they give whois privacy protection free for animation .
now let ’ s install Akaunting .

Step 1: Download Akaunting Install Zip File on Debian 10 Buster Server

Log into your Debian 10 waiter and use the comply command to download the latest stable version of Akaunting .

wget -O

then create a directory under the web root for Akaunting .

sudo mkdir -p /var/www/akaunting/

Extract the zip up archive with unzip .

sudo apt install unzip
sudo unzip -d /var/www/akaunting/

The -d option specifies the target directory. Akaunting web files will be extracted to /var/www/akaunting/. then we need to change the owner of this directory to www-data so that the web waiter can write to this directory .

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

Step 2: Create a Database and User in MariaDB

Log into MariaDB database server with the surveil command. Since MariaDB is immediately using unix_socket plugin to authentication drug user login, there ’ s no necessitate to enter MariaDB root password. We good need to prefix the mysql command with sudo .

sudo mysql

then create a database for Akaunting. This tutorial names the database akaunting. You can use whatever diagnose you like .

create database  akaunting;

Create the database exploiter. Again, you can use your favored list for this drug user. Replace your-password with your prefer password .

create user  accountant@localhost identified by ' your-password';

Grant this drug user all privileges on the akaunting database .

grant all privileges on  akaunting.* to  accountant@localhost;

Flush privileges and passing .

flush privileges;


Step 3: Install PHP Modules

Run the trace commands to install PHP modules required or recommended by Akaunting .

sudo apt install php-imagick php7.3-common php7.3-mysql php7.3-gd php7.3-bcmath php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl

then restart Apache. ( If you use Nginx, you don ’ t need to restart Nginx. )

sudo systemctl restart apache2

Step 4: Setting Up Web Server

We can use Apache or Nginx web server .


If you prefer Apache, create a virtual host file for Akaunting with a command line text editor like Nano .

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

Put the following textbook into the file. Replace the red-colored text with your actual data. Don ’ triiodothyronine forget to set DNS A phonograph record for the domain appoint at your world registrar ’ s DNS coach .

    DocumentRoot /var/www/akaunting/

       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted

ErrorLog ${APACHE_LOG_DIR}/akaunting.error.log
CustomLog ${APACHE_LOG_DIR}/akaunting.access.log combined

Save and close the file. then enable this virtual host .

sudo a2ensite akaunting.conf

We need to enable the rewrite module .

sudo a2enmod rewrite

Restart Apache for the changes to take effect .

sudo systemctl restart apache2

now visit and you will be redirected to the apparatus sorcerer page ( ). If you see the nonpayment Apache page rather of the frame-up charming, then you need to disable the default virtual host .

sudo a2dissite 000-default.conf

And restart Apache .
Before entering any information in the apparatus charming, we need to enable HTTPS .


If you prefer Nginx, create a akaunting.conf file in /etc/nginx/conf.d/ directory .

sudo nano /etc/nginx/conf.d/akaunting.conf

Put the following text into the file. Replace the red-colored text with your actual datum. Don ’ t forget to set DNS A record for the world name in your DNS coach .

server {
    listen      80;

    root /var/www/akaunting/;
    index index.php index.html index.htm;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;

    # Prevent Direct Access To Protected Files
    location ~ \.(env|log) {
        deny all;

    # Prevent Direct Access To Protected Folders
    location ~ ^/(^app$|bootstrap|config|database|resources|routes|storage|tests|artisan) {
        deny all;
    # Prevent Direct Access To modules/vendor Folders Except Assets
    location ~ ^/(modules|vendor)\/(.*)\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ {
        deny all;
    error_page 404 /index.php;

    access_log  /var/log/nginx/akaunting.access.log;
    error_log   /var/log/nginx/akaunting.error.log;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    location ~ /\.(?!well-known).* {
        deny all;


Save and close the file. then quiz Nginx configuration .

sudo nginx -t

If the test is successful, reload Nginx for the changes to take effect.

sudo systemctl reload nginx

now visit and you will be redirected to the setup ace page ( ). Before entering any information in the frame-up sorcerer, we need to enable HTTPS .

Step 5: Enabling HTTPS

To encrypt the HTTP dealings, we can enable HTTPS by installing a free TLS certificate issued from Let ’ s Encrypt. Run the postdate instruction to install Let ’ s Encrypt client ( certbot ) on Debian 10 Buster server .

sudo apt install certbot

If you use Apache, you besides need to install the Certbot Apache plugin .

sudo apt install python3-certbot-apache

And run this command to obtain and install TLS certificate .
If you use Nginx, install the Certbot Nginx plugin .

sudo apt install python3-certbot-nginx

adjacent, run the play along command to obtain and install TLS certificate .

  • --nginx: Use the nginx plugin.
  • --apache: Use the Apache plugin.
  • --agree-tos: Agree to terms of service.
  • --redirect: Force HTTPS by 301 redirect.
  • --hsts: Add the Strict-Transport-Security header to every HTTP response. Forcing browser to always use TLS for the domain. Defends against SSL/TLS Stripping.
  • --staple-ocsp: Enables OCSP Stapling. A valid OCSP response is stapled to the certificate that the server offers during TLS.

The certificate should now be obtained and automatically installed .
akaunting certbot https

Step 6: Finish Installation with the Setup Wizard

now go to and the apparatus ace will appear. The inaugural footstep is to choose your linguistic process .
install akaunting debian 10 buster
then enter the database information. Use the database name and database exploiter you created earlier .
install akaunting with apache web server
next, enter company name and create an admin score .
install akaunting with nginx web server
once that ’ s done, you can log into the admin panel .
akaunting debian 10 buster
After logging in, you need to follow the charming to create your first ship’s company .
akaunting setup wizard
now you can manage your finance in the web-based admin dialog box .
akaunting self-hosted accounting for small businesses

Step 7: Configure SMTP

To send out emails ( such as account registration, password reset, sending invoices to clients, etc ), you need to configure an SMTP server. The SMTP settings are available at Settings – > Email – > Protocol. Use the keep up settings .

  • Protocol: SMTP
  • SMTP host: the hostname of your mail server like
  • SMTP port: 587
  • Create an email address on your mail server and enter the SMTP username and password.
  • SMTP security: TLS

akaunting smtp settings
If you would like to use your own mail server to send emails to clients, please check out the watch article to set up your own mail server. Note that I highly recommend running iRedMail mail server on a fresh clean OS. Installing iRedMail on an OS that has other web applications can fail, and likely break existing applications .
If you would like to use a SMTP relay service, I recommend Mailjet. You can follow the tutorial below to set up SMTP relay on your Akaunting server and you should be able to send bill to clients .

Wrapping Up

I hope this tutorial helped you install Akaunting on Debian 10 Buster server. As always, if you found this post useful, then subscribe to our exempt newsletter to get more tips and tricks. Take care 🙂
rate this tutorial






source :
Category : Tech FAQ

Related Posts

Leave a Reply

Your email address will not be published.