Getty Images/iStockphoto

Your small business data center isn’t complete without an accounting tool. Although you might be tempted to head directly toward Quickbooks or another, proprietary solution, why not first try out an open source, on-premise solution? One such option is Akaunting.

Akaunting features:

  • Customer/vendor management

  • Inventory management

  • Multi-company support

  • Online accounting

  • Easy invoicing

  • Billable expenses

  • Bank accounts

  • Reporting

  • Deposits and transfers

  • Various payments

  • Multi-currency

  • Client portal

  • Installable modules

Akaunting can be installed on any Linux server in your data center. I’m going to walk you through the installation process on Ubuntu Server 18.04.

SEE: Hiring kit: Database administrator (TechRepublic Premium)

What you’ll need

The only things you’ll need to get Akaunting installed are:

  • A running (and updated) instance of Ubuntu Server 18.04

  • A user account with sudo privileges

How to install dependencies

The first thing we’re going to do is install the necessary dependencies. To do this, log in to your Ubuntu server and issue the command:

sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-imap php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-intl php7.2-mysql php7.2-cli php7.2-ldap php7.2-zip php7.2-curl unzip -y

Once that command completes, the dependencies are taken care of.

How to configure PHP

Next we need to configure PHP. To do that, issue the command:

sudo nano /etc/php/7.2/apache2/php.ini

Use the Ctrl+W nano keyboard shortcut to locate and edit the following, making sure to change each entry as shown:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 30M
post_max_size = 40M
max_execution_time = 60
zend.assertions = 0
display_errors = Off
max_input_vars = 1500
date.timezone = YOUR/TIMEZONE

Where YOUR/TIMEZONE is the actual timezone of your business.

Save and close the file.

Restart and enable both Apache and MariaDB with the following commands:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mariadb
sudo systemctl enable mariadb

How to secure the database configuration

The first thing to take care of is to secure the database installation. This is done with the command:

sudo mysql_secure_installation

You’ll be asked to set a new admin user password and answer a few questions. Make sure to answer yes (Y) for each question.

Now we can create our database and database user. Access the MariaDB console with the command:

sudo mysql -u root -p

Once at the database prompt, issue the following commands (making sure to substitute PASSWORD with a strong, unique password):

CREATE DATABASE akauntingdb;
CREATE USER 'akaunting'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL ON akauntingdb.* TO 'akaunting'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

How to install Akaunting

It’s finally time to install Akaunting. First, download the required file with the command:

curl -O -J -L

Create a new directory and unzip the downloaded file with the following commands:

sudo mkdir -p /var/www/html/akaunting
sudo unzip Akaunting_*.zip -d /var/www/html/akaunting/

Change the permissions and ownership with the following commands:

sudo chown -R www-data:www-data /var/www/html/akaunting/
sudo chmod -R 755 /var/www/html/akaunting/

How to configure Apache

The last step to take in the terminal window is the configuration of Apache. Create a new virtual host configuration file with the command:

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

In that new file, paste the following (substituting your information for EMAIL and NAME):

ServerAdmin EMAIL
DocumentRoot /var/www/html/akaunting
ServerName NAME
DirectoryIndex index.html 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.

Enable the new site with the command:

sudo a2ensite akaunting

Finally, enable the Apache rewrite module and restart Apache with the following commands:

sudo a2enmod rewrite
sudo systemctl restart apache2

How to finish the install

The final steps are taken care of in the web interface. Point your browser to http://SERVER_IP/akaunting/index.php (where SERVER_IP is the IP address of the hosting server). On the first screen, select your language and click Next. In the resulting window (Figure A), configure the information for the database as such:

  • Hostname: localhost

  • Username: akaunting

  • Password: The password you set during the database creation

  • Database: akauntingdb

Figure A

Click Next and then customize your Company And Admin Details (Figure B).

Figure B

Note: The admin email and password you set will be the credentials used to log in to Akauting as the administrator. Click Next and you’ll then be prompted to log in. Once you’re logged in, you’ll be greeted by the setup Wizard (Figure C).

Figure C

Walk through the Wizard to configure your company information, currencies, and taxes. On the first page of this wizard, you must retrieve a token from Akaunting. Click the Click Here link and you’ll be prompted to create a free Akaunting account. Once you’ve created and verified your account, log in to your Akaunting account and locate your token. Copy the token and paste it into the Token entry on the first page of the Wizard and click Save.

The remainder of the Wizard is self-explanatory. Once you complete the setup, you can either access the Akaunting Dashboard or install apps to expand its feature set. The apps (such as Double Entry, Estimates, Inventory, and Projects) have an associated cost, but they might well be worth the price–if you needed the added features.

And that’s it. Your Akaunting web-based accounting software is up and running and ready to be used. This is an impressive package that should be able to help your small business in ways many of the standard client-based applications cannot.