Skip to Content
Installation

Install Akaunting

Invoice and track the numbers in a program with a Swedish interface, and what it cannot do when it comes to Swedish accounting rules.

Last reviewed:

What Akaunting is

An accounting program. You set up customers and suppliers, send invoices, record what you pay, and then see in a report what has come in and what has gone out. The interface is available in Swedish.

For a company, the interesting part is not the bookkeeping itself but that the numbers add up. An invoice you send automatically becomes an entry that is unpaid until you mark it as paid. At year-end closing you get the result without anyone sitting through a weekend adding up receipts in a spreadsheet.

One thing should be said straight out: Akaunting is not built for Swedish accounting legislation. The chart of accounts is general, and the program knows nothing about the BAS chart of accounts or the requirements of the Swedish Tax Agency (Skatteverket). Always check with the person who handles your bookkeeping what your particular business should report and how. Akaunting keeps track of your numbers, but the accounting rules determine what that order should look like.

This is a server program

Akaunting needs a web server and a database. Docker gives you both in one file. If you do not have Docker, start with Install Docker.

Akaunting also runs a cloud service with paid tiers, and some features in the program are sold as plugins in their own store. The basic version you install here is enough for invoicing and ongoing bookkeeping. What costs money is listed at akaunting.com.

Windows and Linux Mint

The same file on both. Create a folder called akaunting in the home folder, that is in C:\Users\ert-namn on Windows and in /home/ert-namn on Linux Mint. Put a text file in the folder called compose.yaml:

services:
  db:
    image: mariadb:11
    environment:
      MARIADB_ROOT_PASSWORD: BYT_UT_MIG_1
      MARIADB_DATABASE: akaunting
      MARIADB_USER: akaunting
      MARIADB_PASSWORD: BYT_UT_MIG_2
    volumes:
      - dbdata:/var/lib/mysql
    restart: unless-stopped

  akaunting:
    image: akaunting/akaunting:latest
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      AKAUNTING_SETUP: "true"
      DB_HOST: db
      DB_PORT: "3306"
      DB_NAME: akaunting
      DB_USERNAME: akaunting
      DB_PASSWORD: BYT_UT_MIG_2
      DB_PREFIX: akn_
      APP_URL: http://localhost:8080
      LOCALE: sv-SE
      COMPANY_NAME: Ert foretag
      COMPANY_EMAIL: foretagets-adress@example.com
      ADMIN_EMAIL: foretagets-adress@example.com
      ADMIN_PASSWORD: BYT_UT_MIG_ADMIN
    volumes:
      - akdata:/var/www/html
    restart: unless-stopped

volumes:
  dbdata:
  akdata:

The two lines called BYT_UT_MIG_2 are the database passwords and must be exactly the same. BYT_UT_MIG_1 is a separate password that only the database uses internally, and BYT_UT_MIG_ADMIN is the one you log in with yourselves. Save all three where the company saves passwords.

Open the terminal and go into the folder. On Windows it is PowerShell:

cd $HOME\akaunting

On Linux Mint the program is called Terminal:

cd ~/akaunting

Then start:

docker compose up -d

If Docker answers that no compose.yaml was found, you are in the wrong folder. The first start otherwise takes a few minutes, because Akaunting installs itself before it opens. Then open http://localhost:8080 and log in with the address and password above. We just ran this file and logged in to the account that was created.

Now remove the line AKAUNTING_SETUP: "true" from compose.yaml and run docker compose up -d again. The project's own instructions are clear: the variable must never stay after the first start, because then Akaunting tries to reinstall itself every time the container starts.

The address only works on the computer where the container runs, because localhost always points to the machine you are sitting at. If the finance manager and someone else are to share the bookkeeping, sending the link is not enough. Then Akaunting needs to be on a machine that is on, reached at that machine's address, and APP_URL changed to the same address.

Three things to do first

  1. Set the currency to SEK and the correct financial year under Settings, before you send the first invoice. If you change the currency afterwards, old entries are not recalculated, and then nothing adds up.
  2. Fill in the company details properly: name, address and organization number. They appear on every invoice you send, and an invoice without sender details is an invoice the customer can question.
  3. Create a test invoice to yourselves and download it as a PDF. Then you see how it looks at the recipient's end, and you find the typo in the company name before a customer does.

The most common trap

Believing that the bookkeeping is done because the program is set up. Akaunting does what you enter, nothing more and nothing less. If you do not record the expenses, the result looks too good, and that only shows when you reconcile against the bank account.

So decide on a routine instead of an ambition: one person, once a week, fifteen minutes. All receipts in, all payments marked. It is more boring to write down than to do, and it is the only part of the bookkeeping that really determines whether the figures can be trusted.

The second thing to know concerns the volume akdata. It contains not only the program but also what you have uploaded, such as receipt images and the logo. The database sits separately, in dbdata. A backup that only takes one of them is no backup, so include both.

Cart

Loading