Hosta Umami på en Managed VPS: din webbanalys på din egen server

Att hosta Umami på en Managed VPS innebär att statistiken för dina webbplatser stannar på en egen maskin, som våra team håller uppdaterad och bevakar dag och natt. Umami är fri programvara under MIT-licensen som mäter trafiken utan kakor. Den här guiden följer den officiella dokumentationen: installation med Docker Compose och PostgreSQL, HTTPS, den första inloggningen, spårningsskriptet, det projektet säger om personuppgifter, användbara inställningar, säkerhetskopior och uppdateringar.

Simon Vasconcelos Lee Av Publicerad den 15 november 2026Lästid: 12 minuter

Alla guider

I korthet

  1. MIT-licensen tillåter fri användning, ändring och vidaredistribution av Umami, i företag som på andra håll, så länge du behåller dess upphovsrättsmeddelande.
  2. Installera med Docker Compose: projektets fil startar Umami och dess PostgreSQL-databas, den enda databas som stöds sedan version 3.
  3. Generera APP_SECRET och TWO_FACTOR_ENCRYPTION_KEY slumpmässigt, servera Umami med HTTPS under en egen underdomän och byt sedan genast lösenordet för kontot admin.
  4. Lägg till din webbplats och klistra sedan in dess spårningsskript i <head> på dina sidor: spårningen använder inga kakor.
  5. Exportera databasen varje dag med pg_dump, förvara filen .env på ett säkert ställe och uppdatera med docker compose pull.

Det Umami gör

Umami är en plattform med öppen källkod för webb- och produktanalys. Dess dokumentation beskriver ett verktyg som samlar trafik, kampanjer, besökarnas beteende, konverteringar, återkommande besökare och intäkter, från det första besöket till de resultat som betyder något för din verksamhet. Det är skrivet i TypeScript på Next.js, och dess Docker-avbild körs under ett konto utan särskilda rättigheter.

En instans följer flera webbplatser: var och en får sitt eget ID och sitt eget spårningsskript, och dina kolleger hittar rätt genom konton och team.

Det som MIT-licensen tillåter

Umami publiceras under MIT-licensen, i namnet Umami Software, Inc. Den ger, kostnadsfritt, rätt att använda, kopiera, ändra, slå samman, publicera, distribuera, underlicensiera och sälja kopior av programvaran. Du kan alltså köra den för ditt företag och för dina kunders webbplatser, utan att köpa någon licens.

Dess enda villkor: upphovsrättsmeddelandet och tillståndsmeddelandet följer med alla kopior eller väsentliga delar av programvaran. Som varje MIT-licens tillhandahåller den programvaran ”i befintligt skick”, utan garanti.

Kakor och personuppgifter: det projektet säger

Dokumentationen presenterar Umami som en analys utan kakor, utan spårning mellan webbplatser och utan automatisk insamling av personuppgifter. Självhostad håller den din statistik på din egen server: du bestämmer var den finns och hur länge den sparas.

FrågaDet projektet sägerKälla
KakorWebbspårningen använder inga kakor; om din webbplats behöver ett meddelande om kakor beror på de andra tjänster du använder och de krav som gällerFAQ
Insamlade dataSidvisningar, hänvisande adresser, webbläsare, operativsystem, enhetstyper och ungefärlig platsFAQ
IP-adressTabellen för sessioner har ingen kolumn för IP-adressen; ett sessions-ID är en hash av webbplatsen, adressen, webbläsaren och ett salt som som standard byts varje månadSchema och kod, version 3.4.1
LagringstidSjälvhostade sparas data tills du tar bort demFAQ
GDPRUmami är utformat med integriteten i åtanke, och efterlevnaden beror på hur du konfigurerar och använder detFAQ
Data du skickarEtt besökar-ID eller händelseegenskaper som du väljer att skicka är ditt ansvarIntroduktion

Tre inställningar i spårningsskriptet går längre, om du vill: data-exclude-search tar bort sökparametrarna från de registrerade adresserna, data-exclude-hash tar bort ankaret, och data-do-not-track stänger av spårningen för webbläsare som anger inställningen Do Not Track. Dokumentationen påpekar att den sista inställningen inte på egen hand är en komplett lösning för hantering av samtycke.

Om du identifierar inloggade besökare med data-distinct-id eller umami.identify() rekommenderar dokumentationen ett internt användar-ID eller en hash i stället för en e-postadress: värdet går att läsa i sidans HTML.

Installationen med Docker Compose och PostgreSQL

Förrådet levererar en docker-compose.yml som startar Umami och dess PostgreSQL-databas. Sedan version 3 är PostgreSQL den enda databas som stöds, minst version 12.14, och dokumentationen rekommenderar att ställa in den på tidszonen UTC. På en server där Docker är installerat skapar du en mapp och börjar med dess hemligheter, slumpmässigt genererade med openssl, som dokumentationen föreslår:

Terminal
cat > .env <<EOF
POSTGRES_PASSWORD=$(openssl rand -hex 24)
APP_SECRET=$(openssl rand -hex 32)
TWO_FACTOR_ENCRYPTION_KEY=$(openssl rand -hex 32)
EOF
chmod 600 .env

Lägg sedan denna compose.yaml bredvid. Den följer projektets fil i version 3.4.1, med två ändringar: hemligheterna kommer från filen .env, och porten publiceras bara på 127.0.0.1.

compose.yaml
services:
  umami:
    image: ghcr.io/umami-software/umami:latest
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:${POSTGRES_PASSWORD}@db:5432/umami
      APP_SECRET: ${APP_SECRET}
      TWO_FACTOR_ENCRYPTION_KEY: ${TWO_FACTOR_ENCRYPTION_KEY}
    depends_on:
      db:
        condition: service_healthy
    init: true
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
      interval: 5s
      timeout: 5s
      retries: 5
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - umami-db-data:/var/lib/postgresql/data
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 5
volumes:
  umami-db-data:
Terminal
docker compose up -d
curl -s http://127.0.0.1:3000/api/heartbeat

Installationsdokumentationen anger ingen siffra för minne eller processor. Storleken beror på trafiken till de följda webbplatserna och på volymen av data du sparar. På en Managed VPS beskriver du hur du tänker använda den, så rekommenderar vi lämplig storlek.

HTTPS: den omvända proxyn

Umami lyssnar med HTTP på port 3000, och dokumentationen föreslår att servera den bakom din webbserver, via en omvänd proxy. Ge den en egen underdomän, som stats.example.com, som pekar mot servern med A- och AAAA-poster. Att servera Umami under en sökväg går via BASE_PATH, en variabel som läses när applikationen byggs: med den publicerade avbilden är underdomänen den direkta vägen.

Proxyn måste också skicka vidare besökarens adress. Umami läser den i huvudena den tar emot, bland andra X-Real-IP och X-Forwarded-For: den använder den för att skilja besökarna åt och avgöra deras land. Om din proxy använder ett annat huvud anger CLIENT_IP_HEADER dess namn.

Med Caddy

Caddy hämtar certifikatet från Let’s Encrypt och aktiverar HTTPS på egen hand. Dess direktiv reverse_proxy sätter X-Forwarded-For som standard: de här tre raderna räcker.

Caddyfile
stats.example.com {
  reverse_proxy 127.0.0.1:3000
}

Med Nginx och Certbot

Det här blocket följer Nginx-exemplet i Umamis dokumentation, och lyssnar på port 80 så att Certbot kan installera HTTPS:

Nginx-block
server {
  listen 80;
  listen [::]:80;
  server_name stats.example.com;

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Certbot installerar sedan certifikatet och sköter förnyelsen:

Terminal
sudo certbot --nginx

Den första inloggningen: administratörskontot och tvåfaktorsautentisering

När Umami skapar sin databas öppnar den ett administratörskonto: användarnamnet admin, lösenordet umami. Dokumentationen ber dig att byta lösenordet vid din första inloggning.

  1. Öppna din HTTPS-adress och logga in med admin och umami.
  2. Öppna Settings från profilknappen i sidofältet, sedan Profile, och klicka på Change password.
  3. På fliken Security aktiverar du tvåfaktorsautentisering: skanna QR-koden med din autentiseringsapp, ange den sexsiffriga koden och förvara sedan de tio reservkoderna på ett säkert ställe, eftersom de bara visas en gång.

Förvara TWO_FACTOR_ENCRYPTION_KEY tillsammans med dina säkerhetskopior: dokumentationen varnar för att om nyckeln går förlorad eller ändras blir de lagrade hemligheterna oläsliga, och varje användare måste då registrera sin tvåfaktorsautentisering på nytt.

Lägga till en webbplats och dess spårningsskript

  1. I Websites klickar du på Add website.
  2. Ge webbplatsen ett namn och sedan dess domän: Umami använder den för att filtrera bort dina egna sidor ur listan över hänvisande sidor.
  3. Öppna Edit på den webbplatsen och kopiera koden i avsnittet Tracking code.
  4. Klistra in den i <head> på dina sidor och besök sedan din webbplats: data visas i instrumentpanelen direkt.
Spårningskoden, i head
<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>

Ett eget namn på skriptet

Vissa annonsblockerare blockerar allt som liknar statistik. Självhostad serveras Umami redan från din egen domän, och två variabler går längre: TRACKER_SCRIPT_NAME ger skriptet ett annat namn än script.js, och COLLECT_API_ENDPOINT byter namn på insamlingens slutpunkt, i stället för /api/send. Skriptet anropar då den nya slutpunkten av sig självt; bara källan i spårningskoden ändras på dina sidor.

compose.yaml, under environment
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"

Användbara inställningar

Dessa miljövariabler läggs i tjänsten umami i compose.yaml, och sedan skapar docker compose up -d om containern så att de börjar gälla:

VariabelVad den görVärde
DISABLE_TELEMETRYStänger av den anonyma telemetri som Umami skickar till projektet för att förbättra applikationen1
PRIVATE_MODEStänger av alla externa nätverksanrop, inklusive webbplatsikonerna, som hämtas från DuckDuckGo som standard1
DISABLE_UPDATESStänger av sökningen efter nya versioner1
IGNORE_IPUndantar IP-adresser och CIDR-intervall från insamlingen, som dina kontorsEn lista åtskild med kommatecken
SALT_ROTATIONAnger hur ofta saltet bakom sessions-ID bytsmonth som standard
REDIS_URLLägger till en Redis-cache, som dokumentationen rekommenderar för webbplatser med hög trafik eller flera instanserDin Redis-adress
MCP_ENABLEDÖppnar slutpunkten /mcp: din AI-assistent läser din statistik med enbart läsåtkomst, med en API-nyckel som skapas under Settings, API keys1

Säkerhetskopiorna

Allt som Umami sparar finns i dess PostgreSQL-databas: konton, webbplatser, team och statistik. Exportera den varje dag och strax före varje uppdatering: självhostade sparas dessa data utan tidsgräns. Bredvid databasen innehåller filen .env de hemligheter som gör den användbar:

DelVad den innehållerAtt säkerhetskopiera
PostgreSQL-databasenKonton, webbplatser, team, rapporter och all statistikObligatoriskt, med pg_dump
.envDatabasens lösenord, APP_SECRET och nyckeln för tvåfaktorsautentiseringObligatoriskt, krypterad
compose.yamlDin instans konfigurationRekommenderas

Exportera databasen medan den körs

pg_dump gör en konsekvent export medan databasen används. Det anpassade formatet, -Fc, är komprimerat och återställs med pg_restore:

Terminal, i mappen med compose.yaml
docker compose exec -T db pg_dump -U umami -d umami -Fc > umami-$(date +%F).dump

Schemalägg kommandot på servern minst en gång om dagen, gallra bland exporterna, som hopar sig, och skicka en kopia till annat håll. Lagda på serverns disk ingår de här exporterna också i dess nattliga säkerhetskopior.

Återställa

  1. Stoppa Umami och låt databasen vara igång: docker compose stop umami.
  2. Återställ exporten i databasen och ersätt de befintliga objekten.
  3. Starta Umami igen och kontrollera sedan att dina webbplatser och deras statistik finns kvar.
Terminal
docker compose stop umami
docker compose exec -T db pg_restore -U umami -d umami --clean --if-exists < umami-YYYY-MM-DD.dump
docker compose start umami

Upprepa övningen då och då, på en kopia: så kontrollerar du att en säkerhetskopia fungerar.

Uppdateringarna

Dokumentationen anger två kommandon, från mappen med compose.yaml. Databasen ligger kvar i sin volym:

Terminal
docker compose pull
docker compose up --force-recreate -d

Vid omstarten tillämpar containern själv schemamigreringarna. Version 3.4.0, från den 17 september 2026, innehöll två, för anteckningar och API-nycklar; version 3.4.1, från den 23 oktober 2026, innehåller ingen. Efter en större uppgradering, som övergången till version 3, föreslår dokumentationen att köra ANALYZE i PostgreSQL så att instrumentpanelerna får tillbaka sin hastighet:

Terminal
docker compose exec db psql -U umami -d umami -c "ANALYZE;"

Vem gör vad på en Managed VPS

Att självhosta innebär att sköta servern utöver applikationen. På en Managed VPS tar våra team hand om servern och följer din instans proaktivt; Umami förblir din programvara, med sina inställningar och sina data.

OmrådeVåra teamDu
ServernUppdateringar av system och säkerhet, ingrepp på servern inräknadeTidpunkten som passar din verksamhet
ÖvervakningenServern följs dygnet runt, alla dagar, med ingrepp utan att vänta på ditt samtalLäsningen av din instans loggar
UmamiProaktiv uppföljning: fel, långsamma svarstider och diskutrymme upptäcks, med rekommenderad rättelseInstallationen, uppdateringarna och inställningarna, som du genomför själv eller med din AI-assistent
Webbplatserna och statistikenServern som bär dem, övervakad och säkerhetskopieradKontona, de följda webbplatserna, spårningsskriptet och hur länge data sparas
SäkerhetskopiornaVarje natt, krypterade och förvarade utanför maskinen; återställning ingårUmamis egna exporter och begäran om återställning, när du behöver den
MigreringenDin nuvarande server migreras kostnadsfrittTidpunkten för bytet

Om du föredrar att våra team ingriper i själva applikationen faktureras den tjänsten per timme eller som fast pris, med en offert som lämnas före ingreppet.

Umami, på en server som sköts åt dig

Med en Managed VPS från Simafri håller våra team servern för din Umami-instans uppdaterad, övervakar den dag och natt och griper in utan att vänta på ditt samtal; de följer också din instans proaktivt och rekommenderar de rättelser som är till nytta, som du genomför själv eller med din AI-assistent. Säkerhetskopiorna krypteras varje natt och förvaras utanför maskinen, återställningen ingår, och migreringen av din nuvarande server är kostnadsfri.

Upptäck Managed VPS

Vanliga frågor

Är Umami gratis för ett företag?

Ja. Umami är licensierat under MIT-licensen: du kan använda, ändra och vidaredistribuera det i ditt företag utan att köpa någon licens, så länge du behåller dess upphovsrättsmeddelande. Kvar blir kostnaden för servern som kör det.

Använder Umami kakor?

Nej. Projektets FAQ anger att Umamis webbspårning inte använder kakor. Om din webbplats behöver ett meddelande om kakor beror på de andra tjänster du använder där och de krav som gäller.

Fungerar Umami med MySQL?

Inte sedan version 3: Umami stöder PostgreSQL, minst version 12.14. En instans i version 2 på MySQL flyttar först sina data till PostgreSQL med projektets migreringsguide och uppgraderar sedan till version 3.

Hur installerar man Umami med Docker Compose?

Utgå från projektets docker-compose.yml, som kör Umami och PostgreSQL, med slumpmässiga hemligheter i en fil .env och porten publicerad på 127.0.0.1. Kör docker compose up -d och sätt sedan en omvänd proxy med HTTPS framför, på en underdomän.

Vilka är standarduppgifterna för inloggning i Umami?

Vid installationen skapar Umami ett konto admin med lösenordet umami. Byt det vid din första inloggning, under Settings och sedan Profile, och aktivera tvåfaktorsautentisering på fliken Security när TWO_FACTOR_ENCRYPTION_KEY är satt.

Hur byter man namn på spårningsskriptet i Umami?

På en självhostad instans ger TRACKER_SCRIPT_NAME skriptet ett annat namn än script.js, och COLLECT_API_ENDPOINT byter namn på insamlingens slutpunkt /api/send. Ändra sedan källan i spårningskoden på dina sidor.

Hur säkerhetskopierar man Umami?

Exportera PostgreSQL-databasen varje dag med pg_dump, från databasens container, och förvara filen .env separat, eftersom den innehåller APP_SECRET och nyckeln för tvåfaktorsautentisering. Återställ med pg_restore, och testa återställningen regelbundet.

Täcker en Managed VPS Umami?

En Managed VPS täcker servern: system, säkerhet, övervakning och säkerhetskopior. Våra team följer också din instans proaktivt och rekommenderar de rättelser som är till nytta, som du genomför själv. Ett ingrepp i själva applikationen faktureras per timme eller som fast pris.

Källor och officiell dokumentation

Kontakta oss