HitKeep uitvoeren als één Linux-binary
De binary-installatie van HitKeep is de kleinste zelfgehoste route: één uitvoerbaar Linux-bestand, ingebouwde DuckDB, ingebouwde NSQ en geen externe database-, cache- of wachtrijservice. Gebruik deze methode voor webanalyse op een lichte VPS, VM, Raspberry Pi, bare-metalserver of in een afgeschermd netwerk waar Docker niet geschikt is.
HitKeep publiceert losse releasebinary’s uitsluitend voor Linux-servers: linux/amd64 en linux/arm64. Download het juiste bestand, maak het uitvoerbaar en start het.
Raadpleeg Feiten en limieten voor citeerbare informatie over binarygrootte, geheugengebruik, opslaggrenzen, exportformaten en niet-doelstellingen. De huidige Linux-releasebinary’s zijn ongeveer 100 MB.
Ondersteunde buildtargets
Section titled “Ondersteunde buildtargets”| Artefact | Target |
|---|---|
hitkeep-linux-amd64 | 64-bits Linux-servers en VM’s |
hitkeep-linux-arm64 | ARM64 Linux-servers, Raspberry Pi, AWS Graviton, Hetzner CAX |
| Docker-image | linux/amd64 en linux/arm64 |
De losse binary’s zijn bedoeld voor Linux-hosts met een moderne glibc. Gebruik Docker Compose als je de containerimage nodig hebt of als de distributie op de host ouder is dan de binarybaseline.
Daarmee is de binary-installatie geschikt voor:
- bare-metalservers en VM’s;
- omgevingen met beperkte netwerktoegang;
- Raspberry Pi en ARM-servers (AWS Graviton, Hetzner CAX);
- organisaties die een zo klein mogelijk aanvalsoppervlak vereisen.
Snel aan de slag
Section titled “Snel aan de slag”De binary downloaden
Section titled “De binary downloaden”Download de nieuwste release voor jouw architectuur via GitHub Releases:
# Linux AMD64 (most common VPS/server)curl -L https://github.com/pascalebeier/hitkeep/releases/latest/download/hitkeep-linux-amd64 \ -o hitkeep && chmod +x hitkeep && sudo mv hitkeep /usr/local/bin/hitkeep
# Linux ARM64 (Raspberry Pi, AWS Graviton, Hetzner CAX)curl -L https://github.com/pascalebeier/hitkeep/releases/latest/download/hitkeep-linux-arm64 \ -o hitkeep && chmod +x hitkeep && sudo mv hitkeep /usr/local/bin/hitkeepVoor afgeschermde netwerken: download de binary en SHA256SUMS vanaf de GitHub-releasepagina op een machine met internettoegang, controleer de checksum en zet daarna de geverifieerde binary over naar de doelserver.
Uitvoeren met systemd
Section titled “Uitvoeren met systemd”Gebruik op Linux-productieservers systemd, zodat HitKeep bij het opstarten wordt gestart en na een fout opnieuw wordt gestart.
Elke flag heeft een 1-op-1 equivalent als HITKEEP_*-omgevingsvariabele (--public-url ↔ HITKEEP_PUBLIC_URL). Je kunt dus desgewenst alles via de omgeving configureren. De unit hieronder gebruikt beide vormen alleen om geheimen buiten de zichtbare commandoregel te houden. De configuratiereferentie vermeldt beide vormen voor elke optie.
1. Maak een speciale servicegebruiker en datamap aan:
sudo useradd -r -s /bin/false hitkeepsudo mkdir -p /var/lib/hitkeep/data /var/lib/hitkeep/archivesudo chown -R hitkeep:hitkeep /var/lib/hitkeep2. Maak /etc/systemd/system/hitkeep.service aan:
[Unit]Description=HitKeep AnalyticsAfter=network.target
[Service]Type=simpleUser=hitkeepGroup=hitkeepWorkingDirectory=/var/lib/hitkeep
# Sensitive values via environment (not visible in ps aux).# Generate the secret with: openssl rand -hex 32Environment="HITKEEP_JWT_SECRET=change-this-to-a-long-random-string"Environment="HITKEEP_MAIL_PASSWORD=your-smtp-password"
# General configuration via flagsExecStart=/usr/local/bin/hitkeep \ --public-url=https://analytics.example.com \ --db-path=/var/lib/hitkeep/data/hitkeep.db \ --data-path=/var/lib/hitkeep/data \ --archive-path=/var/lib/hitkeep/archive \ --http-addr=:8080
Restart=on-failureRestartSec=5s
[Install]WantedBy=multi-user.targetOf gebruik een drop-in-omgevingsbestand voor geheimen (veiliger, omdat geheimen niet in het unitbestand staan):
sudo mkdir -p /etc/systemd/system/hitkeep.service.dsudo tee /etc/systemd/system/hitkeep.service.d/secrets.conf << 'EOF'[Service]Environment="HITKEEP_JWT_SECRET=your-secret-here"EOFsudo chmod 600 /etc/systemd/system/hitkeep.service.d/secrets.conf3. Activeer en start:
sudo systemctl daemon-reloadsudo systemctl enable --now hitkeepsudo systemctl status hitkeepControleren
Section titled “Controleren”Controleer de geïnstalleerde release, servicestatus en gereedheid van de database:
hitkeep --versionsudo systemctl --no-pager status hitkeepcurl --fail http://127.0.0.1:8080/healthzcurl --fail http://127.0.0.1:8080/readyz/healthz bevestigt dat het proces actief is. /readyz bevestigt dat de gedeelde database en elke geopende tenantdatabase gereed zijn.
HitKeep onder een submap koppelen
Section titled “HitKeep onder een submap koppelen”Voor de meeste installaties is een apart analysehostnaam zoals https://analytics.example.com het beste. Moet HitKeep onder een andere site worden gepubliceerd, stel HITKEEP_PUBLIC_URL dan in op het volledige externe pad:
Environment="HITKEEP_PUBLIC_URL=https://www.example.net/hitkeep/"of:
hitkeep --public-url=https://www.example.net/hitkeep/De reverse proxy moet hetzelfde padprefix naar HitKeep doorsturen zonder het te herschrijven:
www.example.net { handle /hitkeep* { reverse_proxy 127.0.0.1:8080 }}Als de openbare URL /hitkeep/ bevat, injecteert het dashboard <base href="/hitkeep/" />, blijven API-aanroepen onder /hitkeep/api/... en kan de trackingsnippet zo worden geïnstalleerd:
<script async src="https://www.example.net/hitkeep/hk.js"></script>Als Web Vitals zijn ingeschakeld, laadt hk.js https://www.example.net/hitkeep/hk-vitals.js en verstuurt samples naar /hitkeep/ingest/web-vitals. Paginaweergaven en automatische gebeurtenissen volgen dezelfde regel voor /hitkeep/ingest en /hitkeep/ingest/event.
In padprefixmodus biedt HitKeep geen rootroutes voor /api/..., /hk.js of de dashboardfallback. Lokale /healthz en /readyz blijven beschikbaar voor proces-, container- en Kubernetescontroles.
Problemen oplossen
Section titled “Problemen oplossen”Opstarten mislukt met failed to get final advertise address
Section titled “Opstarten mislukt met failed to get final advertise address”Als HitKeep onmiddellijk stopt met:
failed to get final advertise address: no private IP address found, and explicit IP not providedkon de ingebouwde clusterlaag niet bepalen welk IP-adres voor gossipverkeer moest worden aangekondigd. Dit gebeurt meestal in lokale of ontwikkelomgevingen waar 0.0.0.0:7946 als standaard bindadres wordt gebruikt, maar de host geen detecteerbaar privé-netwerkadres heeft.
Bind voor een lokale installatie met één node het clusteradres expliciet aan loopback:
./hitkeep --bind-addr=127.0.0.1:7946Of met een omgevingsvariabele:
HITKEEP_BIND_ADDR=127.0.0.1:7946 ./hitkeepStel bij implementaties met meerdere nodes --bind-addr of HITKEEP_BIND_ADDR in op een echt privéadres dat vanaf de andere nodes bereikbaar is, niet op loopback.
Upgraden
Section titled “Upgraden”Lees de nieuwste releaseopmerkingen en maak een volledige back-up. Download met het snelstartcommando de nieuwe binary voor dezelfde architectuur en vervang het uitvoerbare bestand terwijl de service is gestopt:
sudo systemctl stop hitkeepsudo install -m 0755 ./hitkeep /usr/local/bin/hitkeepsudo systemctl start hitkeepcurl --fail http://127.0.0.1:8080/readyzhitkeep --versionBewaar de vorige binary en de back-up van vóór de upgrade totdat zowel de gereedheidscontrole als een trackingverzoek slagen. Lees vóór een downgrade de releaseopmerkingen; na releases met datamigraties kan een oudere binary mogelijk niet met de geüpgradede data werken.
Back-up
Section titled “Back-up”Gebruik voor een actieve service bij voorkeur HitKeeps ingebouwde checkpointgebaseerde back-upworker. Voeg de volgende regels toe aan het onderdeel [Service] van de unit of aan een systemd-drop-in en herstart daarna de service:
Environment="HITKEEP_BACKUP_PATH=/var/lib/hitkeep/backups"Environment="HITKEEP_BACKUP_INTERVAL=60"Environment="HITKEEP_BACKUP_RETENTION=24"Stop HitKeep vóór een onbewerkte kopie van het bestandssysteem, zodat de database en WAL niet onafhankelijk van elkaar kunnen wijzigen:
sudo systemctl stop hitkeeprsync -a /var/lib/hitkeep/data/ /backup/hitkeep-$(date +%Y%m%d)/rsync -a /var/lib/hitkeep/archive/ /backup/hitkeep-archive-$(date +%Y%m%d)/sudo systemctl start hitkeepDe kopie moet het geconfigureerde HITKEEP_DB_PATH, de volledige HITKEEP_DATA_PATH-structuur met tenantdatabases onder tenants/*/hitkeep.db en elk archiefpad dat je wilt bewaren bevatten. Zie Back-ups en herstel voor herstelcommando’s en S3-opties.
Gerelateerd
Section titled “Gerelateerd”- Vertrouwde proxy’s — vereist bij gebruik achter een reverse proxy
- Configuratiereferentie
- Feiten en limieten
- Databewaring
Wil je systemd-services, upgrades en back-ups niet zelf beheren? Vergelijk HitKeep Cloud voor beheerde hosting in de EU (Frankfurt) of VS (Virginia), met zero-downtime-upgrades en automatische back-ups.