Hoppa till innehåll
Installation

Installera Nextcloud

Kör företagets egen filyta i Docker: mappar, delningslänkar, kalender och synk mot datorn, på Windows eller Linux Mint.

Vad ni får ut av det här

När ni är klara har företaget en egen filyta. Affärsplanen, bilderna, kalkylerna och protokollen ligger på ett ställe som ni själva äger, alla kommer åt dem från webbläsaren eller mobilen, och filerna synkas mot datorn som vilken mapp som helst. Ni får också kalender, uppgiftslistor och möjligheten att skicka en delningslänk till en kund utan att bifoga en fil i ett mejl.

Det finns en poäng till, och den är värd att ta på allvar. När ni kör Nextcloud själva ligger företagets filer på en server ni valt, i ett land ni valt, och ni kan svara på frågan var personuppgifter lagras utan att gissa. Det är precis den frågan GDPR handlar om.

Det här behöver ni innan ni börjar

  • Docker installerat på en dator med Windows eller Linux Mint. Guiden Installera Docker går igenom det steg för steg, och den här guiden börjar där den slutar.
  • Minst 4 GB ledigt minne på datorn. Nextcloud och databasen kör samtidigt och vill ha utrymme.
  • 10 GB ledigt på disken till att börja med, mer om ni ska lägga in mycket bilder eller video.
  • En plats där företaget sparar lösenord. Ni skapar fyra stycken i den här guiden och ni kommer att behöva dem igen. Har ni ingen sådan plats, ta Installera Vaultwarden först.
  • Två personer som gör det tillsammans. Den som installerar ensam blir också den som får rycka ut ensam varje gång något krånglar.

Tidsåtgång och svårighetsgrad

Räkna med en eftermiddag för hela guiden. Själva installationen tar tjugo minuter när Docker redan finns på plats, och resten går åt till konton, delning och till att få synkningen att fungera på allas datorer. Svårighetsgraden är hög för den som aldrig sett ett terminalfönster, men ingenting här kräver förkunskaper. Ni klistrar in en fil och kör två kommandon.

Vad Nextcloud är, och vad det inte är

Nextcloud är en molntjänst som ni kör själva. Funktionsmässigt ligger den nära Google Drive: filer i mappar, delning med länk, versionshistorik, papperskorg, kommentarer och en app för mobilen. Skillnaden är att programmet körs på er egen dator eller er egen server i stället för hos någon annan, och att licensen kostar noll kronor oavsett hur många konton ni skapar.

Var ärliga med baksidan också. Ligger Nextcloud på en dator hemma hos någon i företaget är filerna borta så länge datorn är avstängd, och den som äger datorn blir företagets driftavdelning. Ska Nextcloud vara företagets riktiga filyta hör den hemma på en molnserver som är igång dygnet runt. Installationen nedan är densamma på en sådan server.

Nextcloud gör en sak till som lätt missas: ni kan redigera dokument tillsammans i webbläsaren om ni installerar Nextcloud Office. Det ligger utanför den här guiden, men det finns där när ni vill ha det.

Filerna ni klistrar in

Nextcloud behöver en databas bredvid sig. I stället för att installera två saker var för sig beskriver ni båda i en fil, och startar dem med ett kommando.

Skapa en mapp som heter nextcloud där ni brukar spara filer. I den skapar ni en textfil som heter compose.yaml. Använd en riktig textredigerare, alltså Anteckningar på Windows eller Text Editor på Mint. Word skriver in osynliga tecken som förstör filen.

Kontrollera Nextclouds lista över stödda databasversioner innan ni låser fast en, en flytande huvudversion som mariadb:11 kan med tiden peka på en delversion som inte längre är listad som stödd.

services:
  db:
    image: mariadb:11
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - db_data:/var/lib/mysql
    environment:
      - MARIADB_ROOT_PASSWORD=BYT_UT_MIG_1
      - MARIADB_DATABASE=nextcloud
      - MARIADB_USER=nextcloud
      - MARIADB_PASSWORD=BYT_UT_MIG_2

  app:
    image: nextcloud:stable
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:80"
    volumes:
      - nextcloud_data:/var/www/html
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=BYT_UT_MIG_2
      - NEXTCLOUD_ADMIN_USER=admin
      - NEXTCLOUD_ADMIN_PASSWORD=BYT_UT_MIG_3
      - NEXTCLOUD_TRUSTED_DOMAINS=localhost

volumes:
  db_data:
  nextcloud_data:

Byt ut de tre raderna som skriker om det. BYT_UT_MIG_2 står på två ställen och måste vara exakt samma sträng på båda, annars når Nextcloud inte databasen. Lösenorden ska vara långa och slumpmässiga, och de ska sparas där företaget sparar lösenord innan ni går vidare.

Indraget i filen betyder något. Två mellanslag där det står två mellanslag, fyra där det står fyra, och aldrig tabbtecken. Blir indraget fel svarar Docker med ett felmeddelande om yaml och vägrar starta.

Windows: starta Nextcloud

Se till att Docker Desktop är igång, alltså att valen nere till vänster lyser grönt. Öppna PowerShell, gå till mappen och starta:

cd $HOME\Documents\nextcloud
docker compose up -d

Första gången laddas ungefär en gigabyte ner. Det tar några minuter och terminalen skriver rader hela tiden. När markören kommer tillbaka kör ni docker compose ps och kontrollerar att båda tjänsterna står som running.

Öppna sedan http://localhost:8080 i webbläsaren. Första laddningen kan ta en halv minut medan Nextcloud sätter upp databasen. Logga in med användarnamnet admin och lösenordet ni skrev i filen.

Linux Mint: starta Nextcloud

Öppna Terminal, gå till mappen och starta med samma kommando:

cd ~/nextcloud
docker compose up -d

Kontrollera med docker compose ps att både db och app är igång, och öppna http://localhost:8080.

På Mint finns dessutom den officiella skrivbordsklienten i Mints egna arkiv, så synkningen är ett kommando bort:

sudo apt install nextcloud-desktop

Starta programmet från startmenyn, välj Logga in, ange http://localhost:8080 som serveradress och godkänn i webbläsaren. Klienten lägger en mapp som heter Nextcloud i hemkatalogen, och allt som hamnar där synkas.

Ska andra i företaget nå servern från sina datorer på samma nät behöver de er IP-adress. Ta reda på den med hostname -I. NEXTCLOUD_TRUSTED_DOMAINS i compose-filen läses bara av den automatiska installationen första gången containern startar, så att lägga till IP-adressen där och köra docker compose up -d igen gör ingen skillnad när Nextcloud redan är igång. Lägg i stället till adressen direkt i den körande installationen:

docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=er-ip-adress

Hoppar ni över det svarar Nextcloud med Access through untrusted domain, vilket är ett av de vanligaste stoppen i den här guiden.

Grundinställningar för ett företag

  1. Klicka på profilbilden uppe till höger, välj Inställningar och sätt språk till svenska och region till Sverige.
  2. Gå till Administration och sedan Användare. Skapa ett konto till varje person i företaget. Ge inte alla administratörsrättigheter, två räcker.
  3. Skapa grupper som följer hur ni arbetar, till exempel ekonomi och marknad, och dela mappar med grupper i stället för med enskilda personer. Då slipper ni börja om när någon byter roll.
  4. Bygg mappstrukturen innan ni börjar ladda upp. Fyra eller fem mappar på toppnivå räcker: Affärsplan, Ekonomi, Marknad, Produkt, Protokoll.
  5. Installera appen Kalender under Appar om ni vill ha företagets deadlines på samma ställe som filerna.

Dela filer med kunder och samarbetspartners

Högerklicka på en fil, välj Dela och sedan Dela länk. Länken går att skicka till vem som helst. Två inställningar bakom kugghjulet är värda att använda varje gång ni delar något utanför företaget: sätt ett utgångsdatum, och sätt ett lösenord om filen innehåller något som rör en kund. En delningslänk utan utgångsdatum lever kvar långt efter att den borde ha stängts.

Ska en rådgivare eller samarbetspartner kunna lämna in filer, skapa en mapp och välj Tillåt uppladdning och redigering på länken. Då kan de lägga in filer utan att ha ett konto.

Säkerhetskopiera

Allt ligger i två volymer som Docker sköter, och volymer överlever att containrar raderas. De överlever däremot inte en trasig disk. Gör så här en gång i månaden, och alltid innan ni ändrar något stort:

docker compose exec -T db mariadb-dump -u nextcloud -pBYT_UT_MIG_2 nextcloud --result-file=/tmp/nextcloud-db.sql
docker compose cp db:/tmp/nextcloud-db.sql ./nextcloud-db.sql
docker run --rm -v nextcloud_nextcloud_data:/data -v "$PWD":/backup alpine tar czf /backup/nextcloud-filer.tar.gz /data

Dumpen skrivs alltså till en fil inuti containern och kopieras sedan ut, i stället för att skickas till nextcloud-db.sql med >. Gör ni det sistnämnda i PowerShell på Windows skriver PowerShell filen som UTF-16, och den går inte att läsa tillbaka rent. Kör ni i PowerShell på Windows, skriv -v "${PWD}:/backup" med måsvingarna i det tredje kommandot. $PWD fungerar tekniskt även utan dem, men citattecknet direkt efter kan annars tolkas som ett eget argument.

Det första kommandot tar databasen, det andra tar filerna. Volymnamnet i det andra kommandot består av mappens namn plus volymens namn, så kontrollera med docker volume ls vad er heter innan ni kör. Lägg båda filerna någon annanstans än på samma dator. En extern disk eller företagets Google Drive duger, poängen är att kopian inte ska försvinna tillsammans med originalet.

Om företaget någon gång läggs ner är de här två filerna hela er historik.

Så här vet ni att det funkade

  • docker compose ps visar både db och app som running.
  • Ni loggar in på http://localhost:8080 med admin-kontot.
  • En uppladdad fil syns igen efter docker compose restart.
  • Varje person i företaget kan logga in med sitt eget konto.
  • En delningslänk går att öppna i ett privat fönster, alltså utan att vara inloggad.
  • Säkerhetskopian finns som två filer på en annan plats än servern.

Om det går fel

"Access through untrusted domain". Adressen ni surfar till står inte i listan över betrodda domäner. Lägg till den med docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=er-adress. Att bara ändra NEXTCLOUD_TRUSTED_DOMAINS i compose-filen och köra docker compose up -d igen gör ingenting, den variabeln läses bara vid den allra första starten.

Sidan svarar inte alls direkt efter start. Nextcloud sätter upp databasen vid första starten och det tar en stund. Kör docker compose logs -f app och vänta tills raderna slutar rulla.

Felmeddelande om databasanslutning. Nästan alltid att MARIADB_PASSWORD och MYSQL_PASSWORD inte är identiska. Rätta filen, kör docker compose down -v för att kasta den halvfärdiga databasen, och starta om. Den flaggan raderar data, så kör den bara innan ni har lagt in något ni vill behålla.

Port 8080 är upptagen. Byt vänstra siffran i ports till till exempel 8081:80 och surfa till den porten i stället.

Skrivbordsklienten vägrar logga in. Kontrollera att serveradressen är skriven med http:// och porten, inte bara datornamnet.

Vad ni gör härnäst

Flytta in på riktigt. En filyta som bara innehåller ett testdokument används aldrig, så lägg in affärsplanen, budgeten och bilderna första dagen och bestäm att de bor där nu. Lägg in synkklienten på allas datorer och företagets telefoner.

Vill ni köra Nextcloud på en server som är igång dygnet runt är stegen desamma, men ni behöver också ett domännamn och HTTPS. Domän och mejl tar domändelen, och Installera Odoo visar hur ni sätter upp en molnserver från grunden.