No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Outil personnel pour chercher un film ou une série et voir dans quels pays il est disponible, sur quelles plateformes, avec quel type d'offre (abonnement, gratuit, location, achat) et avec quelles langues audio et sous-titres.
Application à un seul utilisateur, protégée par mot de passe, déployée sur Vercel.
Les drapeaux des pays viennent de la police TwemojiCountryFlags (projet country-flag-emoji-polyfill, graphismes Twemoji sous licence CC-BY 4.0), intégrée à l'application parce que Windows n'affiche pas les emoji de drapeaux.
mongodb).vercel.json.mongodb-memory-server pour les adaptateurs Mongo.Clean architecture proportionnée : le domaine ne dépend de rien, et JustWatch peut être remplacé derrière le port CatalogProvider.
src/
domain/ entités et objets-valeurs (Title, Offer, Availability, Country…), ports
application/ cas d'usage (recherche, disponibilités, liste à voir, abonnements,
historique, préférences, vérification quotidienne) et fonctions pures
de regroupement, de tri et de filtrage
infrastructure/ JustWatch (GraphQL), TMDB, adaptateurs Mongo, authentification,
assemblage des dépendances (container.ts)
config/ listes modifiables : priorité des pays, langues proposées,
regroupement des plateformes
app/ pages, composants et routes API Next.js, middleware d'accès
APP_PASSWORD), comparé en temps constant.SESSION_SECRET), valable 30 jours./api/cron/*) n'exige pas de session : elle demande à la place l'en-tête Authorization: Bearer <CRON_SECRET>.Prérequis : Node.js 20 ou plus, et une base MongoDB (Atlas ou locale).
npm install
cp .env.example .env.local # puis remplir les valeurs
npm run dev # http://localhost:3000
| Variable | Rôle |
|---|---|
APP_PASSWORD | Mot de passe de connexion |
SESSION_SECRET | Secret de signature du cookie (au moins 32 caractères aléatoires) |
CRON_SECRET | Secret attendu par la route du cron (Vercel l'envoie automatiquement) |
MONGODB_URI | Chaîne de connexion MongoDB |
MONGODB_DB | Nom de la base (facultatif, geowatch par défaut) |
TMDB_API_KEY | Clé API TMDB v3 ou jeton v4 (facultatif : sans clé, la langue originale reste inconnue) |
npm run dev # serveur de développement
npm run build # build de production
npm start # serveur de production
npm test # tests (Vitest)
Le projet est relié à Vercel par l'intégration Git :
main déploie en production.La branche main est protégée : toute modification passe par une pull request. Les variables d'environnement sont définies dans Vercel, en Production et en Preview. Le cron quotidien ne tourne que sur la production. On peut aussi le lancer à la main depuis le tableau de bord Vercel (Settings → Cron Jobs).
Le code de GeoWatch est distribué sous licence MIT.
Cette licence ne couvre que le code. Les données et les images affichées restent soumises aux conditions de leurs sources :
L'application affiche ces crédits dans son pied de page et sous la photo de chaque personne.