Umami talpinimas Managed VPS serveryje reiškia, kad jūsų svetainių analitika lieka jūsų mašinoje, kurią mūsų komandos prižiūri atnaujintą ir stebi dieną bei naktį. Umami yra laisva programinė įranga su MIT licencija, matuojanti lankomumą be slapukų. Šis gidas seka oficialią jos dokumentaciją: diegimą su Docker Compose ir PostgreSQL, HTTPS, pirmąjį prisijungimą, sekimo scenarijų, ką projektas sako apie asmens duomenis, naudingus nustatymus, atsargines kopijas ir atnaujinimus.
Autorius: Simon Vasconcelos Lee
Paskelbta 2026 m. lapkričio 15 d.Skaitymo trukmė: 12 min.
APP_SECRET ir TWO_FACTOR_ENCRYPTION_KEY, teikite Umami per HTTPS atskirame subdomene, tada iškart pakeiskite paskyros admin slaptažodį.<head>: sekimo scenarijus nenaudoja slapukų.pg_dump, laikykite failą .env saugioje vietoje, o atnaujinkite su docker compose pull.Umami yra atvirojo kodo svetainių ir produktų analitikos platforma. Jos dokumentacija aprašo įrankį, kuris sujungia lankomumą, kampanijas, lankytojų elgseną, konversijas, išlaikymą ir pajamas, nuo pirmojo apsilankymo iki jūsų verslui svarbių rezultatų. Ji parašyta TypeScript kalba su Next.js, o jos Docker atvaizdas veikia neprivilegijuota paskyra.
Vienas egzempliorius seka kelias svetaines: kiekviena gauna savo ID ir sekimo scenarijų, o jūsų kolegos orientuojasi per paskyras ir komandas.
Umami platinama pagal MIT licenciją, Umami Software, Inc. vardu. Ji nemokamai suteikia teisę naudoti, kopijuoti, keisti, sujungti, skelbti, platinti, sublicencijuoti ir parduoti programinės įrangos kopijas. Todėl ją galite paleisti savo verslui ir savo klientų svetainėms, nieko nepirkdami dėl licencijos.
Vienintelė jos sąlyga: autorių teisių pranešimas ir leidimo pranešimas pridedami prie visų programinės įrangos kopijų ar esminių jos dalių. Kaip ir bet kuri MIT licencija, ji programinę įrangą teikia „tokią, kokia yra“, be garantijos.
Dokumentacija Umami pristato kaip analitiką be slapukų, be sekimo tarp svetainių ir be automatinio asmens duomenų rinkimo. Talpinama savo serveryje, ji laiko jūsų analitiką jūsų serveryje: jūs sprendžiate, kur ji laikoma ir kiek laiko išlieka.
| Klausimas | Ką sako projektas | Šaltinis |
|---|---|---|
| Slapukai | Žiniatinklio sekimo scenarijus nenaudoja slapukų; ar jūsų svetainei reikia pranešimo apie slapukus, priklauso nuo kitų jūsų naudojamų paslaugų ir taikomų reikalavimų | DUK |
| Renkami duomenys | Puslapių peržiūros, nukreipiančių šaltinių URL, naršyklės, operacinės sistemos, įrenginių tipai ir apytikrė vieta | DUK |
| IP adresas | Sesijų lentelėje nėra IP adreso stulpelio; sesijos ID yra svetainės, adreso, naršyklės ir druskos, numatytai keičiamos kas mėnesį, maiša | Schema ir kodas, 3.4.1 versija |
| Saugojimo trukmė | Talpinant savo serveryje, duomenys saugomi, kol juos ištrinate | DUK |
| BDAR | Umami sukurta atsižvelgiant į privatumą, o atitiktis priklauso nuo to, kaip ją konfigūruojate ir naudojate | DUK |
| Jūsų siunčiami duomenys | Lankytojo ID ar įvykių savybės, kurias nusprendžiate siųsti, yra jūsų atsakomybė | Įvadas |
Trys sekimo scenarijaus nustatymai, jei norite, eina toliau: data-exclude-search pašalina paieškos parametrus iš įrašomų URL, data-exclude-hash pašalina maišos dalį, o data-do-not-track išjungia sekimą naršyklėms, kurios atskleidžia Do Not Track nuostatą. Dokumentacija pažymi, kad pastarasis nustatymas savaime nėra išsamus sutikimų valdymo sprendimas.
Jei prisijungusius lankytojus identifikuojate su data-distinct-id ar umami.identify(), dokumentacija rekomenduoja vidinį naudotojo ID ar maišą, o ne el. pašto adresą: reikšmę galima perskaityti puslapio HTML kode.
Saugykloje pateikiamas docker-compose.yml, kuris paleidžia Umami ir jos PostgreSQL duomenų bazę. Nuo 3 versijos PostgreSQL yra vienintelė palaikoma duomenų bazė, ne senesnė nei 12.14, o dokumentacija rekomenduoja nustatyti jai UTC laiko juostą. Serveryje, kuriame įdiegtas Docker, sukurkite katalogą ir pradėkite nuo jos slaptų reikšmių, atsitiktinai sugeneruotų su openssl, kaip siūlo 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
Tada šalia padėkite šį compose.yaml. Jis seka projekto failą 3.4.1 versijoje su dviem pakeitimais: slaptos reikšmės imamos iš failo .env, o prievadas skelbiamas tik adresu 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: vienintelis privalomas kintamasis, duomenų bazės prisijungimo eilutė. Šešioliktainis slaptažodis įrašomas toks, koks yra; slaptažodį su specialiaisiais simboliais reikėtų užrašyti procentų kodavimu.APP_SECRET: atsitiktinė eilutė, sauganti autentifikavimo žetonus, unikali kiekvienam diegimui. 3.4.1 versijos kode ji taip pat naudojama sesijų ID skaičiavimui: laikykite ją nekintamą.TWO_FACTOR_ENCRYPTION_KEY: 64 šešioliktainiai simboliai, šifruojantys dviejų veiksnių autentifikavimo paslaptis. Be jo niekas negali įjungti dviejų veiksnių autentifikavimo.admin. Zondas /api/heartbeat atsako {"ok":true}, kai Umami pasiruošusi.latest seka naujausią paskelbtą versiją. Projekto registre taip pat skelbiamos versijų žymos, pavyzdžiui, 3.4.1, kad užfiksuotumėte naudojamą versiją.Diegimo dokumentacija nenurodo nei atminties, nei procesoriaus dydžio. Dydis priklauso nuo sekamų svetainių lankomumo ir saugomų duomenų apimties. Naudojant Managed VPS, papasakokite mums, kaip ketinate naudotis, ir mes rekomenduosime tinkamą dydį.
Umami klausosi per HTTP 3000 prievadu, o dokumentacija siūlo ją teikti už jūsų žiniatinklio serverio, per atvirkštinį tarpinį serverį. Suteikite jai atskirą subdomeną, pavyzdžiui, stats.example.com, nukreiptą į serverį A ir AAAA įrašais. Umami teikimas po keliu vyksta per BASE_PATH, kintamąjį, nuskaitomą programos kūrimo metu: su paskelbtu atvaizdu subdomenas yra tiesiausias kelias.
Tarpinis serveris taip pat turi perduoti lankytojo adresą. Umami jį nuskaito iš gaunamų antraščių, įskaitant X-Real-IP ir X-Forwarded-For: juo ji atskiria lankytojus ir nustato jų šalį. Jei jūsų tarpinis serveris naudoja kitą antraštę, ją nurodo CLIENT_IP_HEADER.
Caddy pati gauna Let’s Encrypt sertifikatą ir įjungia HTTPS. Jos direktyva reverse_proxy numatytai nustato X-Forwarded-For: užtenka šių trijų eilučių.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}
Šis blokas seka Umami dokumentacijos Nginx pavyzdį ir klausosi 80 prievado, kad HTTPS įdiegtų 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;
}
}
Tada Certbot įdiegia sertifikatą ir pasirūpina jo atnaujinimu:
sudo certbot --nginx
Kurdama savo duomenų bazę, Umami atveria administratoriaus paskyrą: naudotojo vardas admin, slaptažodis umami. Dokumentacija prašo šį slaptažodį pakeisti pirmą kartą prisijungus.
admin ir umami.Laikykite TWO_FACTOR_ENCRYPTION_KEY kartu su atsarginėmis kopijomis: dokumentacija įspėja, kad praradus ar pakeitus šį raktą saugomos paslaptys tampa neperskaitomos, ir tada kiekvienas naudotojas turi iš naujo užsiregistruoti dviejų veiksnių autentifikavimui.
<head>, tada apsilankykite savo svetainėje: duomenys iškart pasirodo skydelyje.<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>
next/script, o ne paprasta žyma <script>.data-domains riboja sekimą jūsų gamybiniais domenais, todėl bandomosios aplinkos nepatenka į statistiką.localStorage.setItem('umami.disabled', 1).Kai kurie reklamų blokatoriai blokuoja viską, kas panašu į analitiką. Talpinama savo serveryje, Umami jau teikiama iš jūsų domeno, o du kintamieji eina toliau: TRACKER_SCRIPT_NAME scenarijui suteikia kitą pavadinimą nei script.js, o COLLECT_API_ENDPOINT pervadina duomenų rinkimo galinį tašką vietoj /api/send. Tada scenarijus pats kreipiasi į naują galinį tašką; jūsų puslapiuose keičiasi tik sekimo kodo šaltinis.
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"
Šie aplinkos kintamieji dedami į compose.yaml paslaugą umami, tada docker compose up -d sukuria konteinerį iš naujo, kad juos pritaikytų:
| Kintamasis | Ką jis daro | Reikšmė |
|---|---|---|
DISABLE_TELEMETRY | Išjungia anoniminę telemetriją, kurią Umami siunčia projektui programai tobulinti | 1 |
PRIVATE_MODE | Išjungia visas išorines tinklo užklausas, įskaitant svetainių piktogramas, numatytai teikiamas iš DuckDuckGo | 1 |
DISABLE_UPDATES | Išjungia naujų versijų tikrinimą | 1 |
IGNORE_IP | Pašalina IP adresus ir CIDR diapazonus iš duomenų rinkimo, pavyzdžiui, jūsų biurų | Kableliais atskirtas sąrašas |
SALT_ROTATION | Nustato, kaip dažnai keičiama sesijų ID druska | Numatytai month |
REDIS_URL | Prideda Redis podėlį, kurį dokumentacija rekomenduoja didelio lankomumo svetainėms ar keliems egzemplioriams | Jūsų Redis adresas |
MCP_ENABLED | Atveria galinį tašką /mcp: jūsų DI asistentas skaito jūsų analitiką tik skaitymo režimu, su API raktu, sukurtu skiltyje Settings, API keys | 1 |
Viskas, ką saugo Umami, yra jos PostgreSQL duomenų bazėje: paskyros, svetainės, komandos ir analitika. Eksportuokite ją kasdien ir prieš pat kiekvieną atnaujinimą: talpinant savo serveryje, šie duomenys saugomi be laiko ribos. Šalia duomenų bazės failas .env laiko slaptas reikšmes, be kurių jos neįmanoma naudoti:
| Elementas | Ką jis saugo | Ar kopijuoti |
|---|---|---|
| PostgreSQL duomenų bazė | Paskyras, svetaines, komandas, ataskaitas ir visą analitiką | Privaloma, su pg_dump |
.env | Duomenų bazės slaptažodį, APP_SECRET ir dviejų veiksnių autentifikavimo raktą | Privaloma, šifruotą |
compose.yaml | Jūsų egzemplioriaus konfigūraciją | Rekomenduojama |
pg_dump sukuria nuoseklų eksportą, kol duomenų bazė naudojama. Pasirinktinis formatas, -Fc, yra suspaustas ir atkuriamas su pg_restore:
docker compose exec -T db pg_dump -U umami -d umami -Fc > umami-$(date +%F).dump
Suplanuokite šią komandą serveryje bent kartą per dieną, retkarčiais išvalykite kaupiamus eksportus ir siųskite kopiją kitur. Padėti serverio diske, šie eksportai patenka ir į jo naktines atsargines kopijas.
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
Retkarčiais pakartokite šį pratimą su kopija: taip įsitikinate, kad atsarginė kopija veikia.
Dokumentacija pateikia dvi komandas, vykdomas kataloge su compose.yaml. Duomenų bazė lieka savo tome:
docker compose pull
docker compose up --force-recreate -d
Paleistas iš naujo, konteineris pats pritaiko schemos perkėlimus. 3.4.0 versija, išleista 2026 m. rugsėjo 17 d., turėjo du perkėlimus, anotacijoms ir API raktams; 3.4.1 versija, išleista 2026 m. spalio 23 d., neturi nė vieno. Po didelio atnaujinimo, pavyzdžiui, perėjus prie 3 versijos, dokumentacija siūlo PostgreSQL paleisti ANALYZE, kad skydeliai atgautų greitį:
docker compose exec db psql -U umami -d umami -c "ANALYZE;"
postgres:15-alpine. Perėjimui prie naujos pagrindinės PostgreSQL versijos reikia eksporto ir atkūrimo arba pg_upgrade.Talpinant savo serveryje, be programos reikia prižiūrėti ir patį serverį. Naudojant Managed VPS, mūsų komandos perima serverį ir proaktyviai stebi jūsų egzempliorių; Umami lieka jūsų programa su savo nustatymais ir duomenimis.
| Tema | Mūsų komandos | Jūs |
|---|---|---|
| Serveris | Sistemos ir saugumo atnaujinimai, įskaitant įsikišimą serveryje | Jūsų veiklai tinkamas momentas |
| Stebėsena | Serveris stebimas 24 val. per parą, 7 dienas per savaitę, įsikišant nelaukiant jūsų skambučio | Jūsų egzemplioriaus žurnalų skaitymas |
| Umami | Proaktyvi stebėsena: klaidos, sulėtėjimai ir disko vieta pastebimi, rekomenduojamas pataisymas | Jos diegimas, atnaujinimai ir nustatymai, kuriuos pritaikote jūs arba jūsų DI asistentas |
| Svetainės ir analitika | Jas laikantis serveris, stebimas ir saugomas atsarginėmis kopijomis | Paskyros, sekamos svetainės, sekimo scenarijus ir duomenų saugojimo trukmė |
| Atsarginės kopijos | Kiekvieną naktį, šifruotos ir saugomos už mašinos ribų; atkūrimas įskaičiuotas | Umami savi eksportai ir atkūrimo prašymas, kai jo prireikia |
| Perkėlimas | Jūsų dabartinis serveris perkeliamas nemokamai | Perjungimo momentas |
Jei norite, kad mūsų komandos įsikištų į pačią programą, ši paslauga apmokestinama valandomis arba fiksuota kaina, o skaičiavimas pateikiamas prieš įsikišimą.
Su Simafri Managed VPS mūsų komandos palaiko jūsų Umami egzemplioriaus serverį atnaujintą, stebi jį dieną ir naktį ir įsikiša nelaukdamos jūsų skambučio; jos taip pat proaktyviai stebi jūsų egzempliorių ir rekomenduoja naudingus pataisymus, kuriuos pritaikote jūs arba jūsų DI asistentas. Atsarginės kopijos kiekvieną naktį šifruojamos ir saugomos už mašinos ribų, jų atkūrimas įskaičiuotas, o jūsų dabartinio serverio perkėlimas nemokamas.
Taip. Umami platinama pagal MIT licenciją: įmonėje ją galite naudoti, keisti ir platinti nieko nepirkdami dėl licencijos, jei išlaikote jos autorių teisių pranešimą. Lieka tik ją vykdančio serverio kaina.
Ne. Projekto DUK nurodo, kad Umami žiniatinklio sekimo scenarijus nenaudoja slapukų. Ar jūsų svetainei reikia pranešimo apie slapukus, priklauso nuo kitų joje naudojamų paslaugų ir taikomų reikalavimų.
Nuo 3 versijos ne: Umami palaiko PostgreSQL, ne senesnę nei 12.14. 2 versijos egzempliorius su MySQL pirmiausia perkelia savo duomenis į PostgreSQL pagal projekto perkėlimo gidą, tada atnaujinamas į 3 versiją.
Pradėkite nuo projekto docker-compose.yml, kuris paleidžia Umami ir PostgreSQL, su atsitiktinėmis slaptomis reikšmėmis faile .env ir prievadu, paskelbtu adresu 127.0.0.1. Paleiskite docker compose up -d, tada prieš ją pastatykite HTTPS atvirkštinį tarpinį serverį, subdomene.
Diegimo metu Umami sukuria paskyrą admin su slaptažodžiu umami. Pakeiskite jį pirmą kartą prisijungę, skiltyje Settings, tada Profile, ir įjunkite dviejų veiksnių autentifikavimą skirtuke Security, kai nustatytas TWO_FACTOR_ENCRYPTION_KEY.
Savo serveryje talpinamame egzemplioriuje TRACKER_SCRIPT_NAME scenarijui suteikia kitą pavadinimą nei script.js, o COLLECT_API_ENDPOINT pervadina duomenų rinkimo galinį tašką /api/send. Tada savo puslapiuose pakeiskite sekimo kodo šaltinį.
Kasdien eksportuokite PostgreSQL duomenų bazę su pg_dump iš duomenų bazės konteinerio, o failą .env laikykite atskirai, nes jame yra APP_SECRET ir dviejų veiksnių autentifikavimo raktas. Atkurkite su pg_restore ir reguliariai išbandykite atkūrimą.
Managed VPS apima serverį: sistemą, saugumą, stebėseną ir atsargines kopijas. Mūsų komandos taip pat proaktyviai stebi jūsų egzempliorių ir rekomenduoja naudingus pataisymus, kuriuos pritaikote jūs. Įsikišimas į pačią programą apmokestinamas valandomis arba fiksuota kaina.
Simafri
Pakalbėkime apie jūsų sumanymą
Pasakykite mums keliais žodžiais, ko jums reikia: greitai jums atsakome.
Ačiū! Jūsų užklausa išsiųsta. Netrukus su jumis susisieksime.
Labiau mėgstate el. paštą? Rašykite mums adresu support@simafri.com.