Skip to Content
Installation

Installera Paperless-ngx

Gör kvitton och fakturor sökbara med svensk textläsning, och få med raden som annars stoppar hela starten.

Vad Paperless-ngx är

Ett arkiv för papper. Ni skannar eller fotograferar en faktura, ett kvitto eller ett avtal, lägger filen i en mapp, och Paperless-ngx tar hand om resten. Den läser texten i bilden, gissar vem avsändaren är, sätter datum och taggar, och lägger dokumentet sökbart i arkivet.

Den där textläsningen heter OCR och är det som gör hela skillnaden. En fotograferad faktura är bara en bild, och en bild går inte att söka i. Efter OCR går den att söka i som vilken text som helst. Ni skriver leverantörens namn i sökrutan och får upp varje kvitto ni har från dem.

Ett företag samlar på sig mer papper än man tror: inköpskvitton, mässunderlag, avtal, fakturor. Vid bokslut ska allt redovisas, och ett arkiv där ni faktiskt hittar är värt mer än en pärm ingen har öppnat sedan förra året.

Det här är ett serverprogram

Paperless-ngx körs inte som ett program på datorn. Det behöver två delar: själva programmet och en kötjänst som heter Redis, som håller ordning på vilka dokument som väntar på att bearbetas. Docker startar båda på en gång. Har ni inte Docker, börja med Installera Docker.

Programmet är gratis och öppen källkod, utan någon molnversion från projektet självt. Det som finns är företag som driftar det åt andra, och de har inget med projektet att göra.

Windows och Linux Mint

Samma fil på båda. Skapa en mapp som heter paperless i hemmappen, alltså i C:\Users\ert-namn på Windows och i /home/ert-namn på Linux Mint, och två tomma undermappar som heter consume och export. I consume lägger ni filerna som ska in i arkivet. Lägg sedan en textfil som heter compose.yaml i paperless-mappen:

services:
  broker:
    image: redis:8
    volumes:
      - redisdata:/data
    restart: unless-stopped

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    depends_on:
      - broker
    ports:
      - "8000:8000"
    volumes:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    environment:
      - PAPERLESS_CONSUMER_POLLING=10
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_URL: http://localhost:8000
      PAPERLESS_TIME_ZONE: Europe/Stockholm
      PAPERLESS_OCR_LANGUAGE: swe+eng
      PAPERLESS_OCR_LANGUAGES: swe eng
      PAPERLESS_SECRET_KEY: BYT_UT_MIG
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: BYT_UT_MIG_ADMIN
    restart: unless-stopped

volumes:
  data:
  media:
  redisdata:

Öppna terminalen och gå in i mappen. På Windows är det PowerShell:

cd $HOME\paperless

På Linux Mint heter programmet Terminal:

cd ~/paperless

Starta sedan:

docker compose up -d

Hittar Docker ingen compose.yaml står ni i fel mapp, och cd-raden ovan är det som saknas. Första starten tar längre tid än ni tror, ofta fem minuter eller mer, eftersom språkpaketen för OCR hämtas hem och databasen sätts upp. Följ med i docker compose logs -f och vänta tills det står att Paperless har startat. Öppna sedan http://localhost:8000 och logga in med kontot ni satte i filen. Vi körde precis den här uppsättningen, och Paperless-ngx startade direkt med den senaste versionen och svensk OCR aktiv. Raden PAPERLESS_CONSUMER_POLLING ovan behövs särskilt på Windows, där Docker Desktop inte alltid märker nya filer i mappen på egen hand.

Adressen gäller bara den dator arkivet körs på. localhost betyder den egna maskinen, alltid, så en länk som skickas vidare leder mottagaren till mottagarens egen dator. Det spelar ingen roll så länge en person skannar och söker. Ska hela företaget komma åt arkivet måste Paperless ligga på en maskin som står på, nås på den maskinens adress, till exempel http://192.168.1.42:8000, och PAPERLESS_URL ändras till samma adress.

Tre saker att göra först

  1. Släng in tre riktiga kvitton i consume-mappen och se vad som händer. De försvinner ur mappen inom någon minut och dyker upp i arkivet. Ser ni inget, titta i loggen, för den säger rakt ut vad som gick fel.
  2. Lägg upp era vanligaste leverantörer som avsändare under Correspondents. Paperless lär sig efter hand vilka dokument som hör till vem, men den behöver några exempel först.
  3. Bestäm en enda regel för taggar och skriv ner den i företagets wiki. Tre taggar som används konsekvent slår tjugo som används ibland.

Den vanligaste fällan

Att sätta PAPERLESS_OCR_LANGUAGE till svenska och tro att det räcker. Den raden talar om vilket språk texten är på. Den installerar inte språket. Utan raden under, PAPERLESS_OCR_LANGUAGES, saknas själva ordlistan, och containern vägrar starta med ett fel som lyder ungefär the selected ocr language swe is not installed.

Vi gick rakt in i det när vi provade. Två rader, nästan samma namn, olika jobb: PAPERLESS_OCR_LANGUAGE väljer språket, PAPERLESS_OCR_LANGUAGES hämtar hem det. Har ni båda som i filen ovan fungerar svenska kvitton direkt.

Den andra saken att veta är att arkivet är ert enda exemplar om ni slänger papperet. Exportera därför hela arkivet med jämna mellanrum, till export-mappen som redan finns i filen:

docker compose exec webserver document_exporter ../export

Då ligger dokumenten som vanliga filer, läsbara utan Paperless. Kopiera den mappen till en annan disk, och ni har en säkerhetskopia värd namnet.