MPWatcher is een Docker-based webapplicatie waarmee je automatisch Marktplaats-advertenties monitort op basis van zoekwoorden en direct via Telegram meldingen ontvangt bij nieuwe advertenties.
✅ Webinterface
✅ Telegram notificaties
✅ Per zoekwoord instelbaar
✅ Docker / Portainer / NAS-proof
✅ Persistente configuratie via volume
- Monitor meerdere zoekwoorden op Marktplaats.nl of 2dehands.be
- Alleen nieuwe advertenties worden gemeld
- Telegram berichten bevatten:
- Titel
- Prijs
- Afbeelding
- Button met link naar advertentie
- Instelbaar:
- Zoekinterval
- Min. / max. prijs per zoekwoord
- Resultaatlimiet per zoekopdracht
- Postcode en straal
- Nachtmodus (slaapstand)
- Blocklist voor verkopers
- Handmatige zoekactie mogelijk via de GUI
MPWatcher is bedoeld om te draaien als Docker container en werkt uitstekend met Portainer en andere Docker-omgevingen.
De container gebruikt één volume voor persistente data:
/config– instellingen, zoekwoorden en resultaten
Na het starten is de webinterface bereikbaar via de ingestelde poort.
services:
mpwatcher:
image: ghcr.io/terrorsource/mpwatcher:latest
container_name: mpwatcher
restart: unless-stopped
network_mode: bridge
environment:
- TZ=Europe/Amsterdam
ports:
- "8000:8000"
volumes:
- /path/to/mpwatcher-config:/configℹ️ Het image staat op GitHub Container Registry. Het oude Docker Hub-image (
makooy/mpwatchter) wordt niet meer bijgewerkt — stap over opghcr.io/terrorsource/mpwatcher. Naast:latestis per release ook een versie-tag beschikbaar (bijv.:v18).
De container heeft een ingebouwde healthcheck op /health die ook de interne
scheduler bewaakt: blijft die hangen, dan wordt de container unhealthy gemeld
en kan Docker/Portainer hem automatisch herstarten.
Goed om te weten:
- De container draait als non-root gebruiker (uid
1000). Zorg dat de host-map die je aan/configkoppelt schrijfbaar is voor uid 1000. - Instellingen en zoekwoorden staan in
results.db(SQLite). Bestaandesettings.json/keywords.jsonuit oudere versies worden bij de eerste start automatisch geïmporteerd en hernoemd naar*.imported. - Per zoekwoord worden maximaal 500 resultaten bewaard; oudere worden automatisch opgeruimd.
- Dezelfde advertentie die op meerdere zoekwoorden matcht wordt maar één keer via Telegram gemeld.
Ga in de webinterface naar Configuratie.
- Marketplace
Marktplaats.nl of 2dehands.be - Standaard interval (minuten)
Wordt gebruikt voor nieuwe zoekwoorden - Limiet per zoekopdracht
Maximaal aantal advertenties per run (1–20)
- Minder vaak zoeken tijdens de nacht
- Standaard actief tussen 23:00 – 07:00
- Maximaal 1 zoekactie per uur tijdens slaapstand
- Postcode (bijv.
1234AB) - Straal
- 3, 5, 10, 15, 25, 50, 75 km
- of alle afstanden
Vul de Telegram gegevens in onder Configuratie → Telegram:
- Telegram Bot Token
- Telegram Chat ID
Gebruik de knop “Test Telegram” om te controleren of alles werkt.
Onder Configuratie → Blocklist verkopers kun je verkopers uitsluiten (één naam per regel). Advertenties van deze verkopers worden genegeerd en dus ook niet via Telegram gemeld.
Op de resultatenpagina van een zoekwoord staat per advertentie een Blokkeer-knop om de verkoper direct aan de blocklist toe te voegen (de blocklist wordt daarbij automatisch ingeschakeld).
Via het Overzicht in de GUI:
- Voeg nieuwe zoekwoorden toe
- Stel per zoekwoord in:
- Min. prijs
- Max. prijs
- Limiet per zoekopdracht
- Beschikbare acties:
- Handmatig zoeken
- Laatste resultaten bekijken
- Resultaten resetten
- Zoekwoord verwijderen
✅ Alleen nieuwe advertenties worden doorgestuurd
✅ Duplicaten worden automatisch gefilterd
ℹ️ Stel je een min- of maxprijs in, dan vallen advertenties zonder bruikbare prijs (zoals Bieden of Gratis) buiten de resultaten.
- Start direct een zoekactie via de GUI
- Resultaten verschijnen:
- in de webinterface
- optioneel direct via Telegram
Handig om nieuwe instellingen te testen.
pip install -r requirements-dev.txt
pytestLokaal draaien zonder Docker kan met python app.py; zet eventueel
MPWATCHER_CONFIG_DIR naar een lokale map (standaard /config).
