Skip to content

cchrkk/vinted-notifier

Repository files navigation

Vinted Notifier

logo

Receive Apprise notifications when new Vinted items matching your criteria are added.

(100% VIBE CODED PROJECT)

Features

  • 🐍 Python-based executable with optional daemon mode
  • ⚙️ Configurable config.yaml for 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

Quickstart

  1. Install dependencies:
python -m pip install -r requirements.txt
  1. Customize config.yaml with your Apprise targets and query URLs.

  2. Run once:

python -m vinted_notifier --config config.yaml --once
  1. Run as a daemon:
python -m vinted_notifier --config config.yaml --daemon
  1. Run with Docker Compose:
docker compose up -d

Web UI

The 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 --web

Run 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 --web

Or use the docker-compose.yml included which maps port 5000 and mounts config.yaml writable. Then open http://localhost:5000/ to edit settings.

Configuration

The sample config.yaml includes:

  • apprise_urls: list of Apprise URLs for notification targets
  • default_instance: default Vinted locale to use when instance is not specified
  • database: path to SQLite database file for notified item tracking
  • run_interval: polling interval in seconds for daemon mode
  • notification.title: title template using placeholders like {query_name}, {title}, {brand}, {price}, and {url}
  • notification.body: body template for detailed notifications
  • queries: list of tracked search URLs with optional name and instance

Docker

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-notifier

Or 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:latest

To 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:latest

Docker Compose

Use Docker Compose to build and run the service with the mounted config and data directory:

docker compose up -d

Your example docker-compose.yml will mount config.yaml and data into the container and keep the service always restarting unless stopped.

Notes

  • 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.

License

This project is licensed under the MIT License.

About

Receive Apprise notifications when new Vinted items matching your criteria gets added 📦

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors