Financial management is the lifeblood of every business, from freelancers to medium-sized enterprises. However, business owners are often faced with two difficult choices: using manual spreadsheets prone to errors, or subscribing to premium accounting software that drains monthly operational costs.
This is where Akaunting comes in as a brilliant middle-ground solution. As web-based software, Akaunting offers the flexibility of access from anywhere, but with the power and data security that you control yourself.
This article will guide you step-by-step to build a self-hosted accounting system using Akaunting on an Ubuntu server.
What Is Akaunting?
Akaunting is free and open-source online accounting software. Built using modern web technologies like Laravel (PHP framework), VueJS, and Tailwind, Akaunting is designed to provide a smooth and responsive user experience.
Their philosophy is simple: “Akaunting is to accounting what WordPress is to blogging.” This means they want to democratize access to professional financial tools so they can be used by anyone without the barrier of licensing fees.
Key Features
Akaunting is more than just an income and expense recorder. Its features are designed to cover almost every aspect of the business financial cycle:
- Cash Flow Management: Track bank account balances and money movement in real-time.
- Invoices & Bills: Create professional invoices and send them directly to clients.
- Customer & Vendor Management: Keep your business contact database organized.
- Multi-Currency: Support for foreign currencies with automatic exchange rate synchronization.
- Comprehensive Reports: Balance Sheet, Profit & Loss, and Tax Reports available in a single click.
- Client Portal: Provide special access for clients to view transactions and pay their bills.
Self-Hosted (On-Premise) Plan
One of Akaunting’s biggest advantages is the On-Premise option. Unlike the Cloud version managed by the Akaunting team, the On-Premise version allows you to download the source code and install it on a private server (VPS or Local).
The Benefits:
- Data Privacy: Your financial data is 100% in your hands; no third party has access.
- Customization: Because it is open-source, your developers can modify the code to suit specific needs.
- Cost-Effective: The core version of this software is free forever. You only need to pay for server/hosting rental costs.
System Requirements
Before starting the installation, ensure your Ubuntu server meets the following specifications for Akaunting to run optimally:
- Web Server: Apache or Nginx.
- Database: MariaDB 10.3+ or MySQL 5.7+.
- PHP: Version 8.1 or newer.
- PHP Extensions:
BCMath,Ctype,Fileinfo,JSON,Mbstring,OpenSSL,PDO,Tokenizer,XML,Zip.
Installing Akaunting on Ubuntu
In this guide, we will use the LAMP stack (Linux, Apache, MariaDB, PHP) on Ubuntu 24.04.
Step 1: Update System & Install Apache
Always start by updating your system package repository.
sudo apt update
sudo apt upgrade -yInstall the Apache web server and certbot:
sudo apt install apache2 certbot python3-certbot-apache -yLangkah 2: Install Database MariaDB
Akaunting requires a database to store all transaction data.
sudo apt install mariadb-server -yNext, create a database and user for Akaunting. Log in to the MariaDB console:
sudo mariadbRun the following SQL commands (replace strongpassword with your own password):
CREATE DATABASE akaunting;
CREATE USER 'akaunting'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON akaunting.* TO 'akaunting'@'localhost';
FLUSH PRIVILEGES;
exitStep 3: Install PHP and Supporting Modules
Add the ondrej/php PPA repository:
sudo add-apt-repository ppa:ondrej/php -y
sudo apt upgrade -yInstall PHP 8.3 and its extensions:
sudo apt install libapache2-mod-php8.3 php8.3 php8.3-cli php8.3-common php8.3-mbstring php8.3-gd php8.3-intl php8.3-xml php8.3-mysql php8.3-zip php8.3-curl php8.3-tidy php8.3-imagick php8.3-bcmath -y Step 4: Download Akaunting
We will download the latest version of Akaunting. Visit the download page or use the following command:
Download the Akaunting zip file:
wget https://akaunting.com/download.php?version=latest -O akaunting.zip Install unzip and extract the file to the web root directory:
sudo apt install unzip -y
sudo mkdir -p /var/www/akaunting
sudo unzip akaunting.zip -d /var/www/akauntingSet directory ownership. This is crucial so Apache can write files (image uploads, cache, updates):
sudo chown -R www-data:www-data /var/www/akaunting/Step 5: Configure Apache Virtual Host
Create an Apache virtual host configuration file:
sudo nano /etc/apache2/sites-available/akaunting.confFill it with the following configuration (replace akaunting.yourdomain.com with your actual domain):
<VirtualHost *:80>
ServerName akaunting.yourdomain.com
DocumentRoot /var/www/akaunting
<Directory /var/www/akaunting>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/akaunting_error.log
CustomLog /var/log/apache2/akaunting_requests.log combined
</VirtualHost>
Then enable the configuration:
sudo a2ensite akaunting.conf
sudo systemctl restart apache2Step 6: Secure with SSL (HTTPS)
Request an SSL certificate for akaunting.yourdomain.com:
sudo certbot --non-interactive \
-m [email protected] \
--agree-tos \
--no-eff-email \
--apache -d akaunting.yourdomain.com \
--redirectStep 7: Installation via Web Wizard
Now, open your browser and access your domain: https://akaunting.yourdomain.com. You will be greeted by the Akaunting installation page.
- Select Language
- Database Setup: Enter the details created in Step 2.
- Hostname:
localhost - Database Name:
akaunting - Username:
akaunting - Password:
strongpassword
- Hostname:
- Admin Account: Enter the company name, email, and password for the admin login.
Click the Install button, wait a few moments, and you will be redirected to the Akaunting Dashboard.
Conclusion
Congratulations! You now have an enterprise-grade accounting system running on your own server. With Akaunting, you not only save on operational costs but also take a major step in maintaining the sovereignty of your business financial data.
The next steps are to complete your company profile, set up currencies, and start recording your first transactions. Happy managing your finances smarter and more efficiently!




