ID.nl logo
Bouw je eigen dashboard met Homepage: al je webapplicaties overzichtelijk op één plek
Huis

Bouw je eigen dashboard met Homepage: al je webapplicaties overzichtelijk op één plek

Heb je meer dan een handvol webapplicaties op een Linux-server draaien? Dan is een dashboard met links naar deze applicaties een uitkomst. Het project Homepage biedt precies dat, inclusief widgets die allerlei statistieken van je services weergeven. In dit artikel installeren we Homepage en laten we je zien hoe je het integreert met je bestaande services.

Dit gaan we doen

In deze masterclass richten we een persoonlijk dashboard in met Homepage. Je leert hoe je de tool installeert in Docker, services groepeert en uitbreidt met widgets voor statistieken zoals cpu- en geheugengebruik, uptime of weersinformatie. We laten zien hoe je containers automatisch herkent, monitoring toevoegt en ook bladwijzers of alternatieve dashboards gebruikt. Zo krijg je één centrale plek waar je al je webapplicaties en services snel terugvindt en beheert.

Lees ook: Windows gebruiken naast of binnen Linux? Zo krijg je het soepel aan de praat met Docker


⬇️ Code downloaden

In dit artikel staat voorbeelden met YAML-code. Omdat YAML erg gevoelig is voor foute spaties en inspringingen, kun je die code beter downloaden en daarna bekijken of kopiëren. Zie het bestand homecode.txt, beschikbaar via deze link.


Homepage helpt je om diverse webapplicaties in één dashboard te organiseren. Dit is handig als je services in Docker-containers draait of eenvoudig toegang wilt tot de beheerpagina’s van apparaten zoals je modem, router en NAS.

Hoewel dit klinkt als een veredelde bookmark-manager, doet Homepage meer dan alleen links op een pagina verzamelen. Het project ondersteunt widgets voor meer dan honderd services en kan zo bijvoorbeeld het cpu- en geheugenverbruik van je hypervisor of het aantal ongelezen artikels in je RSS-lezer tonen. Je hoeft daardoor vaak zelfs niet op de links te klikken om even snel de status van je services te bekijken.

Docker Compose

We gaan ervan uit dat je een Linux-server hebt waarop je services met behulp van Docker Compose in Docker-containers draait. Homepage draai je dan gewoon in een Docker-container naast je bestaande services, al zijn er ook andere installatie-opties. In ons voorbeeld draaien we Docker op Debian 12. Maak om te beginnen een map waarin de container van Homepage zijn data en configuratie kan opslaan, met deze opdracht:

$ mkdir -p containers/homepage

Zet vervolgens in je bestand docker-compose.yml (het bestand waarin je al je containers definieert) een service voor Homepage:

services:

  homepage:

    image: ghcr.io/gethomepage/homepage:latest

    container_name: homepage

    ports:

      - 3000:3000

    volumes:

      - /home/koan/containers/homepage:/app/config

    environment:

      HOMEPAGE_ALLOWED_HOSTS: debian.home:3000

    restart: unless-stopped

Homepage kun je op diverse manieren installeren.

Homepage opstarten

Wijzig in het gedefinieerde volume de directory vóór de dubbele punt naar het volledige pad van de directory die je voor de container hebt aangemaakt. Stel de waarde van de omgevingsvariabele HOMEPAGE_ALLOWED_HOSTS gelijk aan het domein of het ip-adres van de host, gescheiden door een dubbele punt van het poortnummer. Als je met een reverse proxy werkt, zet je hier het domein waarop de applicatie via die proxy bereikbaar is.

Start de container met:

$ docker-compose up -d

Zodra het image gedownload is en de container draait, open je Homepage in je browser op de url die je in HOMEPAGE_ALLOWED_HOSTS hebt gedefinieerd. Je ziet dan een voorbeeldpagina met van boven naar onder een header, groepen met services en groepen met bladwijzers.

Het standaarddashboard van Homepage vlak na de installatie.

Informatiewidgets

In de header vind je enkele informatiewidgets. Hoewel deze niet de kern van de functionaliteit van Homepage uitmaken, bieden ze nuttige aanvullende informatie. Standaard zie je het cpu-verbruik, het beschikbare geheugen en de vrije schijfruimte van de host. Er is ook een tekstveld om te zoeken via DuckDuckGo. De definitie van deze twee widgets vind je in het bestand widgets.yaml in de directory van de Homepage-container.

In de online documentatie van de informatiewidgets lees je hoe je hun gedrag aanpast. Zo kunnen we de widget Resources ook de uptime van het systeem laten tonen (uptime: true) en met de optie expanded: true meer informatie over de cpu, het geheugen en de schijfruimte laten weergeven. De widget ziet er dan als volgt uit in widgets.yaml:

- resources:

    label: System

    expanded: true

    cpu: true

    memory: true

    uptime: true

    disk: /

Weersomstandigheden

Homepage biedt twee widgets om het weer in de header te tonen: één via Open-Meteo en één via OpenWeatherMap. De eerste vereist geen registratie, dus daarvoor hoef je alleen maar de gps-coördinaten van je locatie in te voeren. In widgets.yaml ziet dat er als volgt uit:

- openmeteo:

    label: Attenrode

    latitude: 50.8773405

    longitude: 4.9213237

    timezone: Europe/Brussels

    units: metric

    cache: 5

    format:

      maximumFractionDigits: 1

Met cache: 5 laten we de widget de weergegevens vijf minuten lang cachen om de servers van Open-Meteo te ontlasten. Verder biedt Homepage nog andere informatiewidgets aan, bijvoorbeeld voor beurskoersen of de datum en tijd.

In de header van Homepage plaats je allerlei informatiewidgets.

Services toevoegen

De kernfunctionaliteit van Homepage ligt uiteraard in het groeperen van services in één dashboard. De standaardconfiguratie voegt drie groepen toe met elk één service. De YAML-code hiervoor vind je in het bestand services.yaml. Vervang die door je eigen groepen. Je kunt bijvoorbeeld een groep Network aanmaken met links naar de beheerinterfaces van je modem/router en accesspoints:

- Network:

  - Proximus:

      href: http://192.168.1.1

      description: Modem

      icon: mdi-web

  - OpenWrt:

      href: http://gl-mt3000.home

      description: Accesspoint

      icon: openwrt

De eigenschap icon kan een absolute url zijn of een naam uit de lijst op de website Dashboard Icons. Begin de naam van een pictogram met mdi- voor een keuze uit Material Design Icons , met si- voor een keuze uit Simple, of met sh- voor een keuze uit Self-Hosted Dashboard Icons.

Ook groepen kunnen een pictogram krijgen. Dat definieer je dan in het bestand settings.yaml:

layout:

  Network:

    icon: mdi-lan-connect

  Infrastructure:

    icon: mdi-server-network

  Services:

    icon: mdi-apps

Services en groepen kun je pictogrammen geven, bijvoorbeeld van de website Self-Hosted Dashboard Icons.

Servicewidgets

Tot nu toe lijkt ons dashboard wat op een veredeld lijstje met bladwijzers. Maar Homepage ondersteunt ook servicewidgets voor meer dan honderd services. Controleer in de lijst of je services ondersteund zijn. Draai je bijvoorbeeld OPNsense op je router, dan krijg je met de volgende widget de processorbelasting, het gebruikte geheugen, en de upload- en downloadhoeveelheden van je WAN-interface te zien:

- OPNsense:

      href: https://opnsense.home

      description: Router

      icon: opnsense

      widget:

        type: opnsense

        url: https://opnsense.home

        username: KEY

        password: SECRET

Voor username en password vul je de API-sleutel en het ‘secret’ in die je in de webinterface van OPNsense aanmaakt via System / Access / Users. De documentatie van Homepage voor de OPNsense-widget legt dit gedetailleerd uit. Wil je slechts een deel van de statistieken zien, dan kan dat door de widget uit te breiden met een regel als:

fields: ["wanDownload", "wanUpload"]

Homepage ondersteunt widgets voor meer dan honderd services.

Meerdere widgets

Je kunt een service ook van meerdere widgets voorzien. Dat is bijvoorbeeld handig bij monitoringtools zoals Uptime Kuma. Voeg aan de OPNsense-service dan de OPNsense-widget toe voor servicespecifieke statistieken en de widget van Uptime Kuma voor beschikbaarheidsstatistieken. In plaats van één object widget bevat de service dan een object widgets met een lijst die beide widgets bevat:

  - OPNsense:

      href: https://opnsense.home

      description: Router

      icon: opnsense

      widgets:

        - type: opnsense

          url: https://opnsense.home

          username: KEY

          password: SECRET

        - type: uptimekuma

          url: https://uptime-kuma.rubus.home

          slug: router

          fields: ["uptime", "incident"]

De widget van Uptime Kuma gebruikt data van een statuspagina. Die moet je dus eerst in Uptime Kuma aanmaken, en de naam van de statuspagina vul je bij slug in de widget in. Als de statuspagina bijvoorbeeld toegankelijk is via https://uptime-kuma.rubus.home/status/router, dan is de slug router.

Homepage kan een statuspagina van Uptime Kuma in een service integreren.

Beschikbaarheid monitoren

Ook zonder speciale monitoringtools kun je met Homepage eenvoudig te zien krijgen of al je services momenteel online zijn. Dat kan met de eigenschap ping of siteMonitor in de service. Voeg bijvoorbeeld aan de service voor OPNsense ping: opnsense.home toe. Homepage stuurt dan regelmatig een ICMP-echopakket (ping) naar de host en toont de beschikbaarheid in de rechterbovenhoek van het kader van de service.

Met siteMonitor: https://opnsense.home daarentegen voert Homepage een HTTP HEAD-verzoek uit naar de url om te controleren of de webpagina beschikbaar is. Zo weet je niet alleen dat de host online is, maar ook dat de webserver tenminste draait en de pagina aanbiedt. Let op dat je hier de volledige url met https:// of http:// dient te gebruiken. De stijl van de getoonde status kun je overigens in settings.yaml aanpassen met bijvoorbeeld statusStyle: dot of statusStyle: basic.

Enkele services met pictogrammen, widgets en statusinformatie.

Docker-containers integreren

Als je services in Docker-containers draait, kan Homepage via de API van de Docker-engine statistieken over die containers opvragen en zelfs automatisch services herkennen. Configureer hiervoor een Docker-instance voor Homepage in docker.yaml. Als je Homepage met de Docker-socket laat verbinden, kan dat met de volgende configuratie:

local-docker:

  socket: /var/run/docker.sock

In je Docker Compose-bestand moet je deze socket als volume in de Homepage-container aankoppelen:

    volumes:

      - /home/koan/containers/homepage:/app/config

      - /var/run/docker.sock:/var/run/docker.sock

Docker Socket Proxy

Een veiliger alternatief om Homepage toegang tot Docker te geven, is via Docker Socket Proxy. Je laat die laatste dan rechtstreeks met de Docker-socket verbinden en de andere containers via een HTTP API beperkte bevoegdheden geven. Voeg daarvoor in je Docker Compose-bestand de volgende service voor Docker Socket Proxy toe:

  docker-socket-proxy:

    image: ghcr.io/tecnativa/docker-socket-proxy:0.3.0

    container_name: docker-socket-proxy

    volumes:

      - /var/run/docker.sock:/var/run/docker.sock:ro

    environment:

      CONTAINERS: 1

    restart: unless-stopped

Standaard geeft Docker Socket Proxy sterk ingeperkte API-toegang tot de Docker-engine, en sowieso alleen-lezen. Met de omgevingsvariabele CONTAINERS: 1 geven we toegang tot informatie over containers, precies wat Homepage nodig heeft.

Wijzig nu in het bestand docker.yaml de definitie van local-docker naar:

local-docker:

  host: docker-socket-proxy

  port: 2375

Omdat de container van Docker Socket Proxy zich in hetzelfde netwerk als Homepage bevindt, is die onder de naam docker-socket-proxy bereikbaar, wat we hier als host invullen.

Maak dan de containers opnieuw aan met de opdrachten:

docker-compose down

docker-compose up -d

Containers monitoren

Containers die in hetzelfde Docker Compose-bestand als Homepage zijn gedefinieerd, kun je nu door die laatste laten monitoren. Je moet dan bij de service in services.yaml de Docker-server en de naam van de container opgeven, bijvoorbeeld:

- Services:

  - FreshRSS:

      href: http://debian.home:8081

      description: Feed aggregator

      icon: freshrss

      server: local-docker

      container: freshrss

De waarde van server is hier de naam van de Docker-instance in docker.yaml, namelijk local-docker. De waarde van container is hier de naam van de container, gedefinieerd in container_name in het Docker Compose-bestand.

Na het herladen van de webpagina van Homepage krijgt de FreshRSS-service de status RUNNING in de rechterbovenhoek of EXITED wanneer de container gestopt is. Klik op de status voor gedetailleerdere statistieken zoals de processorbelasting, het geheugengebruik en netwerkverkeer.

Services automatisch detecteren

Elke keer dat je nu een service toevoegt, moet je de container aan je Docker Compose-bestand toevoegen en een definitie van de service aan het bestand services.yaml van Homepage. Maar Homepage ondersteunt ook het automatisch detecteren van services voor containers met behulp van labels. Met deze aanpak hoef je services.yaml niet meer bij te werken en hoef je slechts één bestand te veranderen. Voor FreshRSS kan dat bijvoorbeeld als volgt:

  freshrss:

    image: docker.io/freshrss/freshrss:1.26.1-alpine

    container_name: freshrss

    ports:

      - 8081:80

    volumes:

      - /home/koan/containers/freshrss/data:/var/www/FreshRSS/data

      - /home/koan/containers/freshrss/extensions:/var/www/FreshRSS/extensions

    environment:

      CRON_MIN: "1,31"

      TZ: Europe/Brussels

    restart: unless-stopped

    labels:

      - homepage.group=Services

      - homepage.name=FreshRSS

      - homepage.href=http://debian.home:8081

      - homepage.description=Feed aggregator

      - homepage.icon=freshrss

In de labels van deze container geef je dus aan dat je in de groep Services een service met de naam FreshRSS toevoegen, met de gegeven link, beschrijving en pictogram. De opties server en container uit de vorige paragraaf zijn met deze aanpak overbodig, omdat Homepage deze automatisch via de API van de geconfigureerde Docker-instance verkrijgt. Na opnieuw het uitvoeren de volgende twee commando’s ontdekt Homepage automatisch de service en voegt deze aan de juiste groep toe:

docker-compose down

docker-compose up -d

Widgets

Op dezelfde manier kun je widgets toevoegen via labels. In het voorbeeld uit de vorige stap voeg je dan de volgende labels toe:

      - homepage.widget.type=freshrss

      - homepage.widget.url=http://freshrss

      - homepage.widget.username=USER

      - homepage.widget.password=PASSWORD

Wil je meerdere widgets aan een container toevoegen, geef dan elk widget een index:

      - homepage.widgets[0].type=freshrss

      - homepage.widgets[0].url=http://freshrss

      - homepage.widgets[0].username=USER

      - homepage.widgets[0].password=PASSWORD

      - homepage.widgets[1].type=uptimekuma

      - homepage.widgets[1].url=https://uptime-kuma.rubus.home

      - homepage.widgets[1].slug=freshrss

Wanneer je nu de container van FreshRSS opnieuw aanmaakt en opstart, detecteert Homepage de widgets en toont ze bij de service.

Alternatieven voor Homepage

Hoewel Homepage een krachtige tool is, zijn er talrijke alternatieven om een dashboard voor al je services te maken, elk met hun eigen benadering. Houd je niet van YAML-configuraties, dan biedt Homarr een gebruiksvriendelijk alternatief om met slepen en neerzetten allerlei services toe te voegen.

Ook populair is Heimdall. Het is minder naar eigen smaak aan te passen dan Homepage of Homarr, maar daardoor eenvoudig om mee aan de slag te gaan.

Bevalt de aanpak met YAML-bestanden je wel, maar ligt Homepage je niet helemaal, kijk dan eens naar Dashy.

Bookmarks

Tot slot kan Homepage ook gewone bladwijzers aan je dashboard toevoegen. Je kunt ze net op dezelfde manier als services groeperen, maar het zijn slechts links zonder extra functionaliteiten zoals widgets en monitoring. Bladwijzers definieer je in het bestand bookmarks.yaml van Homepage, dat er standaard als volgt uitziet:

- Developer:

  - GitHub:

    - abbr: GH

      href: https://github.com

- Social:

  - Reddit:

    - abbr: RE

      href: https://reddit.com

- Entertainment:

  - YouTube:

    - abbr: YT

      href: https://youtube.com

Vervang deze groepen met bladwijzers door jouw eigen keuzes. Dit is bijvoorbeeld handig om alle links naar portaalsites of accounts bij belangrijke diensten op één pagina te verzamelen. Homepage toont dan per groep een lijst met bladwijzers met hun afkorting (de waarde van abbr), naam en het domein van de link.

Wil je in plaats van een afkorting een pictogram bij een bladwijzer tonen, gebruik dan icon in plaats van abbr en geef daar net zoals bij services de naam van een pictogram op. En vul description bij een bladwijzer in om een beschrijving in de plaats van het domein te zien. Ook de groepen van bladwijzers kun je een pictogram geven. Net zoals voor de groepen van services definieer je die pictogrammen in settings.yaml.

Een volledig dashboard van Homepage met header, services en bladwijzers.

En verder

Homepage biedt nog veel meer mogelijkheden dan we hier kunnen behandelen. Vooral in het bestand settings.yaml zijn er nog allerlei aanpassingen mogelijk. Zo kun je een achtergrondafbeelding instellen en daarop allerlei filters toepassen. Ook het thema en het kleurenpalet, die je beide via pictogrammen onderaan de pagina kunt aanpassen, zijn vast in te stellen.

Ook de lay-out van het dashboard is configureerbaar. Zo neemt standaard elke groep een kolom in, waarbij de services onder elkaar komen te staan. Maar met style: row bij een groep laat je de services in die groep naast elkaar in een rij weergeven. Ook het aantal kolommen, de stijl van de header en nog meer zijn in te stellen.

Homepage is tot in de kleinste details aan te passen.

Speciaal voor de jongste Linux-fans

(dit vinden ze zeker leuk!)
▼ Volgende artikel
Chaos in Chrome? Met tabgroepen krijg je weer overzicht (en zo werkt het)
© Copyright © 2017 Michael Burrell
Huis

Chaos in Chrome? Met tabgroepen krijg je weer overzicht (en zo werkt het)

Tabbladen zijn handig, maar kunnen al snel uitmonden in een onoverzichtelijke wirwar. Om dat probleem aan te pakken, introduceerde Google Chrome tabgroepen: een slimme manier om je openstaande tabs te ordenen en labelen.

Wat gaan we doen

In dit artikel zie je hoe je tabgroepen aanmaakt, benoemt en indeelt, zodat je browser niet langer uitpuilt. Je leert hoe je snel een nieuwe groep maakt, kleuren gebruikt om orde te scheppen en hoe je groepen verplaatst, sluit of opheft. Zo blijft je werkruimte overzichtelijk, zelfs als je tientallen tabbladen open hebt staan.

Lees ook: Trage Chrome? Zet de efficiëntiemodus uit!

Stap 1: Nieuwe groepen

Zorg eerst dat je de nieuwste versie van Chrome op je laptop hebt staan. Klik op de drie puntjes rechtsboven, kies Help / Over Google Chrome en installeer eventueel de update. Om tabbladgroepen in de vingers te krijgen, open je snel een paar tabbladen. Denk aan pagina's over hetzelfde onderwerp of project. Klik met de rechtermuisknop op een tabblad en kies Toevoegen aan een nieuwe groep.

Met de rechtermuisknop maak je een nieuwe tabbladgroep.

Stap 2: Naam en kleur

Er verschijnt een venstertje waarin je de groep een naam en kleur kunt geven. Kies een korte, herkenbare naam die het onderwerp van de groep weergeeft, zoals 'Werk', 'Recepten' of 'Vakantieplanning'. Een kleur toewijzen helpt je om snel onderscheid te maken tussen verschillende groepen. De groep verschijnt vervolgens als een gekleurde knop tussen je tabbladen. Een groot voordeel: als je op de groepsnaam klikt, worden de bijbehorende tabbladen ingeklapt, dat bespaart ruimte.

Tabbladen kun je later eenvoudig toevoegen: klik met de rechtermuisknop op het gewenste tabblad en kies de gewenste groep.

Ieder tabblad kun je snel aan een bestaande of nieuwe groep toevoegen.

Stap 3: Groep sluiten

Klik je met de rechtermuisknop op de naam van de tabbladgroep, dan krijg je andere mogelijkheden. Met de optie Nieuw tabblad in groep open je een leeg tabblad in de bestaande groep. Het is ook mogelijk om een bestaand tabblad gewoon in de groep te slepen. Kies je Groep verplaatsen naar een nieuw venster, dan opent Chrome een nieuw browservenster met daarin alle opgenomen tabbladen. Met de opdracht Groep sluiten verdwijnt de groep van je scherm. Dit doe je als je de hele groep niet meer nodig hebt en je de tabbladen niet langer wilt openhouden. Met Groep verwijderen (in sommige versies: Groep opheffen) blijven de tabbladen open, maar worden ze losgekoppeld van de groep. De kleur en de groepsnaam verdwijnen. Dit doe je als je de inhoud nog nodig hebt, maar je geen groepsindeling meer wilt.

Je kunt de groep verwijderen dan blijven de ingesloten tabbladen wel bestaan.


5x Chromebooks

Zeg je Chrome, dan denk je ook al snel aan Chromebooks. Hieronder een selectie 5 fijne modellen.

Acer Chromebook Plus 514

Compacte 14-inch Chromebook met vlotte prestaties, lichte aluminium behuizing en degelijke accuduur.

HP Chromebook x360 14b‑cd0625nd

14″ touchscreen Chromebook met 8 GB RAM en 128 GB opslag; geschikt voor alle dagelijkse taken.

Acer Chromebook Plus 515 CB515-2H-32UH

Stevige 15,6″ Chromebook met Full HD-scherm, Intel Core-i3, 8 GB RAM en 128 GB SSD, geschikt voor werk, school, surfen en media.

Lenovo IdeaPad / Slim 3 Chrome / 83BN0038MH

Compacte 14″ Chromebook met Full HD-scherm en Intel Core i3, prima voor school, mail, web en licht werk.

HP Chromebook 14a-nf0050nd

Lichte 14″ Chromebook met Full HD-scherm, Intel N-processor, 4 GB RAM en 128 GB opslag; geschikt voor internet, mail, documenten en basisgebruik op school of werk.

Ook je papieren overzichtelijk?

Berg ze op in sorteermappen
▼ Volgende artikel
Parfum, eau de parfum of eau de toilette: wat is het verschil en wat moet je kiezen?
© Leonid Iastremskyi
Gezond leven

Parfum, eau de parfum of eau de toilette: wat is het verschil en wat moet je kiezen?

Je staat in de parfumerie en ziet drie flacons die er bijna identiek uitzien. De naam is hetzelfde en het merk is hetzelfde, maar het prijsverschil tussen die drie is groot. Dat komt doordat er eigenlijk drie verschillende varianten zijn: parfum, eau de parfum en eau de toilette. Hoewel het verleidelijk is om simpelweg op het prijskaartje af te gaan, is het slim om te weten wat je precies koopt. De verschillen tussen die drie zijn namelijk groter dan je denkt. Hoe dat precies zit, lees je hier.

Dit artikel in het kort

Twijfel je in de winkel vaak tussen parfum, eau de parfum of eau de toilette? In dit artikel leggen we precies uit wat de verschillen zijn in prijs, geursterkte en houdbaarheid. Je ontdekt welke variant het beste past bij jou en we geven praktische tips om te voorkomen dat je dure luchtje te snel vervliegt.

Lees ook: Zo kies je een parfum dat écht bij je past

Om de juiste keuze te maken, moet je eerst begrijpen hoe een geur eigenlijk in elkaar zit. In de basis bestaat elk luchtje uit een mengsel van alcohol, water en geurstoffen (ook wel parfumolie genoemd). De alcohol fungeert als de drager: zodra je sprayt, verdampt de alcohol en blijven de geurstoffen achter op je huid. Het grote onderscheid tussen de verschillende varianten zit hem puur in de concentratie van die parfumolie. De vuistregel is simpel: hoe hoger het percentage geurstoffen, hoe intenser de geur is en hoe langer je er plezier van hebt.

Parfum (extrait de parfum)

Als we het in de volksmond hebben over 'parfum', bedoelen we vaak gewoon een lekker luchtje. Maar in de officiële termen is parfum (of extrait de parfum) de meest pure en kostbare variant die je kunt kopen. Met een concentratie aan geurstoffen die meestal tussen de 20 en 40 procent ligt, is dit de absolute topklasse.

Omdat de concentratie zo hoog is, bevat deze variant relatief weinig alcohol. Dit maakt puur parfum vaak een uitstekende keuze voor mensen met een gevoelige huid, omdat alcohol de huid kan uitdrogen. De geur is vol, diep en blijft met gemak de hele dag - en vaak zelfs de volgende ochtend nog - hangen. Je hebt er extreem weinig van nodig; vaak wordt parfum daarom niet in een sprayfles verkocht, maar in een klein flesje waarmee je een paar druppels op de huid dept.

Eau de parfum (EDP)

Kijk je in het badkamerkastje van de gemiddelde Nederlander, dan is de kans groot dat je daar een eau de parfum aantreft. Met een geurconcentratie van 15 tot 20 procent biedt deze variant de gulden middenweg. Het is minder zwaar en olieachtig dan puur parfum, maar krachtig genoeg om een hele werkdag of een avond uit mee te gaan. Meestal blijft een eau de parfum zo'n zes tot acht uur goed waarneembaar.

Eau de parfum richt zich vaak op de zogenoemde 'hartnoten' van een geur. Dit zijn de geuren die tevoorschijn komen nadat de eerste alcohol is verdampt. Hierdoor is de geur vaak wat dieper en warmer, wat hem geschikt maakt voor zowel dagelijks gebruik als speciale gelegenheden.

Eau de toilette (EDT)

De term 'eau de toilette' klinkt chique, maar betekent letterlijk 'toiletwater'. Dit stamt uit de tijd dat men deze geur gebruikte om zich in de ochtend mee op te frissen ('toilet maken'). Deze variant is met een percentage van 5 tot 15 procent geurstoffen een stuk lichter en vluchtiger dan (eau de) parfum.

Waar een eau de parfum de diepte in gaat, focust een eau de toilette zich meestal op de toptonen. Dit zijn vaak frisse citrus- of fruitgeuren die je direct ruikt bij het sprayen, maar die ook sneller vervliegen. Een eau de toilette blijft gemiddeld drie tot vijf uur hangen. Het is dan ook een goede keuze voor mensen die niet van zware, bedwelmende geuren houden, of voor gebruik op kantoor waar je je collega's niet wilt overweldigen. Houd er wel rekening mee dat je deze geur halverwege de dag waarschijnlijk even opnieuw moet aanbrengen.

Prijs versus kwaliteit: wat is nu echt goedkoper?

Het lijkt een simpele rekensom: een grote fles eau de toilette is aan de kassa vaak goedkoper dan een klein flesje eau de parfum. Toch kan die goedkopere fles op de lange termijn duurkoop zijn. Omdat eau de toilette sneller vervliegt, heb je de neiging om royaal te sprayen en dit gedurende de dag te herhalen. Hierdoor gaat de fles veel sneller leeg.

Bij een eau de parfum of puur parfum is de aanschafprijs hoger, maar heb je aan één keer een beetje aanbrengen in de ochtend vaak genoeg voor de hele dag. Je doet dus aanzienlijk langer met de flacon.

Wanneer draag je wat?

Als je twijfelt over welke variant je moet kopen, laat dit dan afhangen van het seizoen en de gelegenheid. Warmte versterkt namelijk geur. In de zomer, wanneer je huid warm is, kan een zwaar parfum al snel te overheersend en plakkerig aanvoelen. Een lichte, frisse eau de toilette is dan perfect. In de winter is het juist andersom: kou zorgt ervoor dat geuren minder goed vrijkomen en snel wegvallen. In die maanden, en zeker 's avonds tijdens een diner of feestje, komt een rijkere eau de parfum of parfum veel beter tot zijn recht.

Haal alles uit je geur

Heb je eenmaal je keuze gemaakt, dan wil je natuurlijk dat je zo lang mogelijk lekker ruikt. Een veelgemaakte fout is het wrijven van de polsen na het sprayen. Doe dit niet; door de wrijving creëer je warmte die de geurmoleculen kapotmaakt, waardoor vooral de frisse toptonen direct verdwijnen en de geur vlakker wordt.

Daarnaast hecht parfum slecht op een droge huid. Wil je dat je geur echt lang blijft hangen? Smeer je huid dan eerst in met een geurloze bodylotion of een crème uit dezelfde geurlijn voordat je gaat sprayen. De vetten in de crème houden de geurstoffen vast, zodat jij - of je nu kiest voor eau de toilette of parfum - de hele dag heerlijk ruikt.

Geur testen? Begin met een eau de toilette

(want die is het voordeligst)
TypeGeurconcentratieHoudbaarheidGeschikt voor
Parfum20% - 40%8 - 24 uurAvond, speciale gelegenheden
Eau de parfum15% - 20%6 - 8 uurDag en avond
Eau de toilette5% - 15%3 - 5 uurOverdag, warmer weer