Hostovat Umami na Managed VPS znamená mít statistiky svých webů na vlastním stroji, který naše týmy udržují aktuální a ve dne i v noci hlídají. Umami je svobodný software pod licencí MIT, který měří návštěvnost bez cookies. Tento průvodce sleduje jeho oficiální dokumentaci: instalaci pomocí Docker Compose a PostgreSQL, HTTPS, první přihlášení, měřicí skript, co projekt říká o osobních údajích, užitečná nastavení, zálohy a aktualizace.
Autor: Simon Vasconcelos Lee
Publikováno 15. listopadu 2026Doba čtení: 12 minut
APP_SECRET a TWO_FACTOR_ENCRYPTION_KEY, provozujte Umami přes HTTPS na vlastní subdoméně a hned změňte heslo účtu admin.<head> svých stránek: měřicí skript cookies nepoužívá.pg_dump, uchovávejte soubor .env na bezpečném místě a aktualizujte pomocí docker compose pull.Umami je otevřená platforma pro analytiku webů a produktů. Jeho dokumentace popisuje nástroj, který spojuje návštěvnost, kampaně, chování návštěvníků, konverze, retenci a tržby, od první návštěvy po výsledky, na kterých vaší firmě záleží. Je napsaný v TypeScriptu nad Next.js a jeho obraz Docker běží pod účtem bez zvláštních práv.
Jedna instance sleduje několik webů: každý dostane vlastní ID a měřicí skript a vaši kolegové se v nich vyznají díky účtům a týmům.
Umami je vydáván pod licencí MIT, jménem Umami Software, Inc. Ta bezplatně uděluje právo software používat, kopírovat, upravovat, slučovat, zveřejňovat, šířit, sublicencovat a prodávat jeho kopie. Můžete ho tedy provozovat pro svou firmu i pro weby svých klientů, aniž byste kupovali licenci.
Její jedinou podmínkou je, že upozornění o autorských právech a upozornění o oprávnění doprovázejí všechny kopie nebo podstatné části softwaru. Jako každá licence MIT poskytuje software „tak, jak je“, bez záruky.
Dokumentace představuje Umami jako analytiku bez cookies, bez sledování napříč weby a bez automatického sběru osobních údajů. Při vlastním hostingu zůstávají vaše statistiky na vašem vlastním serveru: rozhodujete, kde budou a jak dlouho se uchovají.
| Otázka | Co říká projekt | Zdroj |
|---|---|---|
| Cookies | Webový měřicí skript cookies nepoužívá; zda váš web potřebuje lištu o cookies, závisí na ostatních službách, které používáte, a na požadavcích, které se na vás vztahují | FAQ |
| Sbíraná data | Zobrazení stránek, adresy odkazujících stránek, prohlížeče, operační systémy, typy zařízení a přibližná poloha | FAQ |
| Adresa IP | Tabulka relací nemá sloupec pro adresu IP; ID relace je haš webu, adresy, prohlížeče a soli, která se ve výchozím nastavení mění každý měsíc | Schéma a kód, verze 3.4.1 |
| Doba uchování | Při vlastním hostingu se data uchovávají, dokud je nesmažete | FAQ |
| GDPR | Umami je navržen s ohledem na soukromí a soulad závisí na tom, jak ho nastavíte a používáte | FAQ |
| Data, která posíláte | Za ID návštěvníka nebo vlastnosti událostí, které se rozhodnete posílat, odpovídáte vy | Úvod |
Tři nastavení měřicího skriptu jdou podle přání dál: data-exclude-search odstraní z ukládaných adres parametry vyhledávání, data-exclude-hash odstraní kotvu a data-do-not-track vypne měření u prohlížečů, které zveřejňují preferenci Do Not Track. Dokumentace poznamenává, že toto poslední nastavení samo o sobě není úplným řešením správy souhlasu.
Pokud přihlášené návštěvníky identifikujete pomocí data-distinct-id nebo umami.identify(), dokumentace doporučuje interní ID uživatele nebo haš místo e-mailové adresy: hodnotu lze přečíst v HTML stránky.
Repozitář dodává docker-compose.yml, který spouští Umami a jeho databázi PostgreSQL. Od verze 3 je PostgreSQL jedinou podporovanou databází, minimálně ve verzi 12.14, a dokumentace doporučuje nastavit ji na časové pásmo UTC. Na serveru s nainstalovaným Dockerem vytvořte složku a začněte jejími tajnými údaji, náhodně vygenerovanými pomocí openssl, jak navrhuje dokumentace:
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
Pak vedle něj umístěte tento compose.yaml. Vychází ze souboru projektu ve verzi 3.4.1, se dvěma změnami: tajné údaje pocházejí ze souboru .env a port je publikovaný jen 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: jediná povinná proměnná, připojovací řetězec k databázi. Šestnáctkové heslo se vkládá tak, jak je; heslo se speciálními znaky by vyžadovalo procentuální kódování.APP_SECRET: náhodný řetězec, který zabezpečuje ověřovací tokeny, jedinečný pro každou instalaci. V kódu verze 3.4.1 vstupuje také do výpočtu ID relací: ponechte ho neměnný.TWO_FACTOR_ENCRYPTION_KEY: 64 šestnáctkových znaků, které šifrují tajné údaje dvoufázového ověření. Bez něj nikdo dvoufázové ověření nezapne.admin. Sonda /api/heartbeat odpoví {"ok":true}, jakmile je Umami připraven.latest sleduje poslední zveřejněné vydání. Registr projektu zveřejňuje i značky verzí, jako 3.4.1, kterými pevně určíte tu, kterou provozujete.Instalační dokumentace neuvádí žádný údaj o paměti ani procesoru. Velikost závisí na návštěvnosti sledovaných webů a na objemu dat, která uchováváte. Na Managed VPS nám popište své využití a doporučíme vám vhodnou velikost.
Umami naslouchá přes HTTP na portu 3000 a dokumentace navrhuje provozovat ho za vaším webovým serverem, přes reverzní proxy. Dejte mu vlastní subdoménu, například stats.example.com, která na server ukazuje záznamy A a AAAA. Provoz Umami pod cestou vede přes BASE_PATH, proměnnou čtenou při sestavení aplikace: se zveřejněným obrazem je subdoména přímou cestou.
Proxy musí také předávat adresu návštěvníka. Umami ji čte z hlaviček, které dostává, mimo jiné z X-Real-IP a X-Forwarded-For: slouží mu k rozlišení návštěvníků a k určení jejich země. Pokud vaše proxy používá jinou hlavičku, pojmenuje ji CLIENT_IP_HEADER.
Caddy získá certifikát Let’s Encrypt a zapne HTTPS samo. Jeho direktiva reverse_proxy ve výchozím nastavení nastavuje X-Forwarded-For: tyto tři řádky stačí.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}
Tento blok vychází z příkladu Nginx v dokumentaci Umami a naslouchá na portu 80, aby HTTPS nasadil Certbot:
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 pak nainstaluje certifikát a postará se o jeho obnovu:
sudo certbot --nginx
Při vytváření databáze otevře Umami účet správce: uživatelské jméno admin, heslo umami. Dokumentace žádá toto heslo změnit při prvním přihlášení.
admin a umami.Uchovávejte TWO_FACTOR_ENCRYPTION_KEY se svými zálohami: dokumentace upozorňuje, že ztráta nebo změna tohoto klíče učiní uložené tajné údaje nečitelnými a každý uživatel si pak musí dvoufázové ověření nastavit znovu.
<head> svých stránek a pak navštivte svůj web: data se v přehledu objeví okamžitě.<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>
next/script místo prosté značky <script>.data-domains omezí měření na vaše produkční domény, čímž zůstanou vaše testovací prostředí mimo statistiky.localStorage.setItem('umami.disabled', 1).Některé blokátory reklam blokují vše, co připomíná analytiku. Při vlastním hostingu se Umami už nabízí z vaší vlastní domény a dvě proměnné jdou dál: TRACKER_SCRIPT_NAME dá skriptu jiný název než script.js a COLLECT_API_ENDPOINT přejmenuje sběrný koncový bod místo /api/send. Skript pak nový koncový bod volá sám; na vašich stránkách se mění jen zdroj měřicího kódu.
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"
Tyto proměnné prostředí patří do služby umami v compose.yaml a docker compose up -d pak kontejner znovu vytvoří, aby je převzal:
| Proměnná | Co dělá | Hodnota |
|---|---|---|
DISABLE_TELEMETRY | Vypne anonymní telemetrii, kterou Umami posílá projektu pro zlepšování aplikace | 1 |
PRIVATE_MODE | Vypne všechna externí síťová volání, včetně ikon webů, ve výchozím nastavení načítaných z DuckDuckGo | 1 |
DISABLE_UPDATES | Vypne kontrolu nových verzí | 1 |
IGNORE_IP | Vyloučí ze sběru dat adresy IP a rozsahy CIDR, například adresy vašich kanceláří | Seznam oddělený čárkami |
SALT_ROTATION | Určuje, jak často se mění sůl, ze které vycházejí ID relací | Ve výchozím nastavení month |
REDIS_URL | Přidá mezipaměť Redis, kterou dokumentace doporučuje pro weby s vysokou návštěvností nebo pro více instancí | Vaše adresa Redis |
MCP_ENABLED | Otevře koncový bod /mcp: váš AI asistent čte vaše statistiky jen pro čtení, s klíčem API vytvořeným v Settings, API keys | 1 |
Vše, co Umami uchovává, je v jeho databázi PostgreSQL: účty, weby, týmy a statistiky. Exportujte ji každý den a těsně před každou aktualizací: při vlastním hostingu se tato data uchovávají bez časového omezení. Vedle databáze obsahuje soubor .env tajné údaje, díky kterým je použitelná:
| Položka | Co uchovává | Zálohovat |
|---|---|---|
| Databáze PostgreSQL | Účty, weby, týmy, přehledy a veškeré statistiky | Povinně, pomocí pg_dump |
.env | Heslo k databázi, APP_SECRET a klíč dvoufázového ověření | Povinně, šifrovaně |
compose.yaml | Konfiguraci vaší instance | Doporučeno |
pg_dump vytvoří konzistentní export, i když se databáze používá. Vlastní formát, -Fc, je komprimovaný a obnovuje se pomocí pg_restore:
docker compose exec -T db pg_dump -U umami -d umami -Fc > umami-$(date +%F).dump
Naplánujte tento příkaz na serveru alespoň jednou denně, exporty, které se hromadí, třiďte a kopii posílejte jinam. Uložené na disku serveru se tyto exporty dostanou i do jeho nočních záloh.
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
Toto cvičení čas od času zopakujte na kopii: tak ověříte, že záloha funguje.
Dokumentace uvádí dva příkazy, ze složky se souborem compose.yaml. Databáze zůstává ve svém svazku:
docker compose pull
docker compose up --force-recreate -d
Při restartu kontejner sám použije migrace schématu. Verze 3.4.0 ze 17. září 2026 jich přinesla dvě, pro anotace a klíče API; verze 3.4.1 z 23. října 2026 žádnou. Po velké aktualizaci, jako byl přechod na verzi 3, navrhuje dokumentace spustit v PostgreSQL ANALYZE, aby přehledy znovu získaly svou rychlost:
docker compose exec db psql -U umami -d umami -c "ANALYZE;"
postgres:15-alpine ze souboru. Přechod na novou hlavní verzi PostgreSQL vyžaduje export a obnovu, nebo pg_upgrade.Vlastní hosting vyžaduje, abyste kromě aplikace udržovali i server. Na Managed VPS se serveru ujímají naše týmy a vaši instanci proaktivně sledují; Umami zůstává vaším softwarem, s jeho nastavením a daty.
| Téma | Naše týmy | Vy |
|---|---|---|
| Server | Aktualizace systému a zabezpečení, včetně zásahů na serveru | Okamžik, který vyhovuje vašemu provozu |
| Dohled | Server sledovaný 24 hodin denně, 7 dní v týdnu, se zásahem bez čekání na vaše volání | Čtení protokolů vaší instance |
| Umami | Proaktivní sledování: chyby, zpomalení a místo na disku zachycené, doporučená oprava | Jeho instalace, aktualizace a nastavení, které zapracujete vy nebo váš AI asistent |
| Weby a statistiky | Server, který je nese, hlídaný a zálohovaný | Účty, sledované weby, měřicí skript a doba uchování dat |
| Zálohy | Každou noc, šifrované a uchovávané mimo stroj; obnova v ceně | Exporty vlastní Umami a žádost o obnovu, když ji potřebujete |
| Migrace | Váš stávající server přenesen zdarma | Okamžik přepnutí |
Pokud dáváte přednost tomu, aby naše týmy zasáhly přímo v aplikaci, tato služba se účtuje po hodinách nebo paušálem, s cenovou nabídkou sdělenou před zásahem.
S Managed VPS od Simafri udržují naše týmy server vaší instance Umami aktuální, hlídají ho ve dne i v noci a zasahují bez čekání na vaše volání; vaši instanci také proaktivně sledují a doporučí vám užitečné opravy, které zapracujete vy nebo váš AI asistent. Zálohy se každou noc šifrují a uchovávají mimo stroj, jejich obnova je v ceně a migrace vašeho stávajícího serveru je zdarma.
Ano. Umami je pod licencí MIT: můžete ho ve firmě používat, upravovat a dále šířit, aniž byste kupovali licenci, pokud zachováte jeho upozornění o autorských právech. Zbývají náklady na server, na kterém běží.
Ne. FAQ projektu uvádí, že webový měřicí skript Umami cookies nepoužívá. Zda váš web potřebuje lištu o cookies, závisí na ostatních službách, které na něm používáte, a na požadavcích, které se na vás vztahují.
Od verze 3 ne: Umami podporuje PostgreSQL, minimálně ve verzi 12.14. Instance verze 2 na MySQL nejdřív přenese svá data na PostgreSQL podle průvodce migrací projektu a pak se aktualizuje na verzi 3.
Vyjděte ze souboru docker-compose.yml projektu, který spouští Umami a PostgreSQL, s náhodnými tajnými údaji v souboru .env a portem publikovaným na 127.0.0.1. Spusťte docker compose up -d a pak před něj umístěte reverzní proxy s HTTPS, na subdoméně.
Při instalaci vytvoří Umami účet admin s heslem umami. Změňte ho při prvním přihlášení v Settings a pak Profile a zapněte dvoufázové ověření na kartě Security, jakmile je nastaven TWO_FACTOR_ENCRYPTION_KEY.
Na instanci ve vlastním hostingu dá TRACKER_SCRIPT_NAME skriptu jiný název než script.js a COLLECT_API_ENDPOINT přejmenuje sběrný koncový bod /api/send. Pak na svých stránkách změňte zdroj měřicího kódu.
Každý den exportujte databázi PostgreSQL pomocí pg_dump z databázového kontejneru a soubor .env uchovávejte zvlášť, protože obsahuje APP_SECRET a klíč dvoufázového ověření. Obnovujte pomocí pg_restore a obnovu pravidelně zkoušejte.
Managed VPS pokrývá server: systém, zabezpečení, dohled a zálohy. Naše týmy také proaktivně sledují vaši instanci a doporučí vám užitečné opravy, které zapracujete vy. Zásah v samotné aplikaci se účtuje po hodinách nebo paušálem.
Simafri
Promluvme si o vašem záměru
Řekněte nám v pár slovech, co potřebujete: rychle se vám ozveme.
Děkujeme! Vaše zpráva byla odeslána. Brzy se vám ozveme.
Máte raději e-mail? Napište nám na support@simafri.com.