Hostati Umami na Managed VPS-u znači čuvati analitiku svojih web-mjesta na stroju koji je vaš, a koji naši timovi održavaju ažurnim i nadziru danju i noću. Umami je slobodan softver pod licencom MIT koji mjeri promet bez kolačića. Ovaj vodič prati njegovu službenu dokumentaciju: instalaciju s Docker Composeom i PostgreSQL-om, HTTPS, prvu prijavu, skriptu za praćenje, ono što projekt kaže o osobnim podacima, korisne postavke, sigurnosne kopije i ažuriranja.
Autor: Simon Vasconcelos Lee
Objavljeno 15. studenoga 2026.Vrijeme čitanja: 12 minuta
APP_SECRET i TWO_FACTOR_ENCRYPTION_KEY, poslužujte Umami preko HTTPS-a na vlastitoj poddomeni, a zatim odmah promijenite lozinku računa admin.<head> svojih stranica: alat za praćenje ne koristi kolačiće.pg_dump, čuvajte datoteku .env na sigurnom mjestu, a ažurirajte s docker compose pull.Umami je platforma otvorenog koda za web-analitiku i analitiku proizvoda. Njegova dokumentacija opisuje alat koji objedinjuje promet, kampanje, ponašanje posjetitelja, konverzije, zadržavanje i prihode, od prvog posjeta do rezultata koji su važni vašem poslovanju. Napisan je u TypeScriptu na Next.js-u, a njegova Docker slika radi pod računom bez povlastica.
Jedna instanca prati više web-mjesta: svako dobiva vlastiti ID i skriptu za praćenje, a vaši se kolege snalaze zahvaljujući računima i timovima.
Umami je objavljen pod licencom MIT, u ime tvrtke Umami Software, Inc. Ona besplatno daje pravo na upotrebu, kopiranje, izmjenu, spajanje, objavljivanje, distribuciju, podlicenciranje i prodaju primjeraka softvera. Stoga ga možete pokretati za svoju tvrtku i za web-mjesta svojih klijenata, bez kupnje licence.
Njezin jedini uvjet: napomena o autorskim pravima i napomena o dopuštenju idu uz sve primjerke ili bitne dijelove softvera. Kao i svaka licenca MIT, softver daje „kakav jest”, bez jamstva.
Dokumentacija Umami predstavlja kao analitiku bez kolačića, bez praćenja između web-mjesta i bez automatskog prikupljanja osobnih podataka. Hostan na vlastitom poslužitelju, vašu analitiku čuva na vašem poslužitelju: vi odlučujete gdje se nalazi i koliko dugo ostaje.
| Pitanje | Što kaže projekt | Izvor |
|---|---|---|
| Kolačići | Web-alat za praćenje ne koristi kolačiće; treba li vašem web-mjestu obavijest o kolačićima ovisi o drugim uslugama koje koristite i o zahtjevima koji se primjenjuju | FAQ |
| Prikupljeni podaci | Pregledi stranica, URL-ovi izvora prometa, preglednici, operacijski sustavi, vrste uređaja i približna lokacija | FAQ |
| IP adresa | Tablica sesija nema stupac za IP adresu; ID sesije je hash web-mjesta, adrese, preglednika i soli koja se prema zadanim postavkama mijenja svaki mjesec | Shema i kod, inačica 3.4.1 |
| Zadržavanje | Uz hostanje na vlastitom poslužitelju podaci se čuvaju dok ih ne izbrišete | FAQ |
| GDPR | Umami je osmišljen s naglaskom na privatnost, a usklađenost ovisi o tome kako ga konfigurirate i koristite | FAQ |
| Podaci koje šaljete | ID posjetitelja ili svojstva događaja koja odlučite slati vaša su odgovornost | Uvod |
Tri postavke skripte za praćenje idu i dalje, ako želite: data-exclude-search uklanja parametre pretraživanja iz zabilježenih URL-ova, data-exclude-hash uklanja dio iza znaka #, a data-do-not-track isključuje praćenje za preglednike koji iskazuju postavku Do Not Track. Dokumentacija napominje da ta posljednja postavka sama po sebi nije cjelovito rješenje za upravljanje privolama.
Ako prijavljene posjetitelje identificirate s data-distinct-id ili umami.identify(), dokumentacija preporučuje interni ID korisnika ili hash umjesto adrese e-pošte: vrijednost se može pročitati u HTML-u stranice.
Repozitorij isporučuje docker-compose.yml koji pokreće Umami i njegovu bazu PostgreSQL. Od inačice 3 PostgreSQL je jedina podržana baza, najmanje u inačici 12.14, a dokumentacija preporučuje da je postavite na vremensku zonu UTC. Na poslužitelju s instaliranim Dockerom izradite mapu i počnite s njezinim tajnama, nasumično generiranima s openssl, kako predlaže dokumentacija:
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
Zatim pokraj nje stavite ovaj compose.yaml. Slijedi datoteku projekta u inačici 3.4.1, s dvije izmjene: tajne dolaze iz datoteke .env, a port je objavljen samo na 127.0.0.1.
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:
docker compose up -d
curl -s http://127.0.0.1:3000/api/heartbeat
DATABASE_URL: jedina obavezna varijabla, niz za povezivanje s bazom. Heksadecimalna lozinka upisuje se kakva jest; lozinka s posebnim znakovima zahtijevala bi postotno kodiranje.APP_SECRET: nasumični niz koji štiti autentifikacijske tokene, jedinstven za svaku instalaciju. U kodu inačice 3.4.1 ulazi i u izračun ID-ova sesija: neka ostane nepromijenjen.TWO_FACTOR_ENCRYPTION_KEY: 64 heksadecimalna znaka koja šifriraju tajne dvofaktorske autentifikacije. Bez njega nitko ne može uključiti dvofaktorsku autentifikaciju.admin. Provjera /api/heartbeat odgovara {"ok":true} kada je Umami spreman.latest prati posljednje objavljeno izdanje. Registar projekta objavljuje i oznake inačica, poput 3.4.1, kojima fiksirate onu koju pokrećete.Dokumentacija o instalaciji ne navodi potrebnu memoriju ni procesor. Veličina ovisi o prometu praćenih web-mjesta i o količini podataka koje čuvate. Na Managed VPS-u opišite nam svoju upotrebu, a mi vam preporučujemo odgovarajuću veličinu.
Umami sluša preko HTTP-a na portu 3000, a dokumentacija predlaže da ga poslužujete iza svojeg web-poslužitelja, preko obrnutog proxyja. Dodijelite mu vlastitu poddomenu, poput stats.example.com, koja pokazuje na poslužitelj putem A i AAAA zapisa. Posluživanje Umamija pod putanjom ide preko BASE_PATH, varijable koja se čita pri izradi aplikacije: uz objavljenu sliku poddomena je izravan put.
Proxy mora prosljeđivati i adresu posjetitelja. Umami je čita iz zaglavlja koja prima, među njima X-Real-IP i X-Forwarded-For: koristi je za razlikovanje posjetitelja i određivanje njihove zemlje. Ako vaš proxy koristi drugo zaglavlje, navodi ga CLIENT_IP_HEADER.
Caddy sam pribavlja certifikat Let’s Encrypt i uključuje HTTPS. Njegova direktiva reverse_proxy prema zadanim postavkama postavlja X-Forwarded-For: ova tri retka su sve što vam treba.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}
Ovaj blok preuzima primjer za Nginx iz dokumentacije Umamija, uz slušanje na portu 80 kako bi Certbot postavio HTTPS:
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 zatim postavlja certifikat i brine se za njegovu obnovu:
sudo certbot --nginx
Kada izradi svoju bazu, Umami otvara administratorski račun: korisničko ime admin, lozinka umami. Dokumentacija traži da tu lozinku promijenite pri prvoj prijavi.
admin i umami.Čuvajte TWO_FACTOR_ENCRYPTION_KEY sa svojim sigurnosnim kopijama: dokumentacija upozorava da gubitak ili promjena tog ključa spremljene tajne čini nečitljivima, a svaki se korisnik tada mora ponovno upisati u dvofaktorsku autentifikaciju.
<head> svojih stranica, a zatim posjetite svoje web-mjesto: podaci se odmah pojavljuju na nadzornoj ploči.<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>
next/script umjesto obične oznake <script>.data-domains ograničava praćenje na vaše produkcijske domene, čime vaša testna okruženja ostaju izvan statistike.localStorage.setItem('umami.disabled', 1).Neki blokatori oglasa blokiraju sve što nalikuje analitici. Uz hostanje na vlastitom poslužitelju Umami se već poslužuje s vaše domene, a dvije varijable idu i dalje: TRACKER_SCRIPT_NAME skripti daje drugi naziv umjesto script.js, a COLLECT_API_ENDPOINT preimenuje krajnju točku za prikupljanje, umjesto /api/send. Skripta tada sama poziva novu krajnju točku; na vašim se stranicama mijenja samo izvor koda za praćenje.
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"
Ove varijable okruženja idu u uslugu umami datoteke compose.yaml, a zatim docker compose up -d ponovno izrađuje kontejner kako bi ih uzeo u obzir:
| Varijabla | Što radi | Vrijednost |
|---|---|---|
DISABLE_TELEMETRY | Isključuje anonimnu telemetriju koju Umami šalje projektu radi poboljšanja aplikacije | 1 |
PRIVATE_MODE | Isključuje sve vanjske mrežne pozive, uključujući ikone web-mjesta, koje prema zadanim postavkama dolaze s DuckDuckGoa | 1 |
DISABLE_UPDATES | Isključuje provjeru novih inačica | 1 |
IGNORE_IP | Iz prikupljanja podataka isključuje IP adrese i CIDR raspone, primjerice one vaših ureda | Popis odvojen zarezima |
SALT_ROTATION | Određuje koliko se često mijenja sol na kojoj se temelje ID-ovi sesija | Prema zadanim postavkama month |
REDIS_URL | Dodaje predmemoriju Redis, koju dokumentacija preporučuje za web-mjesta s velikim prometom ili za više instanci | Vaša adresa Redisa |
MCP_ENABLED | Otvara krajnju točku /mcp: vaš AI asistent čita vašu analitiku samo za čitanje, s API ključem izrađenim u izborniku Settings, API keys | 1 |
Sve što Umami čuva nalazi se u njegovoj bazi PostgreSQL: računi, web-mjesta, timovi i analitika. Izvezite je svaki dan i neposredno prije svakog ažuriranja: uz hostanje na vlastitom poslužitelju ti se podaci čuvaju bez vremenskog ograničenja. Uz bazu, datoteka .env sadrži tajne koje je čine upotrebljivom:
| Element | Što čuva | Za sigurnosno kopiranje |
|---|---|---|
| Baza PostgreSQL | Račune, web-mjesta, timove, izvješća i svu analitiku | Obavezno, s pg_dump |
.env | Lozinku baze, APP_SECRET i ključ dvofaktorske autentifikacije | Obavezno, šifrirano |
compose.yaml | Konfiguraciju vaše instance | Preporučeno |
pg_dump izrađuje dosljedan izvoz dok se baza koristi. Prilagođeni format, -Fc, sažet je i vraća se s pg_restore:
docker compose exec -T db pg_dump -U umami -d umami -Fc > umami-$(date +%F).dump
Tu naredbu planirajte na poslužitelju barem jednom dnevno, povremeno prorijedite izvoze, koji se nakupljaju, i kopiju pošaljite na drugo mjesto. Čuvani na disku poslužitelja, ti izvozi ulaze i u njegove noćne sigurnosne kopije.
docker compose stop umami.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
Tu vježbu povremeno ponovite, na kopiji: tako provjeravate da sigurnosna kopija radi.
Dokumentacija daje dvije naredbe, iz mape s datotekom compose.yaml. Baza ostaje u svojem volumenu:
docker compose pull
docker compose up --force-recreate -d
Pri ponovnom pokretanju kontejner sam primjenjuje migracije sheme. Inačica 3.4.0 od 17. rujna 2026. donijela ih je dvije, za bilješke i API ključeve; inačica 3.4.1 od 23. listopada 2026. ne donosi nijednu. Nakon velike nadogradnje, poput prelaska na inačicu 3, dokumentacija predlaže pokretanje naredbe ANALYZE u PostgreSQL-u kako bi nadzorne ploče vratile svoju brzinu:
docker compose exec db psql -U umami -d umami -c "ANALYZE;"
postgres:15-alpine iz datoteke. Prelazak na novu glavnu inačicu PostgreSQL-a traži izvoz i vraćanje ili pg_upgrade.Hostanje na vlastitom poslužitelju traži da uz aplikaciju održavate i poslužitelj. Na Managed VPS-u naši timovi preuzimaju poslužitelj i proaktivno prate vašu instancu; Umami ostaje vaš softver, sa svojim postavkama i podacima.
| Tema | Naši timovi | Vi |
|---|---|---|
| Poslužitelj | Ažuriranja sustava i sigurnosti, uključujući intervencije na poslužitelju | Trenutak koji odgovara vašem poslovanju |
| Nadzor | Poslužitelj pod nadzorom 24 sata dnevno, 7 dana u tjednu, s intervencijom bez čekanja vašeg poziva | Čitanje zapisnika vaše instance |
| Umami | Proaktivno praćenje: uočene pogreške, usporavanja i prostor na disku, preporučen ispravak | Njegova instalacija, ažuriranja i postavke, koje primjenjujete vi ili vaš AI asistent |
| Web-mjesta i analitika | Poslužitelj koji ih nosi, nadziran i sigurnosno kopiran | Računi, praćena web-mjesta, skripta za praćenje i trajanje čuvanja podataka |
| Sigurnosne kopije | Svake noći, šifrirane i čuvane izvan stroja; vraćanje uključeno | Izvozi specifični za Umami i zahtjev za vraćanje, kada vam zatreba |
| Migracija | Vaš trenutačni poslužitelj migriran, besplatno | Trenutak prelaska |
Ako želite da naši timovi interveniraju u samoj aplikaciji, ta se usluga naplaćuje po satu ili paušalno, uz procjenu koja vam se priopćuje prije intervencije.
Uz Simafri Managed VPS naši timovi održavaju poslužitelj vaše instance Umamija ažurnim, nadziru ga danju i noću i interveniraju bez čekanja vašeg poziva; uz to proaktivno prate vašu instancu i preporučuju vam korisne ispravke, koje primjenjujete vi ili vaš AI asistent. Sigurnosne kopije svake se noći šifriraju i čuvaju izvan stroja, njihovo vraćanje je uključeno, a migracija vašeg trenutačnog poslužitelja je besplatna.
Da. Umami je pod licencom MIT: možete ga koristiti, mijenjati i dalje distribuirati u tvrtki bez kupnje licence, uz zadržavanje napomene o autorskim pravima. Ostaje trošak poslužitelja na kojem radi.
Ne. FAQ projekta navodi da web-alat za praćenje Umami ne koristi kolačiće. Treba li vašem web-mjestu obavijest o kolačićima ovisi o drugim uslugama koje na njemu koristite i o zahtjevima koji se primjenjuju.
Ne od inačice 3: Umami podržava PostgreSQL, najmanje u inačici 12.14. Instanca inačice 2 na MySQL-u najprije premješta svoje podatke na PostgreSQL prema vodiču za migraciju projekta, a zatim se nadograđuje na inačicu 3.
Krenite od datoteke docker-compose.yml projekta, koja pokreće Umami i PostgreSQL, s nasumičnim tajnama u datoteci .env i portom objavljenim na 127.0.0.1. Pokrenite docker compose up -d, a zatim ispred postavite obrnuti proxy s HTTPS-om, na poddomeni.
Pri instalaciji Umami izrađuje račun admin s lozinkom umami. Promijenite je pri prvoj prijavi, u izborniku Settings, zatim Profile, i uključite dvofaktorsku autentifikaciju na kartici Security nakon što je postavljen TWO_FACTOR_ENCRYPTION_KEY.
Na samostalno hostanoj instanci TRACKER_SCRIPT_NAME skripti daje drugi naziv umjesto script.js, a COLLECT_API_ENDPOINT preimenuje krajnju točku za prikupljanje /api/send. Zatim na svojim stranicama promijenite izvor koda za praćenje.
Svaki dan izvezite bazu PostgreSQL s pg_dump, iz kontejnera baze, a datoteku .env čuvajte zasebno, jer sadrži APP_SECRET i ključ dvofaktorske autentifikacije. Vraćajte s pg_restore i redovito testirajte vraćanje.
Managed VPS pokriva poslužitelj: sustav, sigurnost, nadzor i sigurnosne kopije. Naši timovi proaktivno prate i vašu instancu te vam preporučuju korisne ispravke, koje primjenjujete vi. Intervencija u aplikaciji naplaćuje se po satu ili paušalno.
Simafri
Porazgovarajmo o Vašem projektu
Recite nam u nekoliko riječi što trebate: javljamo Vam se brzo.
Hvala! Vaš upit je poslan. Javit ćemo vam se uskoro.
Više volite e-mail? Pišite nam na support@simafri.com.