Skip to Content
Installation

Install Crater

Send invoices and quotes from your own server, with an explanation of why the guide is built on the maintained fork.

Last reviewed:

What Crater is

An invoicing program. You set up customers and items, create an invoice, send it as a PDF or a link, and then see which ones are paid and which are not. There are also quotes, expenses and a simple report of what has come in.

Crater is narrower than an accounting program, and that is intentional. If you want the full bookkeeping, Akaunting is the right tool. If you just want to send professional-looking invoices without learning bookkeeping first, the invoicing program is the one that actually gets used.

Read this before you choose Crater

Crater is no longer maintained at any high pace. Long periods pass between changes on GitHub, and there is no finished Docker image from the project itself to point to. What is on Docker Hub under the name Crater is old test builds or builds by outsiders, and we do not recommend any of them.

The work continues instead in a fork called InvoiceShelf. It is the same program at its core, with the same interface, built further by other developers. That code was last changed in September 2026 and has an image that the project itself releases.

That is why the rest of this guide is about InvoiceShelf. You get what Crater is, with maintenance behind it. If you already run Crater, it is possible to move over, and the project describes the path in its own upgrade guide.

This is a server program

The program does not start with an installation file. It needs a web server, and the easiest way there is Docker. If you do not have Docker, start with Install Docker.

The setup below uses a database of the SQLite type, meaning a single file instead of a separate database service. That is more than enough for a company's invoices and makes the whole installation a single container. The project also offers variants with MySQL and PostgreSQL on its own Docker page, for those who outgrow it.

Windows and Linux Mint

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

services:
  invoiceshelf:
    image: invoiceshelf/invoiceshelf:latest
    ports:
      - "8080:8080"
    environment:
      - APP_NAME=Fakturor
      - APP_ENV=production
      - APP_DEBUG=false
      - APP_URL=http://localhost:8080
      - SESSION_DOMAIN=localhost
      - SANCTUM_STATEFUL_DOMAINS=localhost:8080
      - DB_CONNECTION=sqlite
      - DB_DATABASE=/var/www/html/storage/app/database.sqlite
      - CACHE_STORE=file
      - SESSION_DRIVER=file
      - AUTORUN_ENABLED=true
    volumes:
      - storage:/var/www/html/storage/
      - modules:/var/www/html/Modules/
    restart: unless-stopped

volumes:
  storage:
  modules:

The DB_DATABASE line must stay exactly as it is. It points to the database file inside the container, and if you change it the program will not find its own data.

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

cd $HOME\fakturor

On Linux Mint the program is called Terminal:

cd ~/fakturor

Then start it:

docker compose up -d

If you are in the wrong folder, Docker will answer that no compose.yaml was found. Otherwise wait a minute and open http://localhost:8080, and you will be taken to an installation guide in the browser where you create the company and the first account. We ran exactly this file and reached the guide.

That address only applies to your own computer, because that is what localhost means. Writing and sending invoices from one machine works perfectly well that way. If several people in the company need to invoice from their own computers, the program has to run on a machine that is always on, and then APP_URL, SESSION_DOMAIN and SANCTUM_STATEFUL_DOMAINS are changed to that address.

Three things to do first

  1. Fill in the company details properly in the setup guide: name, address and organization number. They are printed on every invoice, and an invoice without them gives the customer every right to question it.
  2. Set the currency to SEK and check the date format before you create the first invoice. The default setting is American, and an invoice dated 03/09/2026 means different things to different readers.
  3. Create a test invoice to yourselves and download the PDF. You see how it looks at the recipient's end and find the typo in the company name before a customer does.

The most common trap

Writing a company name with spaces in APP_NAME without quotation marks. We did that when we tested, and the container started but refused to do its job with the error message Failed to parse dotenv file. Encountered unexpected whitespace. It sounds more serious than it is. Write the name as one word, as in the file above, and then change it to the real one inside the program, where spaces are fully allowed.

The second thing to know concerns APP_URL and SANCTUM_STATEFUL_DOMAINS. The two must point to exactly the same address, including the port number. If they do not, the login page loads but does not accept the password, without explaining why. If you change the address, change it on both lines.

Cart

Loading