---
title: onWatch
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, artificial-intelligence, monitoring, watchlist, finance, typescript]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?search=onwatch]
---

# onWatch 👀
> Watchlist intelligente propulsée par l'IA pour suivre prix, cryptos, produits et flux RSS avec alertes contextuelles.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://onwatch.app |
| **GitHub** | https://github.com/onwatch/onwatch |
| **License** | MIT |
| **Langage** | TypeScript |
| **Étoiles** | 45 |
| **Dernière MAJ** | 2026-04 |
| **Catégorie** | [[cat-artificial-intelligence]] |

## Description

onWatch est une plateforme de veille personnalisable qui combine des sources de données hétérogènes (API crypto, sites e-commerce, flux RSS, réseaux sociaux, indices boursiers) dans une interface unifiée de watchlist. Contrairement aux agrégateurs classiques, onWatch intègre un agent IA qui apprend les préférences de l'utilisateur et génère des alertes contextuelles : non seulement "le prix a baissé", mais "ce produit que vous suivez a baissé de 15% ET un avis négatif récent mentionne un défaut — voulez-vous reconsidérer ?".

Le cœur de l'application est un scheduler TypeScript (Node.js + BullMQ) qui interroge périodiquement les sources configurées, normalise les données dans une base PostgreSQL avec séries temporelles, puis délègue l'analyse à un LLM (local ou distant) pour produire des résumés et des prédictions. Une API REST/GraphQL expose les données à des clients web, mobile ou des webhooks sortants (Discord, Telegram, ntfy).

L'interface propose des tableaux de bord en drag-and-drop, des graphes de tendance, des règles d'alerte avancées (combinaisons booléennes) et un système de tags/catégories. Pensé pour les self-hosters qui veulent centraliser crypto, deals tech, breaking news et alertes domotiques dans un seul outil.

## Installation

### Docker Compose

```yaml
services:
  onwatch:
    image: ghcr.io/onwatch/onwatch:latest
    container_name: onwatch
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgresql://onwatch:onwatch@db:5432/onwatch
      - REDIS_URL=redis://redis:6379/0
      - JWT_SECRET=${JWT_SECRET}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
    volumes:
      - onwatch_data:/app/data
    depends_on:
      - db
      - redis

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: onwatch
      POSTGRES_PASSWORD: onwatch
      POSTGRES_DB: onwatch
    volumes:
      - onwatch_db:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: unless-stopped

volumes:
  onwatch_data:
  onwatch_db:
```

### Manuelle

```bash
git clone https://github.com/onwatch/onwatch.git
cd onwatch
pnpm install
pnpm build
pnpm start
```

## Configuration

La configuration initiale se fait via l'UI : créer un compte admin, ajouter des sources (URL RSS, ticker crypto, URL produit, hashtag), définir les règles d'alerte et brancher les webhooks. Variables d'environnement importantes : `JWT_SECRET` (sessions), `OPENAI_API_KEY` ou `OLLAMA_BASE_URL` (LLM), `SCRAPER_USER_AGENT` (anti-blocage).

## Alternatives

- **Open source** : [[app-kibana]] (analytics générique), [[app-grafana]] + plugins, [[app-maybe]] (finance perso), [[app-wallabag]] (read-later)
- **Propriétaire** : ChangeTower, Visualping, Distill.io, Hexowatch, CoinMarketCap alerts

## Sécurité

Limiter les sources scrapées pour éviter les blocages IP (rate limiter intégré). Mettre en place un reverse-proxy (Traefik, Caddy) avec HTTPS obligatoire. Activer l'authentification à deux facteurs. Les clés API LLM ne doivent être accordées qu'au strict nécessaire. Sauvegarder `onwatch_db` (historique de prix) et `onwatch_data` (configurations utilisateurs).

## Ressources

- Dépôt GitHub : https://github.com/onwatch/onwatch
- Démo en ligne : https://demo.onwatch.app
- Documentation : https://docs.onwatch.app
- Licence : MIT

## Pages Liées

- [[cat-artificial-intelligence]]
- [[recettes-docker-compose]]
- [[app-grafana]]
- [[app-maybe]]
