Umamin hostaus Managed VPS:llä tarkoittaa, että verkkosivustojenne analytiikka pysyy koneella, joka on teidän ja jota tiimimme pitävät ajan tasalla ja valvovat yötä päivää. Umami on MIT-lisenssillä julkaistu avoimen lähdekoodin ohjelma, joka mittaa liikennettä ilman evästeitä. Tämä opas seuraa sen virallista dokumentaatiota: asennus Docker Composella ja PostgreSQL:llä, HTTPS, ensimmäinen kirjautuminen, seurantaskripti, mitä projekti sanoo henkilötiedoista, hyödylliset asetukset, varmuuskopiot ja päivitykset.
Kirjoittaja: Simon Vasconcelos Lee
Julkaistu 15. marraskuuta 2026Lukuaika: 12 minuuttia
APP_SECRET ja TWO_FACTOR_ENCRYPTION_KEY satunnaisesti, tarjotkaa Umami HTTPS:llä omalla aliverkkotunnuksellaan ja vaihtakaa sitten heti admin-tilin salasana.<head>-osioon: seurantaskripti ei käytä evästeitä.pg_dump, säilyttäkää .env-tiedosto turvassa ja päivittäkää komennolla docker compose pull.Umami on avoimen lähdekoodin analytiikka-alusta verkkosivustoille ja tuotteille. Sen dokumentaatio kuvaa työkalun, joka kokoaa yhteen liikenteen, kampanjat, kävijöiden käyttäytymisen, konversiot, sitoutumisen ja tulot ensimmäisestä käynnistä liiketoiminnallenne tärkeisiin tuloksiin. Se on kirjoitettu TypeScriptillä Next.js:n päälle, ja sen Docker-image toimii ilman erityisoikeuksia olevalla tilillä.
Yksi instanssi seuraa useita verkkosivustoja: kukin saa oman tunnisteensa ja seurantaskriptinsä, ja kolleganne löytävät tiensä tilien ja tiimien avulla.
Umami julkaistaan MIT-lisenssillä Umami Software, Inc. -yhtiön nimissä. Se antaa maksutta oikeuden käyttää, kopioida, muokata, yhdistää, julkaista, jakaa, alilisensoida ja myydä ohjelmiston kopioita. Voitte siis ajaa sitä yrityksellenne ja asiakkaidenne verkkosivustoille ilman ostettavaa lisenssiä.
Sen ainoa ehto: tekijänoikeusilmoitus ja lupailmoitus kulkevat kaikkien ohjelmiston kopioiden tai sen merkittävien osien mukana. Kuten mikä tahansa MIT-lisenssi, se toimittaa ohjelmiston ”sellaisenaan”, ilman takuuta.
Dokumentaatio esittelee Umamin analytiikkana ilman evästeitä, ilman sivustojen välistä seurantaa ja ilman henkilötietojen automaattista keräämistä. Kun hostaatte sen itse, analytiikkanne pysyy omalla palvelimellanne: te päätätte, missä tiedot ovat ja kuinka kauan ne säilyvät.
| Kysymys | Mitä projekti sanoo | Lähde |
|---|---|---|
| Evästeet | Verkkoseurantaskripti ei käytä evästeitä; se, tarvitseeko sivustonne evästeilmoituksen, riippuu käyttämistänne muista palveluista ja teitä koskevista vaatimuksista | Usein kysytyt kysymykset |
| Kerätyt tiedot | Sivunkatselut, viittaavien sivujen osoitteet, selaimet, käyttöjärjestelmät, laitetyypit ja likimääräinen sijainti | Usein kysytyt kysymykset |
| IP-osoite | Istuntotaulussa ei ole saraketta IP-osoitteelle; istunnon tunniste on tiiviste verkkosivustosta, osoitteesta, selaimesta ja suolasta, joka vaihtuu oletuksena kuukausittain | Skeema ja koodi, versio 3.4.1 |
| Säilytys | Omalla palvelimella tiedot säilyvät, kunnes poistatte ne | Usein kysytyt kysymykset |
| GDPR | Umami on suunniteltu yksityisyys huomioiden, ja vaatimustenmukaisuus riippuu siitä, miten määritätte ja käytätte sitä | Usein kysytyt kysymykset |
| Lähettämänne tiedot | Kävijätunniste tai tapahtumien ominaisuudet, jotka päätätte lähettää, ovat teidän vastuullanne | Johdanto |
Kolme seurantaskriptin asetusta vie halutessanne pidemmälle: data-exclude-search poistaa hakuparametrit tallennetuista osoitteista, data-exclude-hash poistaa #-merkin jälkeisen osan, ja data-do-not-track poistaa seurannan käytöstä selaimilta, jotka ilmoittavat Do Not Track -asetuksen. Dokumentaatio huomauttaa, ettei viimeksi mainittu asetus yksinään ole täydellinen suostumustenhallintaratkaisu.
Jos tunnistatte kirjautuneet kävijät asetuksella data-distinct-id tai kutsulla umami.identify(), dokumentaatio suosittelee sisäistä käyttäjätunnistetta tai tiivistettä sähköpostiosoitteen sijaan: arvo on luettavissa sivun HTML-koodista.
Repositorio toimittaa tiedoston docker-compose.yml, joka käynnistää Umamin ja sen PostgreSQL-tietokannan. Versiosta 3 alkaen PostgreSQL on ainoa tuettu tietokanta, vähintään versio 12.14, ja dokumentaatio suosittelee asettamaan sen UTC-aikavyöhykkeeseen. Luokaa palvelimelle, jolle Docker on asennettu, kansio ja aloittakaa sen salaisuuksista, jotka luodaan satunnaisesti openssl:llä dokumentaation ehdotuksen mukaisesti:
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
Sijoittakaa sitten sen viereen tämä compose.yaml. Se noudattaa projektin tiedostoa versiossa 3.4.1 kahdella muutoksella: salaisuudet tulevat .env-tiedostosta, ja portti julkaistaan vain osoitteessa 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: ainoa pakollinen muuttuja, tietokannan yhteysmerkkijono. Heksadesimaalinen salasana kirjoitetaan sellaisenaan; erikoismerkkejä sisältävä salasana vaatisi prosenttikoodauksen.APP_SECRET: satunnainen merkkijono, joka suojaa todennustunnukset ja on jokaiselle asennukselle yksilöllinen. Version 3.4.1 koodissa se on mukana myös istuntotunnisteiden laskennassa: pitäkää se muuttumattomana.TWO_FACTOR_ENCRYPTION_KEY: 64 heksadesimaalimerkkiä, jotka salaavat kaksivaiheisen tunnistautumisen salaisuudet. Ilman sitä kukaan ei voi ottaa kaksivaiheista tunnistautumista käyttöön.admin-tilin. Tarkistus /api/heartbeat vastaa {"ok":true}, kun Umami on valmis.latest seuraa viimeisintä julkaistua versiota. Projektin rekisteri julkaisee myös versiotunnisteita, kuten 3.4.1, joilla ajamanne version voi kiinnittää.Asennusdokumentaatio ei ilmoita muistin eikä suorittimen tarvetta. Koko riippuu seurattujen verkkosivustojen liikenteestä ja säilyttämienne tietojen määrästä. Managed VPS -palvelimella kertokaa meille käyttötarkoituksenne, niin suosittelemme sopivaa kokoa.
Umami kuuntelee HTTP:tä portissa 3000, ja dokumentaatio ehdottaa sen tarjoamista verkkopalvelimenne takana käänteisen välityspalvelimen kautta. Antakaa sille oma aliverkkotunnus, kuten stats.example.com, joka osoittaa palvelimeen A- ja AAAA-tietueilla. Umamin tarjoaminen polun alla kulkee muuttujan BASE_PATH kautta, joka luetaan sovellusta käännettäessä: julkaistulla imagella aliverkkotunnus on suora tie.
Välityspalvelimen on myös välitettävä kävijän osoite. Umami lukee sen saamistaan otsakkeista, muun muassa otsakkeista X-Real-IP ja X-Forwarded-For: se käyttää sitä erottaakseen kävijät toisistaan ja paikantaakseen heidän maansa. Jos välityspalvelimenne käyttää muuta otsaketta, CLIENT_IP_HEADER nimeää sen.
Caddy hankkii Let’s Encrypt -varmenteen ja ottaa HTTPS:n käyttöön itse. Sen reverse_proxy-direktiivi asettaa oletuksena otsakkeen X-Forwarded-For: nämä kolme riviä riittävät.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}
Tämä lohko noudattaa Umamin dokumentaation Nginx-esimerkkiä ja kuuntelee porttia 80, jotta Certbot voi asentaa HTTPS:n:
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 asentaa sen jälkeen varmenteen ja huolehtii sen uusimisesta:
sudo certbot --nginx
Luodessaan tietokantansa Umami avaa ylläpitäjän tilin: käyttäjätunnus admin, salasana umami. Dokumentaatio pyytää vaihtamaan tämän salasanan ensimmäisellä kirjautumisella.
admin ja umami.Säilyttäkää TWO_FACTOR_ENCRYPTION_KEY varmuuskopioidenne mukana: dokumentaatio varoittaa, että tämän avaimen menettäminen tai vaihtaminen tekee tallennetuista salaisuuksista lukukelvottomia, jolloin jokaisen käyttäjän on otettava kaksivaiheinen tunnistautuminen uudelleen käyttöön.
<head>-osioon ja käykää sitten verkkosivustollanne: tiedot näkyvät koontinäytössä heti.<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>
next/script-komponentilla pelkän <script>-tagin sijaan.data-domains rajaa seurannan tuotantoverkkotunnuksiinne, mikä pitää testiympäristönne poissa tilastoista.localStorage.setItem('umami.disabled', 1).Jotkin mainosten estäjät estävät kaiken, mikä näyttää analytiikalta. Omalla palvelimella Umami tarjotaan jo omasta verkkotunnuksestanne, ja kaksi muuttujaa vie pidemmälle: TRACKER_SCRIPT_NAME antaa skriptille muun nimen kuin script.js, ja COLLECT_API_ENDPOINT nimeää keräyspäätepisteen uudelleen polun /api/send sijaan. Skripti kutsuu sen jälkeen uutta päätepistettä itse; sivuillanne muuttuu vain seurantakoodin lähde.
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"
Nämä ympäristömuuttujat sijoitetaan tiedoston compose.yaml umami-palveluun, minkä jälkeen docker compose up -d luo kontin uudelleen, jotta ne tulevat huomioon:
| Muuttuja | Mitä se tekee | Arvo |
|---|---|---|
DISABLE_TELEMETRY | Poistaa käytöstä anonyymin telemetrian, jonka Umami lähettää projektille sovelluksen kehittämiseksi | 1 |
PRIVATE_MODE | Poistaa käytöstä kaikki ulkoiset verkkokutsut, myös verkkosivustojen kuvakkeet, jotka haetaan oletuksena DuckDuckGolta | 1 |
DISABLE_UPDATES | Poistaa käytöstä uusien versioiden tarkistuksen | 1 |
IGNORE_IP | Jättää IP-osoitteet ja CIDR-alueet, kuten toimistojenne, tiedonkeruun ulkopuolelle | Pilkuin eroteltu luettelo |
SALT_ROTATION | Asettaa, kuinka usein istuntotunnisteiden taustalla oleva suola vaihtuu | Oletuksena month |
REDIS_URL | Lisää Redis-välimuistin, jota dokumentaatio suosittelee vilkkaille verkkosivustoille tai useille instansseille | Redis-osoitteenne |
MCP_ENABLED | Avaa päätepisteen /mcp: tekoälyavustajanne lukee analytiikkaanne vain luku -tilassa API-avaimella, joka luodaan kohdassa Settings, API keys | 1 |
Kaikki, mitä Umami säilyttää, on sen PostgreSQL-tietokannassa: tilit, verkkosivustot, tiimit ja analytiikka. Ottakaa siitä vienti joka päivä ja juuri ennen jokaista päivitystä: omalla palvelimella nämä tiedot säilyvät ilman aikarajaa. Tietokannan rinnalla .env-tiedosto sisältää salaisuudet, jotka tekevät siitä käyttökelpoisen:
| Osa | Mitä se säilyttää | Varmuuskopioitava |
|---|---|---|
| PostgreSQL-tietokanta | Tilit, verkkosivustot, tiimit, raportit ja kaikki analytiikka | Pakollinen, komennolla pg_dump |
.env | Tietokannan salasana, APP_SECRET ja kaksivaiheisen tunnistautumisen avain | Pakollinen, salattuna |
compose.yaml | Instanssinne asetukset | Suositeltava |
pg_dump tekee yhtenäisen viennin tietokannan ollessa käytössä. Mukautettu muoto, -Fc, on pakattu ja palautetaan komennolla pg_restore:
docker compose exec -T db pg_dump -U umami -d umami -Fc > umami-$(date +%F).dump
Ajastakaa tämä komento palvelimella vähintään kerran päivässä, karsikaa vientejä, jotka kasautuvat, ja lähettäkää kopio muualle. Palvelimen levyllä säilytettyinä nämä viennit päätyvät myös sen yöllisiin varmuuskopioihin.
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
Toistakaa tämä harjoitus silloin tällöin kopiolla: näin varmistatte, että varmuuskopio toimii.
Dokumentaatio antaa kaksi komentoa, ajettavaksi compose.yaml-tiedoston kansiossa. Tietokanta pysyy taltiossaan:
docker compose pull
docker compose up --force-recreate -d
Uudelleenkäynnistyksessä kontti ajaa skeeman migraatiot itse. 17. syyskuuta 2026 julkaistu versio 3.4.0 sisälsi niistä kaksi, huomautuksille ja API-avaimille; 23. lokakuuta 2026 julkaistu versio 3.4.1 ei sisällä yhtään. Pääversion päivityksen, kuten siirtymän versioon 3, jälkeen dokumentaatio ehdottaa komennon ANALYZE ajamista PostgreSQL:ssä, jotta koontinäytöt saavat nopeutensa takaisin:
docker compose exec db psql -U umami -d umami -c "ANALYZE;"
postgres:15-alpine. Siirtyminen PostgreSQL:n uuteen pääversioon vaatii viennin ja palautuksen tai komennon pg_upgrade.Oma hostaus vaatii palvelimen ylläpitoa sovelluksen lisäksi. Managed VPS -palvelimella tiimimme huolehtivat palvelimesta ja seuraavat instanssianne proaktiivisesti; Umami pysyy teidän ohjelmananne asetuksineen ja tietoineen.
| Aihe | Tiimimme | Te |
|---|---|---|
| Palvelin | Järjestelmä- ja tietoturvapäivitykset, toimenpiteet palvelimella mukaan lukien | Toimintaanne sopiva ajankohta |
| Valvonta | Palvelinta seurataan ympäri vuorokauden joka päivä, ja puututaan asiaan odottamatta yhteydenottoanne | Instanssinne lokien lukeminen |
| Umami | Proaktiivinen seuranta: virheet, hitaus ja levytila havaitaan, ja korjausta suositellaan | Sen asennus, päivitykset ja asetukset, jotka toteutatte itse tai tekoälyavustajanne kanssa |
| Verkkosivustot ja analytiikka | Niitä kantava palvelin, valvottuna ja varmuuskopioituna | Tilit, seuratut verkkosivustot, seurantaskripti ja tietojen säilytysaika |
| Varmuuskopiot | Joka yö, salattuina ja koneen ulkopuolella säilytettyinä; palautus sisältyy | Umamin omat viennit sekä palautuspyyntö, kun tarvitsette sitä |
| Siirto | Nykyinen palvelimenne siirretään, veloituksetta | Käyttöönoton ajankohta |
Jos haluatte tiimiemme toimivan itse sovelluksessa, tämä palvelu laskutetaan tuntiveloituksella tai kiinteällä hinnalla, ja arvio annetaan ennen toimenpidettä.
Simafrin Managed VPS -palvelussa tiimimme pitävät Umami-instanssinne palvelimen ajan tasalla, valvovat sitä yötä päivää ja toimivat odottamatta yhteydenottoanne; ne seuraavat myös instanssianne proaktiivisesti ja suosittelevat teille hyödyllisiä korjauksia, jotka toteutatte itse tai tekoälyavustajanne kanssa. Varmuuskopiot salataan joka yö ja säilytetään koneen ulkopuolella, niiden palautus sisältyy, ja nykyisen palvelimenne siirto tehdään veloituksetta.
Kyllä. Umami on MIT-lisenssillä: voitte käyttää, muokata ja jakaa sitä edelleen yrityksessä ilman ostettavaa lisenssiä, kunhan säilytätte sen tekijänoikeusilmoituksen. Jäljelle jää sen pyörittävän palvelimen kustannus.
Ei. Projektin usein kysytyt kysymykset kertovat, ettei Umamin verkkoseurantaskripti käytä evästeitä. Se, tarvitseeko verkkosivustonne evästeilmoituksen, riippuu sillä käyttämistänne muista palveluista ja teitä koskevista vaatimuksista.
Ei versiosta 3 alkaen: Umami tukee PostgreSQL:ää, vähintään versiota 12.14. MySQL:ää käyttävä version 2 instanssi siirtää ensin tietonsa PostgreSQL:ään projektin siirto-oppaan avulla ja päivittyy sitten versioon 3.
Lähtekää projektin tiedostosta docker-compose.yml, joka ajaa Umamia ja PostgreSQL:ää, satunnaisilla salaisuuksilla .env-tiedostossa ja portti julkaistuna osoitteessa 127.0.0.1. Ajakaa docker compose up -d ja asettakaa sitten eteen HTTPS:llä toimiva käänteinen välityspalvelin aliverkkotunnukselle.
Asennuksessa Umami luo admin-tilin salasanalla umami. Vaihtakaa se ensimmäisellä kirjautumisella kohdassa Settings ja sitten Profile, ja ottakaa kaksivaiheinen tunnistautuminen käyttöön Security-välilehdellä, kun TWO_FACTOR_ENCRYPTION_KEY on asetettu.
Omalla palvelimella toimivassa instanssissa TRACKER_SCRIPT_NAME antaa skriptille muun nimen kuin script.js, ja COLLECT_API_ENDPOINT nimeää keräyspäätepisteen /api/send uudelleen. Vaihtakaa sitten seurantakoodin lähde sivuillanne.
Ottakaa PostgreSQL-tietokannasta vienti joka päivä komennolla pg_dump tietokantakontista ja säilyttäkää .env-tiedosto erikseen, koska se sisältää APP_SECRET-arvon ja kaksivaiheisen tunnistautumisen avaimen. Palauttakaa komennolla pg_restore ja testatkaa palautus säännöllisesti.
Managed VPS kattaa palvelimen: järjestelmän, tietoturvan, valvonnan ja varmuuskopiot. Tiimimme seuraavat myös instanssianne proaktiivisesti ja suosittelevat hyödyllisiä korjauksia, jotka toteutatte itse. Toimenpide sovelluksessa laskutetaan tuntiveloituksella tai kiinteällä hinnalla.
Simafri
Jutellaan hankkeestasi
Kerro meille muutamalla sanalla, mitä tarvitset: vastaamme sinulle nopeasti.
Kiitos! Pyyntösi on lähetetty. Vastaamme sinulle pian.
Suositko sähköpostia? Kirjoita meille osoitteeseen support@simafri.com.