Det här sätter du upp
Matomo är det mest kompletta alternativet med öppen källkod till Google Analytics. Utöver besök, sidor, källor och platser följer den mål, beställningar och intäkter i e-handeln, kampanjer, sökningar på webbplatsen och händelser. Den har en logg över varje besök, skickar rapporter via e-post och låter dig ge kollegor behörighet att bara titta. All besöksdata stannar i en databas på din egen server.
Matomo startade 2007 som Piwik, skapat av Matthieu Aubry. Det utvecklas av InnoCraft Limited, ett bolag registrerat i Nya Zeeland som grundades av Matomos skapare och som också säljer Matomo Cloud och betalda tillägg. Matomo är öppen källkod under GNU General Public License version 3 eller senare, vilket vi kontrollerade i källkoden den 14 oktober 2026.
Här körs Matomo som en pod under en egen användare som heter matomo, med MariaDB för dess data, bakom Caddy från Podman-guiden. Avbilden är den officiella matomo på Docker Hub, som Matomos community underhåller. Den finns i två varianter: apache, med Apache och PHP i samma container, och fpm, med bara PHP, som behöver en webbserver som kan läsa Matomos filer. Den här guiden använder apache: Caddy körs under en egen användare och kan inte läsa filerna som tillhör matomo, så med fpm skulle podden behöva en webbserver till. Med apache skickar Caddy bara vidare anropen, som för alla andra appar.
Varje steg nedan har körts på en nyinstallerad Melonslab VC-P Alloy (2 vCPU, 8 GB) med Debian 13:
- Matomo 5.14.0 startade med MariaDB 12.3.3, och installationen och superanvändaren gjordes över en SSH-tunnel innan Caddy gjorde Matomo publik.
- En liten testwebbplats med Matomos spårningskod besöktes i en webbläsare. Besöket visade besökarens riktiga adress, förkortad till de två första delarna, och rätt stad, över IPv4 och IPv6. En förfalskad
X-Forwarded-For-header struntade Matomo i. - 1 200 simulerade besök skickades via Matomos Tracking HTTP API under en vecka, med riktiga webbläsares user agents, adresser från sex länder, hänvisande webbplatser, två UTM-kampanjer, två mål, 34 beställningar, sökningar och videohändelser. Det är inga riktiga människor. Timern som körs varje timme byggde rapporterna, och siffrorna stämde med det som skickades, där varje mål räknas en gång per besök.
- Med Force tracking without cookies påslaget fick webbläsaren inga kakor. Med stöd för Do Not Track påslaget registrerades inte ett besök som skickade
DNT: 1. Valet att avstå på en integritetssida stoppade all spårning för den webbläsaren. - En användare som bara får titta tackade ja till en inbjudan och kunde se rapporterna men inte inställningarna. En veckorapport kom fram via e-post, till en e-postfälla på servern.
- Gränssnittet visades på svenska, både när användaren valde det och för en webbläsare inställd på svenska. Det kostnadsfria tillägget för import från Google Analytics installerades men användes inte, eftersom det kräver ett Google-konto.
- En avlyssning av serverns trafik visade varje extern tjänst som Matomo kontaktade, och inga alls efter steg 15.
- Matomo uppdaterades från 5.13.0 till 5.14.0. Det återställdes från en säkerhetskopia för en nyskapad användare
matomo, med alla besök, rapporter, mål och användare, och allt startade igen av sig självt efter en omstart av servern.
Efter en omstart använde podden omkring 170 MB minne: MariaDB 130 MB och Matomo 40 MB. När översikten användes växte Matomo till omkring 150 MB, och medan rapporterna för testbesöken byggdes som mest till omkring 420 MB för hela podden. De 1 200 besöken, med omkring 3 500 sidvisningar och andra handlingar, lade till ungefär 1 MB rådata och 2 MB rapporter i databasen, så räkna med ungefär 1 MB rådata per 1 000 besök. De två avbilderna tar 960 MB på disken. Steg 1 till 7 tog oss omkring 10 minuter.
Matomo, Plausible eller Umami? Alla tre håller besöksdatan på din server. Matomo gör mest: intäkter från e-handel, mål med konverteringsgrad, kampanjer, en logg över varje besök, sökningar på webbplatsen, segment, schemalagda rapporter via e-post, användare som bara får titta, import från Google Analytics och ett svenskt gränssnitt. Den sätter kakor tills du stänger av dem, och integritetsinställningarna är dina att välja, vilket tar längst tid av de tre. Plausible och Umami sätter inga kakor från början och visar en enklare översikt. Umami använde omkring 210 MB minne i vår jämförelse, Plausible omkring 650 MB med ClickHouse, och Matomo omkring 170 MB här, mer medan den bygger rapporter. Behöver du e-handel, kampanjer och rapporter via e-post för ett team väljer du Matomo; vill du se besök och källor med minsta möjliga arbete väljer du någon av de andra två.
Innan du börjar
Du behöver:
- en server uppsatt som i Podman-guiden, med Caddy igång;
- en A-post och en AAAA-post för
analytics.example.comsom pekar på din server; - en webbplats att mäta, här
www.example.com.
Matomo rekommenderar 2 processorkärnor och 2 GB minne för upp till 100 000 sidvisningar i månaden. Exemplen använder analytics.example.com för Matomo och 203.0.113.10 för serverns IPv4-adress. Byt ut dem genomgående.
1. Skapa användaren
Som root:
useradd -m -s /bin/bash matomo
loginctl enable-linger matomo
machinectl shell matomo@
Allt fram till steg 6 körs som matomo.
2. Skapa hemligheten
openssl rand -hex 24 | tr -d '\n' | podman secret create matomo-db-password -
Det här är lösenordet till Matomos databaskonto. Podman sparar det, inte filerna nedan. MariaDB får det när databasen skapas, och installationen i steg 4 fyller i det själv och skriver det sedan till Matomos inställningsfil, config.ini.php, eftersom Matomo inte kan läsa det från något annat ställe.
3. Definiera podden
mkdir -p ~/.config/containers/systemd
cd ~/.config/containers/systemd
Skapa matomo.pod:
[Pod]
PodName=matomo
# Only Caddy, on this server, can reach Matomo: the port is not open to the internet.
PublishPort=127.0.0.1:8145:80
[Install]
WantedBy=default.target
Skapa matomo-db.container:
[Container]
ContainerName=matomo-db
Image=docker.io/library/mariadb:12.3
Pod=matomo.pod
Volume=matomo-db:/var/lib/mysql
Environment=MARIADB_DATABASE=matomo MARIADB_USER=matomo MARIADB_RANDOM_ROOT_PASSWORD=1 MARIADB_AUTO_UPGRADE=1
Secret=matomo-db-password,type=env,target=MARIADB_PASSWORD
Exec=--max-allowed-packet=64M
HealthCmd=healthcheck.sh --connect --innodb_initialized
HealthInterval=10s
Notify=healthy
AutoUpdate=registry
[Service]
Restart=always
Och matomo-app.container:
[Unit]
Requires=matomo-db.service
After=matomo-db.service
[Container]
ContainerName=matomo-app
Image=docker.io/library/matomo:5.14.0-apache
Pod=matomo.pod
Volume=matomo-config:/var/www/html/config
Volume=matomo-misc:/var/www/html/misc
Volume=matomo-plugins:/var/www/html/custom-plugins
Environment="MATOMO_PLUGIN_DIRS=/var/www/html/custom-plugins/;custom-plugins" MATOMO_PLUGIN_COPY_DIR=/var/www/html/custom-plugins/
Environment=MATOMO_DATABASE_HOST=127.0.0.1 MATOMO_DATABASE_USERNAME=matomo MATOMO_DATABASE_DBNAME=matomo
Secret=matomo-db-password,type=env,target=MATOMO_DATABASE_PASSWORD
HealthCmd=curl -fs -o /dev/null http://127.0.0.1/matomo.php
HealthInterval=10s
Notify=healthy
[Service]
Restart=always
TimeoutStartSec=300
# Rebuild the files Matomo changes at run time, which a new container starts without.
ExecStartPost=-/usr/bin/podman exec -u www-data matomo-app ./console core:create-security-files
ExecStartPost=-/usr/bin/podman exec -u www-data matomo-app ./console custom-matomo-js:update
Vad inställningarna gör:
- Vid varje start kopierar avbilden Matomos programfiler till containern. Bara tre mappar sparas i volymer:
config, med dina inställningar,misc, med platsdatabasen från steg 4, ochcustom-plugins, för tillägg du installerar. En ny avbild ger alltså nya programfiler, och det är så du uppdaterar i steg 17. MATOMO_PLUGIN_DIRSochMATOMO_PLUGIN_COPY_DIRgör att Matomo installerar tillägg från sin Marketplace icustom-plugins, så att de finns kvar efter en omstart.- Raderna med
MATOMO_DATABASE_fyller i databassidan i installationen åt dig. - Matomo ändrar två sorters filer medan den körs: spårningsskriptet
matomo.js, när du ändrar integritetsinställningar som kakor, och.htaccess-filerna som hindrar Apache från att lämna ut mapparna med inställningar, cache och kod. En ny container startar utan de ändringarna, så de två raderna medExecStartPostskapar dem igen när Matomo svarar. Tecknet-låter containern starta innan Matomo är installerad, när kommandona inte kan köras än. - MariaDB ligger kvar på 12.3, en version med långtidsstöd, som i MariaDB-guiden, och
AutoUpdate=registryinstallerar dess rättningar.--max-allowed-packet=64Mlåter Matomo skriva större rapporter på en gång, som den rekommenderar. Matomo självt ligger kvar på exakt den version du anger tills du byter den.
Starta den:
systemctl --user daemon-reload
systemctl --user start matomo-pod
systemctl --user enable --now podman-auto-update.timer
Vid första starten laddas omkring 960 MB avbilder ner; på vår server tog det 70 sekunder. Matomo är klar när det här skriver ut 200:
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8145/
4. Installera över en SSH-tunnel
Tills installationen är klar kan vem som helst som når Matomo köra den och skapa superanvändaren, kontot som styr allt. Gör den därför innan Caddy gör Matomo publik. Öppna en SSH-tunnel till servern från din egen dator:
ssh -L 8145:127.0.0.1:8145 root@203.0.113.10
Öppna http://localhost:8145 i webbläsaren och välj Next genom de här sidorna:
- System Check listar vad Matomo behöver. Allt har en grön bock utom Forced SSL Connection, som steg 6 löser.
- Database Setup är redan ifylld från poddens inställningar. Sätt Database Engine till MariaDB och låt resten vara.
- Superuser: välj ett Superuser login, ett långt Password och din Email. Låt de två rutorna nedanför vara tomma: de anmäler dig till e-post från Matomo.
- Set up a Website: fältet Website URL fyller i
https://när du klickar i det. Skriv resten,www.example.com. Sätt Website timezone till Sweden, och Ecommerce till Ecommerce enabled om din webbplats säljer på nätet. - JavaScript Tracking Code: hoppa över den här koden, den pekar på
localhost. Du får den rätta i steg 9. - Congratulations: låt båda rutorna vara ikryssade. Automatically configure geolocation using a dbip database laddar ner DB-IP:s kostnadsfria stadsdatabas, omkring 130 MB, så att Matomo kan visa länder och städer. Anonymize the last byte(s) of visitors IP addresses förkortar adresserna innan de sparas. Välj Continue to Matomo.
Inloggningssidan visas. Nu vägrar Matomo att köra installationen igen. Stäng tunneln med exit.
5. Lita på Caddy
Matomo tar bara emot anrop till värdnamn den känner till, och behöver få veta att Caddy skickar vidare besökarens adress och att besökarna använder HTTPS. Som matomo:
podman exec -u www-data matomo-app ./console config:set \
'General.trusted_hosts[]="analytics.example.com"' \
'General.proxy_client_headers[]="HTTP_X_FORWARDED_FOR"' \
'General.proxy_scheme_headers[]="HTTP_X_FORWARDED_PROTO"'
Inne i podden kommer varje anrop från Caddy, från serverns egen adress. Caddy lägger besökarens riktiga adress i X-Forwarded-For och ersätter ett värde som besökaren själv skickar där. Utan den andra raden får varje besök adressen 203.0.113.10, och samma plats. config:set skriver till config.ini.php, och ändringen gäller direkt.
6. Sätt Caddy framför
Gå tillbaka till root med exit, byt till machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:
analytics.example.com {
reverse_proxy 127.0.0.1:8145
}
Starta om Caddy med systemctl --user restart caddy, öppna https://analytics.example.com och logga in. Byt sedan tillbaka till matomo (exit, machinectl shell matomo@) och låt Matomo bara använda HTTPS:
podman exec -u www-data matomo-app ./console config:set 'General.force_ssl=1'
7. Bygg rapporterna i bakgrunden
Matomo sparar varje besök som rådata och bygger sina rapporter, siffrorna du ser, ur den i ett steg som Matomo kallar arkivering. Som standard byggs en rapport när någon öppnar den i webbläsaren. Det gör översikten långsam när besöken blir fler, och Matomo rekommenderar att bygga dem enligt ett schema i stället. Stäng av arkiveringen i webbläsaren:
podman exec -u www-data matomo-app ./console config:set \
'General.enable_browser_archiving_triggering=0' \
'General.browser_archiving_disabled_enforce=1'
Kör sedan arkiveringen varje timme. Skapa ~/.config/systemd/user/matomo-archive.service:
[Unit]
Description=Build Matomo's reports
[Service]
Type=oneshot
ExecStart=/usr/bin/podman exec -u www-data matomo-app ./console core:archive --matomo-domain=https://analytics.example.com
Och ~/.config/systemd/user/matomo-archive.timer:
[Unit]
Description=Build Matomo's reports every hour
[Timer]
OnCalendar=hourly
RandomizedDelaySec=5min
[Install]
WantedBy=timers.target
systemctl --user daemon-reload
systemctl --user enable --now matomo-archive.timer
systemctl --user start matomo-archive.service
Samma körning gör också Matomos schemalagda uppgifter, som att skicka rapporter via e-post och radera gammal data. För våra 1 200 testbesök tog den 10 sekunder. Dagens rapporter är som mest en timme gamla; Visits Log och Real-time visar besöken direkt. journalctl --user -u matomo-archive visar hur varje körning gick.
8. Välj dina integritetsinställningar
Matomo kan samla in mycket, och standardinställningarna är inte de strängaste. Öppna kugghjulet, Administration, sedan Privacy, Anonymize data:
- Anonymize Visitors' IP addresses är redan påslaget, med 2 byte(s), från steg 4. Matomo sparar
198.51.0.0i stället för198.51.100.7. Also use the Anonymized IP addresses when enriching visits står på No från början: platsen slås upp från hela adressen innan den förkortas, vilket ger städer. Med Yes blir platsen mindre exakt. - Slå på Force tracking without cookies och välj Save. Matomo ändrar då
matomo.jsså att ingen spårningskod sätter kakor, och struntar i spårningskakor på servern. Utan det sätter Matomo_pk_id, som sparas i 13 månader,_pk_sesoch_pk_ref. Utan kakor räknas en besökare som kommer tillbaka en annan dag som en ny besökare. - Under Regularly delete old raw data kryssar du i Regularly delete old raw data from the database, sätter Delete logs older than (days) till hur länge du behöver detaljerna om varje besök, till exempel
180, och väljer Save. Matomo ber om ditt lösenord för att bekräfta ändringar på den här sidan. Rapporterna finns kvar; bara besöksloggen och rådatan bakom den försvinner. Som standard sparar Matomo rådata för alltid.
Sedan Privacy, Users opt-out:
- HTML code to embed on your website ger dig några rader att lägga på din integritetssida. De visar en kryssruta, på besökarens språk, som sparar ett val att avstå i besökarens webbläsare när rutan avmarkeras. Äldre versioner av Matomo hade en iframe för det här; Matomo 5 använder det här skriptet i stället.
- Under Support Do Not Track preference väljer du Enable Do Not Track support om du vill respektera det. Matomo kallar funktionen utfasad, eftersom få webbläsare fortfarande skickar headern, men den fungerade i 5.14.0: ett besök med
DNT: 1registrerades inte.
Vad det här betyder för samtycke, som vi läser källorna, kontrollerade 2026-10-14. Det är ingen juridisk rådgivning: fråga ert dataskyddsombud eller en jurist om er egen webbplats.
- I Sverige finns regeln om kakor i lagen om elektronisk kommunikation, och PTS är tillsynsmyndighet. Som huvudregel får kakor inte lagras utan samtycke, utom de som behövs för en tjänst som besökaren har bett om, och PTS nämner insamling av statistik som något som inte räknas som nödvändigt (PTS, uppdaterad 2024-05-14). Med kakor påslagna behöver Matomo samtycke som all annan webbanalys.
- Utan kakor är frågan inte avgjord med det. Europeiska dataskyddsstyrelsens riktlinjer om samma regel, antagna den 7 oktober 2024, säger att ett spårningsanrop som JavaScript skickar från besökarens webbläsare också kan omfattas, och att det "does not systematically mean that consent needs to be collected" (EDPB Guidelines 2/2023).
- GDPR gäller fortfarande för det Matomo sparar: den förkortade IP-adressen, webbläsaren och sidorna är personuppgifter så länge de kan kopplas till en person. Förkortade adresser, inga kakor och radering av rådata gör den mängden mindre.
- IMY:s beslut mot Tele2, CDON, Coop och Dagens industri den 3 juli 2023 handlade om att skicka data till Google i USA (IMY). Med Matomo på din egen server i Sverige sker ingen sådan överföring.
Matomo har också en sida för den franska dataskyddsmyndigheten CNIL, som låter webbplatser hoppa över samtycke för webbanalys på vissa villkor: Privacy, Compliance jämför dina inställningar med dem. Det är fransk vägledning, inte svensk, och vår testwebbplats uppfyllde bara några av villkoren.
9. Mät din webbplats
Under Administration, Websites, Tracking Code visar Matomo koden för din webbplats. Klistra in den i <head> på varje sida:
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.example.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
Om webbplatsen körs av samma Caddy räcker det för en statisk webbplats med ett block som www.example.com { root * /srv/www; file_server }, med webbplatsens mapp monterad i Caddys container, som Plausible-guiden visar.
Öppna din webbplats i en webbläsare, och sedan Visitors, Visits Log i Matomo. Besöket finns där direkt, med din adress förkortad, din stad, webbläsare och sidorna du öppnade. Det här kan Matomo också följa, med det vi testade:
- Kampanjer. Länkar med
utm_source,utm_mediumochutm_campaign, till exempelhttps://www.example.com/?utm_source=linkedin&utm_medium=social&utm_campaign=autumn, visas under Acquisition, Campaigns. Matomos egna parametrar som börjar medmtm_fungerar likadant. - Mål. Under Goals, Manage Goals, Add a new goal nås ett mål till exempel när en besökare öppnar en adress som innehåller
thanks.html, eller skickar en händelse. Matomo visar konverteringar, konverteringsgrad och intäkt per mål. - E-handel. Med e-handel påslaget för webbplatsen lägger butikens orderbekräftelse till varorna och ordern:
<script>
_paq.push(['addEcommerceItem', 'WA-1', 'Widget A', 'Widgets', 499, 1]);
_paq.push(['trackEcommerceOrder', 'ORDER-1001', 499, 499, 99.8, 0, 0]);
</script>
Det är artikelnummer, namn, kategori, pris och antal, och sedan ordernummer, totalsumma, delsumma, moms, frakt och rabatt. Ecommerce visar sedan beställningar, intäkter och produkter. Sätt webbplatsens Currency till Swedish Krona under Websites, Manage.
- Sökningar på webbplatsen. En söksida med sökordet i
q,query,s,searchellerkeywordi adressen visar sökorden under Behaviour, Site Search, utan att du behöver ställa in något. - Händelser. En knapp kan skicka
_paq.push(['trackEvent', 'Video', 'Play', 'Intro']), som visas under Behaviour, Events.
Matomo hoppar över besök från kända botar. Våra simulerade besök skickade vi via Tracking HTTP API, med en token så att de kunde ha egna adresser och tider; en webbläsare med koden ovan behöver inget mer.
10. Ge andra behörighet att titta
Under Administration, System, Users väljer du Invite a new user, fyller i Username och Email, väljer din webbplats under First website permission och väljer Invite user. Den nya användaren får rollen View för den webbplatsen. Matomo skickar en inbjudan som gäller i 7 dagar, med en länk där användaren väljer ett lösenord. En användare med View ser alla rapporter för webbplatsen men inga inställningar: vår testanvändare fick "You can't access this resource as it requires admin access" på inställningssidorna.
Tills e-posten fungerar (steg 11) har användarens rad knappen Resend/Copy Invite Link, som ger dig länken så att du kan skicka den på annat sätt. Med Write kan en användare också lägga till mål och anteckningar, och med Admin ändra webbplatsens inställningar och dess användare. Varje användare kan slå på tvåfaktorsautentisering under Personal, Security.
11. E-post och schemalagda rapporter
Matomo skickar e-post för inbjudningar, återställning av lösenord, schemalagda rapporter och meddelanden om nya versioner. Den här guiden sätter inte upp någon mailserver, och utan den:
- sparas inbjudningar men kommer aldrig fram, så använd Resend/Copy Invite Link;
- visar Lost your password? på inloggningssidan "Could not instantiate mail function";
- levereras inga schemalagda rapporter.
För att skicka via din e-postleverantör sparar du SMTP-lösenordet som en hemlighet, som matomo:
printf %s 'the-smtp-password' | podman secret create matomo-smtp-password -
Ge sedan Matomo inställningarna, med din egen server, ditt konto och din avsändare:
podman exec -u www-data matomo-app ./console config:set \
'mail.transport="smtp"' 'mail.host="mail.example.com"' 'mail.port=587' \
'mail.encryption="tls"' 'mail.type="Login"' 'mail.username="analytics@example.com"' \
'General.noreply_email_address="analytics@example.com"' 'General.noreply_email_name="Matomo"'
podman exec -u www-data matomo-app ./console config:set \
"mail.password=\"$(podman secret inspect --showsecret --format '{{.SecretData}}' matomo-smtp-password)\"" > /dev/null
podman exec -u www-data matomo-app ./console core:test-email you@example.com
tls på port 587 använder STARTTLS; för port 465 använder du mail.port=465 och mail.encryption="ssl". Precis som databaslösenordet sparar Matomo SMTP-lösenordet i config.ini.php, och > /dev/null håller det borta från skärmen. Vi testade inställningarna mot en e-postfälla på servern, med inloggning, inte mot en riktig leverantör.
För en veckorapport öppnar du Administration, Personal, Schedule Reports och väljer Create and schedule a report: ge den en Description, sätt Report Schedule till Weekly, lägg till fler mottagare under Also send the report to these emails, kryssa i rapporterna du vill ha, till exempel besöksöversikten, kanaler, mål och länder, och välj Create Report. Körningen varje timme från steg 7 skickar den. I vårt test kom rapporten fram som ett HTML-mejl till båda mottagarna.
12. Använd Matomo på svenska
Matomo är översatt till svenska. Varje användare väljer Svenska under Personal, Settings, Language och sparar med Save. Användare som inte har valt något språk får det som deras webbläsare ber om.
13. Importera från Google Analytics
Matomos kostnadsfria tillägg Google Analytics Importer kopierar dina gamla rapporter från Google Analytics 4 till Matomo, så att historiken inte börjar om från noll. Installera det som matomo:
podman exec -u www-data matomo-app ./console plugin:install-or-update GoogleAnalyticsImporter
podman exec -u www-data matomo-app ./console plugin:activate GoogleAnalyticsImporter
Det dyker upp under Administration, System, Google Analytics Import. För att använda det skapar du ett projekt i Google Cloud, slår på Google Analytics Data API och Admin API, och skapar en OAuth-klient av typen Web application, vars inställningsfil du laddar upp där (Matomos guide). Tillägget importerar rapporterna, inte de enskilda besöken: Visits Log, segment och e-handelsloggar är tomma för den importerade perioden, och mål kommer utan intäkter (Matomo). Vi installerade version 5.2.4 och såg dess sida för uppladdning, men importerade inget, eftersom det kräver ett Google-konto med data i Analytics.
14. Betalda tillägg
Matomos Marketplace, under Administration, Plugins, säljer tillägg som ingår i Matomo Cloud men inte i den kostnadsfria versionen. Fram till steg 15 visar Matomo dem också som menyval som leder till butiken, till exempel Funnels, Heatmaps och Session Recordings, även för användare som bara får titta. Priser från Marketplace 2026-10-14, per år, för upp till 4 användare, utan moms:
| Tillägg | Pris |
|---|---|
| Heatmap & Session Recording | 219 € |
| A/B Testing | 219 € |
| Custom Reports | 219 € |
| Funnels | 199 € |
| Media Analytics | 179 € |
| Advertising Conversion Export | 169 € |
| Crash Analytics | 153 € |
| Form Analytics | 149 € |
| Users Flow, Cohorts, Multi Channel Conversion Attribution, SEO Web Vitals | 89 € styck |
| Activity Log | 39 € |
| Login SAML, för enkel inloggning | 2 219 €, obegränsat antal användare |
Paketen börjar på 2 750 € om året för 9 tillägg och upp till 4 användare. Vi har inte testat något av dem. Kostnadsfria tillägg, som importen från Google Analytics och Marketing Campaigns Reporting, installerar du som i steg 13.
15. Stäng av externa anslutningar
Vi avlyssnade serverns DNS-uppslagningar och utgående anslutningar medan Matomo startade, visade översikten och Marketplace, och körde sina schemalagda uppgifter. Den kontaktade:
- api.matomo.org, för att leta efter en ny version, som sedan visas som New Update högst upp;
- plugins.matomo.org, Marketplace, för listan över tillägg, menyvalen för betalda tillägg och uppdateringar av tillägg;
- matomo.org, för nyhetsflödet i översikten;
- raw.githubusercontent.com, för uppdaterade listor över spam från hänvisande webbplatser, sökmotorer och sociala nätverk;
- download.db-ip.com, för en ny platsdatabas en gång i månaden;
- adressen till din egen webbplats, som Matomo slog upp med namn; vi tog inte reda på vilken funktion som gör det.
Var och en av dem får veta din servers adress och när den frågade, och ingen av dem får någon besöksdata. För att stänga av alla, som matomo:
podman exec -u www-data matomo-app ./console config:set 'General.enable_internet_features=0'
I en andra avlyssning gjorde Matomo inga externa anslutningar alls, menyvalen för betalda tillägg var borta, och Marketplace sa att den behöver en internetanslutning. För att installera ett tillägg senare sätter du värdet till 1 en stund. Du får då också själv hålla koll på nya versioner, som steg 17 beskriver.
Platsdatabasen uppdateras inte heller av sig själv längre. DB-IP ger ut en ny varje månad, under licensen Creative Commons Attribution 4.0, som kräver att du anger DB-IP som källa om du visar dess data, till exempel med en länk till https://db-ip.com på sidor som visar besökarnas platser. För att uppdatera den varje månad skapar du ~/geoip-update.sh:
#!/bin/sh
# Downloads this month's DB-IP city database for Matomo.
set -e
podman exec -u www-data matomo-app sh -c 'curl -fsS https://download.db-ip.com/free/dbip-city-lite-$(date +%Y-%m).mmdb.gz | gunzip > misc/DBIP-City.mmdb.new && mv misc/DBIP-City.mmdb.new misc/DBIP-City.mmdb'
Sedan ~/.config/systemd/user/matomo-geoip.service:
[Unit]
Description=Update Matomo's GeoIP database
[Service]
Type=oneshot
ExecStart=%h/geoip-update.sh
Och ~/.config/systemd/user/matomo-geoip.timer:
[Unit]
Description=Update Matomo's GeoIP database every month
[Timer]
OnCalendar=*-*-05 04:00
Persistent=true
[Install]
WantedBy=timers.target
chmod 700 ~/geoip-update.sh
systemctl --user daemon-reload
systemctl --user enable --now matomo-geoip.timer
systemctl --user start matomo-geoip.service
MaxMinds GeoLite2 är den andra kostnadsfria databasen som Matomo kan använda, under Administration, System, Geolocation. Den kräver ett konto och en licensnyckel hos MaxMind, och licensen kräver att du håller den uppdaterad. Vi har inte testat den.
16. Säkerhetskopiera
Matomo sparar besök, rapporter, användare och inställningar för varje webbplats i MariaDB, och sina egna inställningar, med databaslösenordet och det salt som inloggningarna bygger på, i config.ini.php. Som matomo skapar du ~/backup.sh:
#!/bin/sh
# Saves Matomo's database, settings, plugins and database password in ~/backup.
set -e
umask 077
mkdir -p ~/backup
cd ~/backup
podman exec matomo-db sh -c 'mariadb-dump -umatomo -p"$MARIADB_PASSWORD" --single-transaction matomo' | gzip > matomo-db.sql.gz
podman volume export matomo-config > matomo-config.tar
podman volume export matomo-plugins > matomo-plugins.tar
podman secret inspect --showsecret --format '{{.SecretData}}' matomo-db-password > db-password.txt
Kör den varje natt. Skapa ~/.config/systemd/user/matomo-backup.service:
[Unit]
Description=Back up Matomo
[Service]
Type=oneshot
ExecStart=%h/backup.sh
Och ~/.config/systemd/user/matomo-backup.timer:
[Unit]
Description=Back up Matomo every night
[Timer]
OnCalendar=*-*-* 03:00
Persistent=true
[Install]
WantedBy=timers.target
chmod 700 ~/backup.sh
systemctl --user daemon-reload
systemctl --user enable --now matomo-backup.timer
systemctl --user start matomo-backup.service
ls ~/backup
Dumpen körs medan Matomo fortsätter att fungera. Med våra testbesök var den 0,5 MB komprimerad; tilläggen tog 20 MB, nästan allt för importen från Google Analytics. Platsdatabasen är inte med, eftersom den laddas ner igen. Kopiera ~/backup till en annan maskin, till exempel med restic, och förvara den säkert: den innehåller all din statistik och lösenorden.
För att återställa på en ny server, eller för en ny användare matomo, gör du steg 1 och skapar de tre filerna från steg 3 utan att starta dem. Sedan, som matomo, med säkerhetskopian i ~/backup:
tr -d '\n' < ~/backup/db-password.txt | podman secret create matomo-db-password -
podman volume create matomo-config
podman volume import matomo-config ~/backup/matomo-config.tar
podman volume create matomo-plugins
podman volume import matomo-plugins ~/backup/matomo-plugins.tar
systemctl --user daemon-reload
systemctl --user start matomo-db
systemctl --user stop matomo-app
gunzip -c ~/backup/matomo-db.sql.gz | podman exec -i matomo-db sh -c 'mariadb -umatomo -p"$MARIADB_PASSWORD" matomo'
systemctl --user start matomo-app
När databasen startar, startar hela podden och Matomo med den, så stoppa Matomo innan du läser in dumpen. Sätt sedan upp timrarna från steg 7, 15 och 16 igen, och kör systemctl --user start matomo-geoip.service för platsdatabasen. Vi återställde så här efter att ha raderat användaren matomo och skapat den igen: alla 1 205 besök, rapporterna, målen, användarna och den schemalagda rapporten kom tillbaka, och de gamla lösenorden och API-token fungerade.
17. Uppdatera
MariaDB uppdateras inom 12.3 av sig själv via podman-auto-update.timer. Matomo ligger kvar på versionen i matomo-app.container, eftersom Matomos databas behöver uppdateras tillsammans med filerna. Nya versioner kommer ungefär en gång i månaden; efter steg 15 säger Matomo inte längre till, så följ Matomos changelog eller versionerna på GitHub. Avbilden följer Matomos versioner, ibland senare: den 14 oktober 2026 hade Matomo 5.14.1 funnits i tio dagar, medan avbilden fortfarande var på 5.14.0.
För att uppdatera tar du en säkerhetskopia (steg 16), byter version, startar om och uppdaterar databasen, som matomo:
systemctl --user start matomo-backup.service
cd ~/.config/containers/systemd
sed -i 's|matomo:5.14.0-apache|matomo:5.14.1-apache|' matomo-app.container
systemctl --user daemon-reload
systemctl --user restart matomo-app
podman exec -u www-data matomo-app ./console core:update --yes
podman image rm docker.io/library/matomo:5.14.0-apache
Vi uppdaterade från 5.13.0 till 5.14.0 på det här sättet. Den versionen hade inga ändringar i databasen, så core:update svarade "Everything is already up to date". Tillägg från Marketplace uppdaterar du med plugin:install-or-update och tilläggets namn. Matomo 6 är i beta; läs versionsinformationen innan du byter till den.
Felsökning
Varje besök har serverns adress, eller samma plats. proxy_client_headers från steg 5 saknas. Kontrollera med podman exec matomo-app grep proxy config/config.ini.php.
"The specified host is not valid" eller en varning om ett värdnamn som inte är betrott. Adressen i din webbläsare finns inte i trusted_hosts. Lägg till den som i steg 5.
Rapporterna är tomma eller gamla, trots att Visits Log har besök. Arkiveringen har inte körts. Kontrollera systemctl --user list-timers och journalctl --user -u matomo-archive som matomo.
Besökarna får _pk_-kakor, trots att kakor är avstängda. matomo.js är den från avbilden. Kör podman exec -u www-data matomo-app ./console custom-matomo-js:update, och kontrollera att matomo-app.container har de två raderna med ExecStartPost.
Diagnostiken säger "Directory to delete: custom-plugins". Matomos filkontroll känner inte till mappen för tillägg från steg 3. Låt den vara: den innehåller dina tillägg.
Matomo visar installationen igen. Volymen matomo-config är tom, till exempel efter en återställning utan importen av volymerna i steg 16. Kör inte installationen på en server som kan nås från internet; återställ säkerhetskopian i stället, eller stäng porten i Caddy tills du är klar.