Receive Apprise notifications when new Vinted items matching your criteria are added.
(100% VIBE CODED PROJECT)
- 🐍 Python-based executable with optional daemon mode
- ⚙️ Configurable
config.yamlfor Apprise targets, Vinted instances, notification formatting, and searches - 💾 SQLite storage of already-notified items to avoid duplicates
- 🌍 Supports Vinted instances like
.it,.fr,.com, and more - 🔎 Parses Vinted catalog URLs and tracks items matching the search criteria
- 🐳 Docker-ready
Dockerfile
- Install dependencies:
python -m pip install -r requirements.txt-
Customize
config.yamlwith your Apprise targets and query URLs. -
Run once:
python -m vinted_notifier --config config.yaml --once- Run as a daemon:
python -m vinted_notifier --config config.yaml --daemon- Run with Docker Compose:
docker compose up -dThe project includes a minimal web UI to edit config.yaml (Apprise URLs, notification templates and queries). The UI runs on port 5000 and saves changes back to the mounted config.yaml.
Run locally:
python -m vinted_notifier.cli --config config.yaml --webRun via Docker (exposes port 5000):
# start the container in interactive mode and run the web UI
docker compose run --service-ports --rm vinted-notifier python -m vinted_notifier.cli --config config.yaml --webOr use the docker-compose.yml included which maps port 5000 and mounts config.yaml writable. Then open http://localhost:5000/ to edit settings.
The sample config.yaml includes:
apprise_urls: list of Apprise URLs for notification targetsdefault_instance: default Vinted locale to use wheninstanceis not specifieddatabase: path to SQLite database file for notified item trackingrun_interval: polling interval in seconds for daemon modenotification.title: title template using placeholders like{query_name},{title},{brand},{price}, and{url}notification.body: body template for detailed notificationsqueries: list of tracked search URLs with optionalnameandinstance
Build and run with Docker:
docker build -t vinted-notifier .
docker run --rm -v "$PWD/config.yaml:/app/config.yaml" -v "$PWD/data:/app/data" vinted-notifierOr pull the prebuilt image from GitHub Container Registry:
docker run --rm -v "$PWD/config.yaml:/app/config.yaml" -v "$PWD/data:/app/data" ghcr.io/cchrkk/vinted-notifier:latestTo run continuously, set the daemon environment variable in Docker:
docker run --rm -v "$PWD/config.yaml:/app/config.yaml" -v "$PWD/data:/app/data" -e DAEMON=true -e RUN_INTERVAL=600 ghcr.io/cchrkk/vinted-notifier:latestUse Docker Compose to build and run the service with the mounted config and data directory:
docker compose up -dYour example docker-compose.yml will mount config.yaml and data into the container and keep the service always restarting unless stopped.
- The project uses the Vinted catalog API to fetch search results.
- Only new item IDs are notified once and recorded in the SQLite database.
- You can track multiple search URLs and use separate Vinted instances per query.
- The entire project is 100% vibecoded, check before running if you're worried.
This project is licensed under the MIT License.
