Umami op engem Managed VPS hosten heescht, d’Statistike vun Äre Websäiten op enger Maschinn ze halen, déi Iech gehéiert a vun eisen Equippen Dag an Nuecht aktuell gehal a verfollegt gëtt. Umami ass eng fräi Software ënner der MIT-Lizenz, déi de Traffic ouni Cookien moosst. Dëse Guide follegt senger offizieller Dokumentatioun: d’Installatioun mat Docker Compose a PostgreSQL, HTTPS, déi éischt Umeldung, den Tracking-Skript, wat de Projet iwwer perséinlech Donnéeë seet, nëtzlech Astellungen, d’Backups an d’Aktualiséierungen.
Auteur: Simon Vasconcelos Lee
Publizéiert de 15. November 2026Lieszäit: 12 Minutten
APP_SECRET an TWO_FACTOR_ENCRYPTION_KEY zoufälleg, servéiert Umami iwwer HTTPS op senger eegener Subdomain, an ännert dann direkt d’Passwuert vum Kont admin.<head> vun Äre Säiten: den Tracker benotzt keng Cookien.pg_dump, haalt de Fichier .env op enger sécherer Plaz, an aktualiséiert mat docker compose pull.Umami ass eng Open-Source-Plattform fir Web- a Produktstatistiken. Seng Dokumentatioun beschreift en Tool, dat Traffic, Kampagnen, d’Verhale vun de Besucher, Conversiounen, Retentioun an Ëmsaz zesummebréngt, vum éischte Besuch bis zu de Resultater, déi fir Är Entreprise zielen. Et ass an TypeScript op Next.js geschriwwen, a seng Docker-Image leeft ënner engem Kont ouni Privilegien.
Eng eenzeg Instanz verfollegt e puer Websäiten: all Säit kritt hir eege ID an hiren eegenen Tracking-Skript, an Är Kolleegen orientéiere sech iwwer Konten an Equippen.
Umami gëtt ënner der MIT-Lizenz publizéiert, am Numm vun Umami Software, Inc. Si gëtt, gratis, d’Recht, d’Software ze notzen, ze kopéieren, z’änneren, ze fusionéieren, ze publizéieren, ze verdeelen, ënnerzelizenzéieren a Kopie vun hir ze verkafen. Dir kënnt en also fir Är Entreprise a fir d’Websäite vun Äre Clienten lafe loossen, ouni eng Lizenz ze kafen.
Hir eenzeg Bedingung: de Copyright-Hiweis an de Hiweis op d’Erlaabnes ginn mat all Kopie oder all wesentlechen Deel vun der Software mat. Wéi all MIT-Lizenz liwwert si d’Software „as is“, also esou wéi se ass, ouni Garantie.
D’Dokumentatioun stellt Umami als Statistiken ouni Cookien duer, ouni Tracking iwwer verschidde Siten ewech an ouni automatesch Erfaassung vu perséinlechen Donnéeën. Selwer gehost, hält en Är Statistiken op Ärem eegene Server: Dir entscheet, wou se leien a wéi laang se bleiwen.
| Fro | Wat de Projet seet | Quell |
|---|---|---|
| Cookien | De Web-Tracker benotzt keng Cookien; ob Är Säit e Cookie-Hiweis brauch, hänkt vun den anere Servicer of, déi Dir notzt, a vun den Ufuerderungen, déi gëllen | FAQ |
| Erfaasst Donnéeën | Säitenopruff, Referrer-Adressen, Browser, Betribssystemer, Apparattypen an ongeféier Standuert | FAQ |
| IP-Adress | D’Tabell vun de Sessiounen huet keng Kolonn fir d’IP-Adress; eng Sessiouns-ID ass en Hash vun der Websäit, der Adress, dem Browser an engem Salz, dat standardméisseg all Mount wiesselt | Schema a Code, Versioun 3.4.1 |
| Opbewahrung | Selwer gehost, ginn d’Donnéeën behalen, bis Dir se läscht | FAQ |
| DSGVO | Umami ass mam Schutz vun der Privatsphär am Kapp entwéckelt, an d’Konformitéit hänkt dovun of, wéi Dir en astellt an notzt | FAQ |
| Donnéeën, déi Dir schéckt | Eng Besucher-ID oder Eegeschafte vun Evenementer, déi Dir wielt ze schécken, sinn Är Verantwortung | Aféierung |
Dräi Astellunge vum Tracking-Skript ginn, wann Dir wëllt, nach méi wäit: data-exclude-search hëlt d’Sichparameteren aus den erfaassten Adressen eraus, data-exclude-hash hëlt den Hash eraus, an data-do-not-track schalt d’Tracking fir d’Browser aus, déi d’Preferenz Do Not Track weisen. D’Dokumentatioun preziséiert, datt dës lescht Astellung eleng keng komplett Léisung fir d’Gestioun vun der Zoustëmmung ass.
Wann Dir ugemellt Besucher mat data-distinct-id oder umami.identify() identifizéiert, recommandéiert d’Dokumentatioun eng intern Benotzer-ID oder en Hash amplaz vun enger E-Mail-Adress: de Wäert ass am HTML vun der Säit ze liesen.
De Repository liwwert eng docker-compose.yml, déi Umami a seng PostgreSQL-Datebank start. Zënter der Versioun 3 ass PostgreSQL déi eenzeg ënnerstëtzt Datebank, mindestens an der Versioun 12.14, an d’Dokumentatioun recommandéiert, se op d’UTC-Zäitzon ze stellen. Op engem Server, wou Docker installéiert ass, erstellt Dir en Dossier a fänkt mat senge Geheimnisser un, zoufälleg mat openssl generéiert, wéi d’Dokumentatioun et virschléit:
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
Leet dann dës compose.yaml dernieft. Si follegt dem Fichier vum Projet an der Versioun 3.4.1, mat zwou Ännerungen: d’Geheimnisser kommen aus dem Fichier .env, an de Port ass nëmmen op 127.0.0.1 publizéiert.
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: déi eenzeg obligatoresch Variabel, d’Verbindungsadress vun der Datebank. D’hexadezimaalt Passwuert kënnt esou eran, wéi et ass; e Passwuert mat Spezialzeeche géif d’Prozent-Kodéierung verlaangen.APP_SECRET: eng zoufälleg Zeechekette, déi d’Authentifiséierungs-Tokens ofséchert, eenzegaarteg fir all Installatioun. Am Code vun der Versioun 3.4.1 geet si och an d’Berechnung vun de Sessiouns-IDen an: haalt se stabil.TWO_FACTOR_ENCRYPTION_KEY: 64 hexadezimal Zeechen, déi d’Geheimnisser vun der Zwee-Faktor-Authentifiséierung verschlësselen. Ouni dëse Schlëssel kann keen d’Zwee-Faktor-Authentifiséierung aktivéieren.admin. D’Sond /api/heartbeat äntwert {"ok":true}, soubal Umami prett ass.latest follegt der leschter publizéierter Versioun. D’Registry vum Projet publizéiert och Versiounstags, wéi 3.4.1, fir déi Versioun ze fixéieren, déi Dir lafe loosst.D’Installatiounsdokumentatioun gëtt keng Zuel fir Aarbechtsspäicher oder Prozessor un. D’Gréisst hänkt vum Traffic vun de verfollegte Websäiten of an dem Volumen vun den Donnéeën, déi Dir behaalt. Op engem Managed VPS beschreift eis Äre Gebrauch, a mir recommandéieren Iech déi passend Gréisst.
Umami lauschtert iwwer HTTP um Port 3000, an d’Dokumentatioun schléit vir, en hannert Ärem Webserver ze servéieren, iwwer e Reverse Proxy. Gitt him seng eege Subdomain, wéi stats.example.com, déi mat A- an AAAA-Enregistrementer op de Server weist. Fir Umami ënner engem Pfad ze servéieren, brauch een BASE_PATH, eng Variabel, déi beim Bauen vun der Applikatioun gelies gëtt: mat der publizéierter Image ass d’Subdomain den direkte Wee.
De Proxy muss och d’Adress vum Besucher weiderginn. Umami liest se aus den Headeren, déi en kritt, ënner anerem X-Real-IP an X-Forwarded-For: domat ënnerscheet en d’Besucher a lokaliséiert hiert Land. Wann Äre Proxy en aneren Header benotzt, gëtt CLIENT_IP_HEADER him säin Numm.
Caddy kritt d’Zertifikat vu Let’s Encrypt a schalt HTTPS vu sech aus an. Seng Direktiv reverse_proxy setzt X-Forwarded-For standardméisseg: dës dräi Zeilen duergoen.
stats.example.com {
reverse_proxy 127.0.0.1:3000
}
Dëse Block hëlt d’Nginx-Beispill aus der Umami-Dokumentatioun op, um Port 80, fir Certbot HTTPS ariichten ze loossen:
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 setzt duerno d’Zertifikat a këmmert sech drëms, et ze erneieren:
sudo certbot --nginx
Wann Umami seng Datebank erstellt, mécht en en Administrateurskont op: Benotzernumm admin, Passwuert umami. D’Dokumentatioun freet, dëst Passwuert bei der éischter Umeldung z’änneren.
admin an umami un.Haalt TWO_FACTOR_ENCRYPTION_KEY mat Äre Backups: d’Dokumentatioun warnt, datt de Verloscht oder d’Ännerung vun dësem Schlëssel déi gespäichert Geheimnisser onliesbar mécht, an all Benotzer muss sech dann nei fir d’Zwee-Faktor-Authentifiséierung aschreiwen.
<head> vun Äre Säiten, a besicht dann Är Websäit: d’Donnéeën erschéngen direkt am Tableau de bord.<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>
next/script derbäi, amplaz mat enger einfacher <script>-Balise.data-domains limitéiert d’Tracking op Är Produktiounsdomainen, wat Är Testëmfelder aus de Statistiken eraushält.localStorage.setItem('umami.disabled', 1).E puer Reklammeblocker blockéieren alles, wat no Statistike gesäit. Selwer gehost, gëtt Umami schonn vun Ärer eegener Domain aus servéiert, an zwou Variabele ginn nach méi wäit: TRACKER_SCRIPT_NAME gëtt dem Skript en aneren Numm wéi script.js, an COLLECT_API_ENDPOINT benennt den Endpunkt fir d’Erfaassung ëm, amplaz /api/send. De Skript rifft dann den neien Endpunkt vu sech aus op; op Äre Säiten ännert just d’Quell vum Tracking-Code.
TRACKER_SCRIPT_NAME: "stats.js"
COLLECT_API_ENDPOINT: "/api/collect"
Dës Ëmfeldvariabele kommen an de Service umami vun der compose.yaml, an duerno erstellt docker compose up -d de Container nei, fir se z’iwwerhuelen:
| Variabel | Wat se mécht | Wäert |
|---|---|---|
DISABLE_TELEMETRY | Schalt déi anonym Telemetrie aus, déi Umami dem Projet schéckt, fir d’Applikatioun ze verbesseren | 1 |
PRIVATE_MODE | Schalt all extern Netzwierkopruff aus, ënner anerem d’Ikone vun de Websäiten, déi standardméisseg vun DuckDuckGo kommen | 1 |
DISABLE_UPDATES | Schalt d’Sich no neie Versiounen aus | 1 |
IGNORE_IP | Schléisst IP-Adressen an CIDR-Beräicher vun der Erfaassung aus, wéi déi vun Äre Büroen | Eng Lëscht, mat Kommae getrennt |
SALT_ROTATION | Leet fest, wéi dacks d’Salz hannert de Sessiouns-IDe wiesselt | Standardméisseg month |
REDIS_URL | Setzt e Redis-Cache derbäi, deen d’Dokumentatioun fir Websäite mat vill Traffic oder fir e puer Instanze recommandéiert | Är Redis-Adress |
MCP_ENABLED | Mécht den Endpunkt /mcp op: Ären KI-Assistent liest Är Statistiken, nëmmen am Liesmodus, mat engem API-Schlëssel, deen ënner Settings, API keys erstallt gëtt | 1 |
Alles, wat Umami behält, läit a senger PostgreSQL-Datebank: Konten, Websäiten, Equippen a Statistiken. Exportéiert se all Dag an direkt virun all Aktualiséierung: selwer gehost, ginn dës Donnéeën ouni Zäitlimit behalen. Niewent der Datebank hält de Fichier .env d’Geheimnisser, déi se notzbar maachen:
| Element | Wat et hält | Ze séchere |
|---|---|---|
| D’PostgreSQL-Datebank | Konten, Websäiten, Equippen, Rapporten an all Statistiken | Obligatoresch, mat pg_dump |
.env | D’Passwuert vun der Datebank, APP_SECRET an de Schlëssel vun der Zwee-Faktor-Authentifiséierung | Obligatoresch, verschlësselt |
compose.yaml | D’Konfiguratioun vun Ärer Instanz | Recommandéiert |
pg_dump mécht e kohärenten Export, wärend d’Datebank benotzt gëtt. De personaliséierte Format, -Fc, ass kompriméiert a gëtt mat pg_restore restauréiert:
docker compose exec -T db pg_dump -U umami -d umami -Fc > umami-$(date +%F).dump
Plangt dëse Befehl um Server op d’mannst eemol am Dag, sortéiert d’Exporter, déi sech opstapelen, a schéckt eng Kopie anzwousch anescht hin. Um Disk vum Server geluecht, kommen dës Exporter och an seng Backups vun der Nuecht.
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
Widderhuelt dësen Exercice vun Zäit zu Zäit, op enger Kopie: esou kontrolléiert Dir, datt eng Backup funktionéiert.
D’Dokumentatioun gëtt zwee Befeeler, aus dem Dossier vun der compose.yaml. D’Datebank bleift an hirem Volume:
docker compose pull
docker compose up --force-recreate -d
Beim Neistart setzt de Container d’Migratioune vum Schema selwer ëm. D’Versioun 3.4.0 vum 17. September 2026 hat der zwou, fir d’Annotatiounen an d’API-Schlësselen; d’Versioun 3.4.1 vum 23. Oktober 2026 huet keng. No engem grousse Versiounssprong, wéi dem Iwwergang op d’Versioun 3, schléit d’Dokumentatioun vir, ANALYZE an PostgreSQL auszeféieren, fir datt d’Tableaue erëm séier ginn:
docker compose exec db psql -U umami -d umami -c "ANALYZE;"
postgres:15-alpine aus dem Fichier. De Wiessel op eng nei Haaptversioun vu PostgreSQL verlaangt en Export an eng Restauratioun, oder pg_upgrade.Selwer hosten heescht, de Server zousätzlech zur Applikatioun ze halen. Op engem Managed VPS huelen eis Equippen de Server an d’Hand a verfollegen Är Instanz proaktiv; Umami bleift Är Software, mat senge Astellungen an Donnéeën.
| Thema | Eis Equippen | Dir |
|---|---|---|
| De Server | System- a Sécherheetsupdates, Interventioune um Server abegraff | De Moment, deen zu Ärer Aktivitéit passt |
| D’Iwwerwaachung | Server 24 Stonnen op 24 a 7 Deeg op 7 verfollegt, mat Interventioun, ouni op Ären Uruff ze waarden | D’Lektür vun de Logbicher vun Ärer Instanz |
| Umami | Proaktiv Suivi: Feeler, lues Äntwertzäiten a Späicherplaz erkannt, Korrektur recommandéiert | Seng Installatioun, seng Aktualiséierungen a seng Astellungen, déi Dir ëmsetzt, selwer oder mat Ärem KI-Assistent |
| D’Websäiten an d’Statistiken | De Server, deen se dréit, iwwerwaacht a gesécheert | D’Konten, déi verfollegt Websäiten, den Tracking-Skript an d’Dauer, wéi laang d’Donnéeë behale ginn |
| D’Backups | All Nuecht, verschlësselt a baussent der Maschinn gelagert; Restauratioun abegraff | D’Exporter, déi Umami eegen sinn, an d’Ufro fir eng Restauratioun, wann Dir se braucht |
| D’Migratioun | Äre bestoende Server migréiert, offréiert | De Moment vum Wiessel |
Wann Dir léiwer wëllt, datt eis Equippen an der Applikatioun selwer intervenéieren, gëtt dës Prestatioun op Stonnebasis oder pauschal verrechent, mat engem Käschtevirschlag, deen Iech virun der Interventioun matgedeelt gëtt.
Mat engem Managed VPS vu Simafri halen eis Equippen de Server vun Ärer Umami-Instanz aktuell, iwwerwaachen en Dag an Nuecht a gräifen an, ouni op Ären Uruff ze waarden; si verfollegen och Är Instanz proaktiv a recommandéieren Iech déi nëtzlech Korrekturen, déi Dir ëmsetzt, selwer oder mat Ärem KI-Assistent. D’Backups ginn all Nuecht verschlësselt a baussent der Maschinn gelagert, hir Restauratioun ass abegraff, an d’Migratioun vun Ärem aktuelle Server ass offréiert.
Jo. Umami ass ënner der MIT-Lizenz: Dir kënnt en an der Entreprise notzen, änneren an nei verdeelen, ouni eng Lizenz ze kafen, soulaang Dir säin Copyright-Hiweis behaalt. Et bleiwen d’Käschte vum Server, deen en hält.
Nee. D’FAQ vum Projet seet, datt den Umami-Web-Tracker keng Cookien benotzt. Ob Är Websäit e Cookie-Hiweis brauch, hänkt vun den anere Servicer of, déi Dir do notzt, a vun den Ufuerderungen, déi gëllen.
Net méi zënter der Versioun 3: Umami ënnerstëtzt PostgreSQL, mindestens an der Versioun 12.14. Eng Instanz an der Versioun 2 op MySQL bréngt hir Donnéeën als éischt mam Migratiounsguide vum Projet op PostgreSQL, a wiesselt dann op d’Versioun 3.
Gitt vun der docker-compose.yml vum Projet aus, déi Umami a PostgreSQL start, mat zoufällege Geheimnisser an engem Fichier .env an dem Port, deen op 127.0.0.1 publizéiert ass. Lancéiert docker compose up -d, a setzt dann en HTTPS-Reverse-Proxy dervir, op enger Subdomain.
Bei der Installatioun erstellt Umami e Kont admin mam Passwuert umami. Ännert et bei der éischter Umeldung, ënner Settings an dann Profile, an aktivéiert d’Zwee-Faktor-Authentifiséierung am Reiter Security, soubal TWO_FACTOR_ENCRYPTION_KEY gesat ass.
Op enger selwer gehoster Instanz gëtt TRACKER_SCRIPT_NAME dem Skript en aneren Numm wéi script.js, an COLLECT_API_ENDPOINT benennt den Erfaassungs-Endpunkt /api/send ëm. Ännert dann d’Quell vum Tracking-Code op Äre Säiten.
Exportéiert all Dag d’PostgreSQL-Datebank mat pg_dump, aus dem Container vun der Datebank, an haalt de Fichier .env separat, well en APP_SECRET an de Schlëssel vun der Zwee-Faktor-Authentifiséierung hält. Restauréiert mat pg_restore, a testt d’Restauratioun regelméisseg.
E Managed VPS deckt de Server of: System, Sécherheet, Iwwerwaachung a Backups. Eis Equippen verfollegen och Är Instanz proaktiv a recommandéieren Iech déi nëtzlech Korrekturen, déi Dir ëmsetzt. Eng Interventioun an der Applikatioun gëtt op Stonnebasis oder pauschal verrechent.
Simafri
Loosst eis iwwer Är Websäit schwätzen
Erzielt eis vun Ärem Projet a wéinege Wierder: mir mellen eis séier bei Iech.
Merci! Är Ufro gouf geschéckt. Mir mellen eis séier bei Iech.
Léiwer per E-Mail? Schreift eis op support@simafri.com.