Espace Administration

A
Admin
Attractions
RCDB + Coaster.Cloud
Parcs
RCDB + Coaster.Cloud
Matchs confirmés
Coaster.Cloud ↔ RCDB
Matchs en attente
À valider dans Matching
Attractions RCDB
IDs 1 – 999 999
Attractions CC-only
IDs ≥ 1 000 000
Destinations + parcs
Catalogue TPW
Entités TPW
Attractions / shows / restaurants
Parcs matchés
— pending
En opération
sur — entités tracked
Utilisateurs
Comptes enregistrés
Sessions actives
Connexions en cours
Cadences observées
— depuis 24 h
Specs à valider
— approuvées · — rejetées
Santé système
Chargement…
Processus PM2
Chargement…
Jobs récents
Centre de jobs en cours d'implémentation (piste B). Les jobs lancés depuis l'admin (matching, test data, services) apparaîtront ici en temps réel avec leur statut et leur historique.
Activité récente (Better-Auth)
ActionUtilisateurIPDate
CPU Load (1m)
Mémoire utilisée
Disque utilisé
Uptime serveur
API :
Utilisation ressources
CPU load
0
Mémoire
0%
Disque
0%
Processus PM2
#NomStatutCPURAMRedémarragesPIDUptime
Zone dangereuse — Serveur
Redémarrer le serveur arrêtera toutes les connexions actives pendant ~30 secondes.
🕐 Scheduler automatique
Relance le pipeline complet à intervalle aléatoire (48h–120h par défaut) — sans doublon avec le bouton manuel
Chargement…
Prochain run
Dernier run
Fenêtre aléatoire
minimum — maximum
Configuration avancée
📜 Historique des runs
Chargement…
⚡ Rafraîchissement complet
Override manuel — le scheduler automatique gère les runs récurrents
En attente
Scraping individuel

Coasters complets

Scrape tous les coasters + photos depuis RCDB

Parcs à thème

Scrape les parcs depuis RCDB

Coasters aléatoires

Scrape un sous-ensemble aléatoire

Mapping photos

Associe les photos aux coasters

coaster.cloud

Scrape parcs + attractions depuis coaster.cloud

Console — Cliquez sur une carte pour afficher ses logs
Import JSON → SQL
Importe les fichiers JSON scraptés dans PostgreSQL (truncate + reload)

Parcs à thème

theme-parks.json → DB

Attractions

coasters.json → DB

Attractions brutes

coasters-raw.json → DB

Coaster.Cloud

Matching + enrichissement CC → DB

Aucun import actif
Historique scraping
#ScriptStatutDébutFinLogs
TypeScopeStatutDébutDuréeDéclenché par
NomEmailRôleStatutCrééActions
Observations cadence
— users / — attractions
Cadence (24h)
Sessions enregistrées
Propositions de specs
— en attente
Specs approuvées
— rejetées
Cadence d'embarquement
AttractionParcUtilisateur Dispatches Durée Dispatches/h Headway Date
Propositions de specs
AttractionParcUtilisateur ChampValeurSource StatutDate Actions
Articles
Visibles
Cachés
Parcs
Attractions
Articles
ID Image Titre Type Parc / Attraction Pays Statut Mise à jour Actions
Alertes
Devices iOS
Déclenchées 24h
APNs
Répartition par type
Alertes
UtilisateurAttractionTypePayloadStatutCrééeLast fireActions
Chargement…
ℹ️
Newsletter ≠ comptes app.
S'inscrire à la newsletter sur ridexplorers.com n'ouvre pas de compte sur l'app ni sur le backend. Inversement, les utilisateurs de l'app ne reçoivent pas la newsletter sauf opt-in explicite. Cette page liste les abonnés gérés par Listmonk (mailing externe) ; les comptes de l'app sont sous Communauté → Utilisateurs.
Abonnés
Total Listmonk
Actifs
status = enabled
Nouveaux ce mois
Inscriptions du mois
Bloqués / désactivés
/
disabled / blocklisted
Segment Listmonk
Avec compte app
Abonnés newsletter qui ont aussi un compte sur l'app. Bascule auto via Better-Auth.
Segment Listmonk
Sans compte app
Cible idéale pour un push « rejoignez-nous sur l'app » ou un teaser TestFlight.
Par liste
Par source d'import
Inscriptions (6 derniers mois)
Campagnes récentes Toutes →
Modèles d'email Prêts à coller dans une campagne Listmonk
Abonnés
Email Nom Statut Compte app Source Listes Inscrit le
Parcs avec coords
Parcs syncés
Parcs avec POIs
POIs indexés
Toilettes
Parcs en erreur
Synchronisation
Le sync interroge l'API Overpass autour du centroïde de chaque parc (rayon OVERPASS_RADIUS_M). Une seule requête par parc couvre les 27 types (services, resto, transport, famille, shops). Les parcs syncés il y a moins de 30 jours sont sautés — utiliser « Force all » pour outrepasser. Logs live sur la page Scraping.
Parcs
Répartition
Chargement…
Logos des opérateurs
PNG / JPEG / WebP / SVG / GIF / AVIF (≤ 5 MB). Le serveur valide via sharp puis normalise en PNG (max 1024×1024). Cache-bust automatique à chaque mise à jour.
LogoOpérateurActions
Chargement…
Sélection : 0
NomVillePaysOpérateur
Uploader un fichier
Tous formats acceptes (≤ 50 MB). Le slug est l'identifiant dans l'URL publique : si vide, un slug aleatoire est genere. Caracteres autorises : lettres, chiffres, -, _, . (max 128, pas de ..).
Aucun fichier selectionne
Fichiers uploades
FichierSlugTypeTailleUploadéActions
Chargement…
Status global
Whitelist (nginx + CrowdSec)
IPs jamais rate-limitées et jamais bannies
L'ajout/retrait modifie atomiquement /etc/nginx/conf.d/ridexplorers-rate-limit.conf et /etc/crowdsec/parsers/s02-enrich/ridexplorers-whitelist.yaml puis reload les deux services.
IPLibelléAction
Chargement…
Bannir manuellement une IP
Décision LAPI locale
Crée une décision dans CrowdSec qui est immédiatement propagée au bouncer firewall (DROP au niveau nftables).
Décisions actives (CrowdSec)
0 / 0
Sources : CAPI = blocklist communautaire pull toutes les 10 s ; crowdsec = décision LAPI locale déclenchée par un scenario (http-crawl, http-bad-user-agent, etc.).
IPScenarioSourceDuréeExpireAction
Chargement…
Alertes récentes (overflows locaux)
0 / 0
Chaque ligne = un seuil de scenario CrowdSec dépassé sur ce serveur (avant intégration CAPI). Utile pour comprendre quelles IPs déclenchent vos protections locales.
IP sourceScenarioPaysASEventsQuand
Chargement…