Näin hostaatte Umamin Managed VPS:llä: verkkoanalytiikka omalla palvelimellanne

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.

Simon Vasconcelos Lee Kirjoittaja: Julkaistu 15. marraskuuta 2026Lukuaika: 12 minuuttia

Kaikki oppaat

Lyhyesti

  1. MIT-lisenssi sallii Umamin vapaan käytön, muokkaamisen ja edelleenjakelun yrityksessä ja muualla, kunhan säilytätte sen tekijänoikeusilmoituksen.
  2. Asentakaa se Docker Composella: projektin tiedosto käynnistää Umamin ja sen PostgreSQL-tietokannan, joka on versiosta 3 alkaen ainoa tuettu tietokanta.
  3. Luokaa APP_SECRET ja TWO_FACTOR_ENCRYPTION_KEY satunnaisesti, tarjotkaa Umami HTTPS:llä omalla aliverkkotunnuksellaan ja vaihtakaa sitten heti admin-tilin salasana.
  4. Lisätkää verkkosivustonne ja liittäkää sen seurantaskripti sivujenne <head>-osioon: seurantaskripti ei käytä evästeitä.
  5. Ottakaa tietokannasta vienti joka päivä komennolla pg_dump, säilyttäkää .env-tiedosto turvassa ja päivittäkää komennolla docker compose pull.

Mitä Umami tekee

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.

Mitä MIT-lisenssi sallii

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.

Evästeet ja henkilötiedot: mitä projekti sanoo

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.

KysymysMitä projekti sanooLähde
EvästeetVerkkoseurantaskripti ei käytä evästeitä; se, tarvitseeko sivustonne evästeilmoituksen, riippuu käyttämistänne muista palveluista ja teitä koskevista vaatimuksistaUsein kysytyt kysymykset
Kerätyt tiedotSivunkatselut, viittaavien sivujen osoitteet, selaimet, käyttöjärjestelmät, laitetyypit ja likimääräinen sijaintiUsein kysytyt kysymykset
IP-osoiteIstuntotaulussa ei ole saraketta IP-osoitteelle; istunnon tunniste on tiiviste verkkosivustosta, osoitteesta, selaimesta ja suolasta, joka vaihtuu oletuksena kuukausittainSkeema ja koodi, versio 3.4.1
SäilytysOmalla palvelimella tiedot säilyvät, kunnes poistatte neUsein kysytyt kysymykset
GDPRUmami on suunniteltu yksityisyys huomioiden, ja vaatimustenmukaisuus riippuu siitä, miten määritätte ja käytätte sitäUsein kysytyt kysymykset
Lähettämänne tiedotKävijätunniste tai tapahtumien ominaisuudet, jotka päätätte lähettää, ovat teidän vastuullanneJohdanto

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.

Asennus Docker Composella ja PostgreSQL:llä

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:

Pääte
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.

compose.yaml
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:
Pääte
docker compose up -d
curl -s http://127.0.0.1:3000/api/heartbeat

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.

HTTPS: käänteinen välityspalvelin

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.

Caddyllä

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.

Caddyfile
stats.example.com {
  reverse_proxy 127.0.0.1:3000
}

Nginxillä ja Certbotilla

Tämä lohko noudattaa Umamin dokumentaation Nginx-esimerkkiä ja kuuntelee porttia 80, jotta Certbot voi asentaa HTTPS:n:

Nginx-lohko
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:

Pääte
sudo certbot --nginx

Ensimmäinen kirjautuminen: admin-tili ja kaksivaiheinen tunnistautuminen

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.

  1. Avatkaa HTTPS-osoitteenne ja kirjautukaa tunnuksilla admin ja umami.
  2. Avatkaa Settings sivupalkin profiilipainikkeesta, sitten Profile, ja napsauttakaa Change password.
  3. Ottakaa Security-välilehdellä käyttöön kaksivaiheinen tunnistautuminen: skannatkaa QR-koodi todennussovelluksellanne, syöttäkää kuusinumeroinen koodi ja tallentakaa sitten kymmenen varakoodia turvaan, sillä ne näytetään vain kerran.

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.

Verkkosivuston ja sen seurantaskriptin lisääminen

  1. Napsauttakaa kohdassa Websites painiketta Add website.
  2. Antakaa verkkosivustolle nimi ja sitten sen verkkotunnus: Umami käyttää sitä suodattaakseen omat sivunne pois viittaavien sivustojen luettelosta.
  3. Avatkaa kyseisen verkkosivuston Edit ja kopioikaa koodi Tracking code -osiosta.
  4. Liittäkää se sivujenne <head>-osioon ja käykää sitten verkkosivustollanne: tiedot näkyvät koontinäytössä heti.
Seurantakoodi head-osiossa
<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>

Oma nimi skriptille

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.

compose.yaml, environment-kohdassa
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"

Hyödylliset asetukset

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:

MuuttujaMitä se tekeeArvo
DISABLE_TELEMETRYPoistaa käytöstä anonyymin telemetrian, jonka Umami lähettää projektille sovelluksen kehittämiseksi1
PRIVATE_MODEPoistaa käytöstä kaikki ulkoiset verkkokutsut, myös verkkosivustojen kuvakkeet, jotka haetaan oletuksena DuckDuckGolta1
DISABLE_UPDATESPoistaa käytöstä uusien versioiden tarkistuksen1
IGNORE_IPJättää IP-osoitteet ja CIDR-alueet, kuten toimistojenne, tiedonkeruun ulkopuolellePilkuin eroteltu luettelo
SALT_ROTATIONAsettaa, kuinka usein istuntotunnisteiden taustalla oleva suola vaihtuuOletuksena month
REDIS_URLLisää Redis-välimuistin, jota dokumentaatio suosittelee vilkkaille verkkosivustoille tai useille instansseilleRedis-osoitteenne
MCP_ENABLEDAvaa päätepisteen /mcp: tekoälyavustajanne lukee analytiikkaanne vain luku -tilassa API-avaimella, joka luodaan kohdassa Settings, API keys1

Varmuuskopiot

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:

OsaMitä se säilyttääVarmuuskopioitava
PostgreSQL-tietokantaTilit, verkkosivustot, tiimit, raportit ja kaikki analytiikkaPakollinen, komennolla pg_dump
.envTietokannan salasana, APP_SECRET ja kaksivaiheisen tunnistautumisen avainPakollinen, salattuna
compose.yamlInstanssinne asetuksetSuositeltava

Tietokannan vienti sen ollessa käynnissä

pg_dump tekee yhtenäisen viennin tietokannan ollessa käytössä. Mukautettu muoto, -Fc, on pakattu ja palautetaan komennolla pg_restore:

Pääte, compose.yaml-tiedoston kansiossa
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.

Palauttaminen

  1. Pysäyttäkää Umami ja jättäkää tietokanta käyntiin: docker compose stop umami.
  2. Palauttakaa vienti tietokantaan ja korvatkaa olemassa olevat objektit.
  3. Käynnistäkää Umami uudelleen ja tarkistakaa sitten, että verkkosivustonne ja niiden analytiikka ovat paikallaan.
Pääte
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.

Päivitykset

Dokumentaatio antaa kaksi komentoa, ajettavaksi compose.yaml-tiedoston kansiossa. Tietokanta pysyy taltiossaan:

Pääte
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:

Pääte
docker compose exec db psql -U umami -d umami -c "ANALYZE;"

Kuka tekee mitä Managed VPS:llä

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.

AiheTiimimmeTe
PalvelinJärjestelmä- ja tietoturvapäivitykset, toimenpiteet palvelimella mukaan lukienToimintaanne sopiva ajankohta
ValvontaPalvelinta seurataan ympäri vuorokauden joka päivä, ja puututaan asiaan odottamatta yhteydenottoanneInstanssinne lokien lukeminen
UmamiProaktiivinen seuranta: virheet, hitaus ja levytila havaitaan, ja korjausta suositellaanSen asennus, päivitykset ja asetukset, jotka toteutatte itse tai tekoälyavustajanne kanssa
Verkkosivustot ja analytiikkaNiitä kantava palvelin, valvottuna ja varmuuskopioitunaTilit, seuratut verkkosivustot, seurantaskripti ja tietojen säilytysaika
VarmuuskopiotJoka yö, salattuina ja koneen ulkopuolella säilytettyinä; palautus sisältyyUmamin omat viennit sekä palautuspyyntö, kun tarvitsette sitä
SiirtoNykyinen palvelimenne siirretään, veloituksettaKäyttöönoton ajankohta

Jos haluatte tiimiemme toimivan itse sovelluksessa, tämä palvelu laskutetaan tuntiveloituksella tai kiinteällä hinnalla, ja arvio annetaan ennen toimenpidettä.

Umami palvelimella, jota ylläpidetään puolestanne

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.

Katso Managed VPS

Usein kysytyt kysymykset

Onko Umami maksuton yrityskäytössä?

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.

Käyttääkö Umami evästeitä?

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.

Toimiiko Umami MySQL:n kanssa?

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.

Miten Umami asennetaan Docker Composella?

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.

Mitkä ovat Umamin oletustunnukset?

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.

Miten Umamin seurantaskripti nimetään uudelleen?

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.

Miten Umami varmuuskopioidaan?

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.

Kattaako Managed VPS Umamin?

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.

Lähteet ja virallinen dokumentaatio

Ota yhteyttä