Akaunting on Ubuntu 24.04

(PHP 8.3/8.2 + MySQL/MariaDB + Nginx or Apache + SSL)

Akaunting is a modern, open-source accounting and business management platform designed for small businesses, freelancers, and startups. It provides essential financial tools such as invoicing, expense tracking, bank accounts, payments, taxes, reports, and multi-currency support — all accessible through a clean, web-based interface.

Unlike proprietary accounting SaaS platforms, Akaunting can be fully self-hosted, giving you full ownership of your financial data, predictable costs, and the freedom to customize or extend the system using apps and integrations.

Running Akaunting on Ubuntu 24.04 LTS (Noble Numbat) provides a secure, modern, and long-term supported operating system, making it an excellent foundation for a production-grade accounting system. Ubuntu 24.04 includes OpenSSL 3, systemd 255, and up-to-date PHP and database packages, ensuring compatibility, performance, and security.


Architecture Overview

LayerComponentRole
OSUbuntu 24.04 LTSStable, long-term supported Linux base
Web ServerNginx or ApacheServes the Akaunting web application
RuntimePHP 8.3 / 8.2 (FPM)Executes Akaunting backend logic
DatabaseMySQL / MariaDBStores accounting data and settings
ApplicationAkaunting (Laravel)Accounting, invoicing, reporting
TLSLet’s Encrypt / PKIEncrypted HTTPS access
ExtensionsAkaunting AppsAdd features like payroll, CRM, POS

Akaunting is built on Laravel, which ensures a clean architecture, strong security practices, and long-term maintainability.


Why Use Akaunting?

  • Free & open-source accounting software
  • Self-hosted – full control over financial data
  • Invoices & bills – manage income and expenses easily
  • Multi-currency & tax support – ideal for international businesses
  • Bank accounts & transactions – track balances and cash flow
  • Professional reports – profit & loss, balance sheet, taxes
  • App marketplace – extend functionality as your business grows
  • Modern UI – easy to use, even for non-accountants

Akaunting is ideal for businesses that want simple accounting without SaaS lock-in.


Akaunting vs Other Accounting Platforms

Feature / CapabilityAkauntingQuickBooksXeroOdoo Accounting
HostingSelf-hostedCloud onlyCloud onlySelf / Cloud
Open-source✅ Yes❌ No❌ No✅ Partial
Data ownershipFull controlVendor-controlledVendor-controlledPartial
Invoicing✅ Yes✅ Yes✅ Yes✅ Yes
Multi-currency✅ Yes✅ Yes✅ Yes✅ Yes
CostFree (self-hosted)PaidPaidFree / Paid

Akaunting stands out for simplicity, transparency, and cost efficiency.


Security & Best Practices on Ubuntu 24.04

  • Serve Akaunting only over HTTPS.
  • Use PHP-FPM with Nginx or Apache for better isolation.
  • Restrict database access to localhost only.
  • Store sensitive data (DB credentials, app keys) in .env.
  • Set correct file permissions for storage/ and bootstrap/cache/.
  • Enable UFW and allow only ports 80 and 443.
  • Schedule cron jobs for recurring tasks and reports.
  • Regularly update:
    • Ubuntu system packages
    • PHP extensions
    • Akaunting core and apps
  • Back up:
    • Database
    • .env file
    • Uploaded documents and invoices
  • Restrict admin access and use strong passwords.

Typical Use Cases

  • Small businesses managing daily accounting
  • Freelancers & consultants issuing invoices and tracking expenses
  • Startups needing basic but reliable accounting
  • International companies working with multiple currencies
  • Self-hosted business stacks combined with CRM or ERP tools
  • Accountants managing multiple small clients

Deploying Akaunting on Ubuntu 24.04 gives you a secure, modern, and fully self-hosted accounting solution — combining essential financial tools with full data ownership, long-term OS support, and zero mandatory licensing costs.


Step 1: Create a Server Instance on Shape.Host

Before installing Akaunting, you need a VPS.

Log in to https://shape.host

Click Create → Instance

Shape.host Resources dashboard with Create > Instance highlighted.

Choose a data center close to your users

Shape.host instance form with the data center location selector highlighted.

Select a VPS plan with at least:

2 CPU cores

4 GB RAM

40 GB SSD storage

Choose Ubuntu 24.04 (64-bit) as the operating system

Shape.host instance form with the operating system image selector highlighted.

Create the instance and wait for provisioning

Shape.host instance form with the Create Instance button highlighted.

Copy the public IP address of the server

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to the Server

After your VPS is created, you must connect to it via SSH as the root user.

Option A: Linux & macOS

Open a terminal and run:

ssh root@YOUR_SERVER_IP
  • Replace YOUR_SERVER_IP with the public IP address of your server
  • Confirm the fingerprint when prompted
  • You will be logged in as root

Option B: Windows (PowerShell / Windows Terminal)

Modern versions of Windows (Windows 10 and newer) include a built-in SSH client.

  1. Open PowerShell or Windows Terminal
  2. Run:
ssh root@YOUR_SERVER_IP
  1. Type yes when asked to confirm the host key
  2. Enter the root password (or SSH key authentication will be used if configured)

You are now connected to the server.


Option C: Windows (PuTTY)

If you prefer PuTTY:

  1. Download PuTTY from the official site
  2. Open PuTTY
  3. In Host Name (or IP address), enter your server IP
  4. Set:
    • Port: 22
    • Connection type: SSH
  5. Click Open
  6. Log in as:
    • Username: root
    • Password: your server password

Once connected, you will see a Linux shell prompt and can continue with the installation.


Step 3: Update the Operating System

apt update
  • Refreshes the package index
  • Ensures the system knows about the latest available packages
apt upgrade -y
  • Installs all available system updates
  • Improves security and stability before installing new software
Terminal showing APT package management commands and output.

Step 4: Install Apache Web Server

apt install apache2
  • Installs the Apache HTTP web server
Terminal showing APT package management commands and output.
systemctl enable apache2
  • Configures Apache to start automatically at boot
systemctl start apache2
  • Starts the Apache service
systemctl status apache2
  • Verifies that Apache is running correctly

Apache will serve Akaunting’s web interface.

Terminal showing systemd service management commands or output.

Step 5: Install and Configure MariaDB

apt install mariadb-server
  • Installs the MariaDB database server
Terminal showing APT package management commands and output.
systemctl enable mariadb
  • Enables MariaDB at system startup
systemctl start mariadb
  • Starts the database service
Terminal showing systemd service management commands or output.

Secure the database

mysql_secure_installation

This interactive script:

  • Sets a root password
  • Removes anonymous users
  • Disables remote root login
  • Removes test databases
Terminal showing MariaDB/MySQL database security configuration prompts.

Create the Akaunting database

mariadb

Inside MariaDB:

CREATE DATABASE akaunting CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • Creates a database using full Unicode support
CREATE USER 'akaunting'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
  • Creates a dedicated database user
GRANT ALL PRIVILEGES ON akaunting.* TO 'akaunting'@'localhost';
  • Grants full access only to the Akaunting database
FLUSH PRIVILEGES;
EXIT;
Terminal showing SQL database and user configuration commands.

Step 6: Install PHP 8.1 and Required Extensions

Akaunting officially supports PHP 8.1, so we install it via the Ondřej Surý PPA.

apt install ca-certificates apt-transport-https software-properties-common
  • Installs tools required to add external repositories
Terminal showing APT package management commands and output.
add-apt-repository ppa:ondrej/php
  • Adds the PHP repository with multiple PHP versions
Terminal showing APT package management commands and output.
apt update
  • Refreshes package lists
Terminal showing APT package management commands and output.
apt install php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-bcmath php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-xml php8.1-zip php8.1-fileinfo php8.1-tokenizer php8.1-opcache

These extensions are required for:

  • Database access
  • File uploads
  • PDF generation
  • Localization
  • Performance optimization
Terminal showing APT package management commands and output.

Verify PHP:

php -v
Terminal showing php commands or output during Install PHP 8.1 and Required Extensions.

Step 7: Configure PHP for Akaunting

nano /etc/php/8.1/apache2/php.ini

Update or confirm the following values:

memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = Europe/Bucharest

These settings ensure:

  • Large invoices and attachments work correctly
  • Long-running operations don’t fail
  • Correct timezone handling

Apply changes:

systemctl restart apache2
Terminal showing systemd service management commands or output.

Step 8: Download and Prepare Akaunting

cd /var/www
  • Moves to the web root directory
wget https://akaunting.com/download.php?version=latest -O akaunting.zip
  • Downloads the latest Akaunting release
Terminal showing file download commands and transfer output.
apt install unzip
  • Installs the unzip utility
Terminal showing systemd service management commands or output.
unzip akaunting.zip -d akaunting
  • Extracts Akaunting into /var/www/akaunting

Set correct permissions

chown -R www-data:www-data /var/www/akaunting
  • Assigns ownership to Apache
chmod -R 755 /var/www/akaunting
  • Sets secure default permissions
chmod -R 775 /var/www/akaunting/storage
chmod -R 775 /var/www/akaunting/bootstrap/cache
  • Allows Akaunting to write cache, logs, and uploads
Terminal showing file ownership or permission commands.

Step 9: Configure Apache Virtual Host

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

Paste:

<VirtualHost *:80>
    ServerName yourdomain.com
    DocumentRoot /var/www/akaunting

    <Directory /var/www/akaunting>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/akaunting_error.log
    CustomLog ${APACHE_LOG_DIR}/akaunting_access.log combined
</VirtualHost>
Terminal showing web server configuration text.

Enable the site and required modules:

a2ensite akaunting.conf
a2enmod rewrite
systemctl reload apache2
Terminal showing systemd service management commands or output.

Step 10: Enable SSL with Let’s Encrypt

apt install certbot python3-certbot-apache
  • Installs Certbot with Apache integration
Terminal showing APT package management commands and output.
certbot --apache -d ubuntu-tutorials.shape.host

Replace with your actual domain:

yourdomain.com

Certbot will:

  • Issue a free SSL certificate
  • Automatically configure HTTPS
  • Enable automatic certificate renewal
Terminal showing Certbot certificate commands and messages.

Step 11: Complete Akaunting Web Installation

Open your browser:

https://yourdomain.com

Follow the Akaunting installer:

Akaunting setup wizard with language selection.

Enter database credentials

Akaunting installer database connection form.

Configure company details

Create the admin account

Akaunting installer company and administrator details form.

Sign in.

Akaunting administrator account setup form.

Finish installation.

Akaunting company setup form with financial year and API key settings.

Dashboard.

Akaunting users screen with a missing API key warning.

You have successfully installed Akaunting on Ubuntu 24.04 using Apache, MariaDB, PHP 8.1, and secured it with Let’s Encrypt SSL. This setup is stable, secure, and fully suitable for production accounting workloads.

For hosting financial and business-critical applications with full control, performance, and scalability, Shape.Host Linux SSD VPS provides a reliable foundation for modern self-hosted infrastructure.