Vue lecture

Division 2 : Guide Chasse à l’homme Recrue Mutinerie S7A3 à 9 joueurs

La pluie martelait le toit en tôle ondulée tandis que je vérifiais mes communications une dernière fois. L’Éclaireur 9 était passé hors ligne. Trois objectifs se dressaient entre nous et le cauchemar qui se préparait, et le temps pressait. La traque de la semaine 9 de la Saison 3 Année 7 de The Division 2, […]

Le post Division 2 : Guide Chasse à l’homme Recrue Mutinerie S7A3 à 9 joueurs est apparu en premier sur Moyens I/O.

  •  

Deutsche Bahn choisit la société européenne de cybersécurité TYREX pour renforcer la protection des supports USB

L’USB, c’est pratique… jusqu’au jour où un rançongiciel monte à bord. Verrouiller ce petit “cheval de Troie” du quotidien devient une priorité quand la fiabilité opérationnelle dépend de milliers d’interventions terrain. Deutsche Bahn l’a bien compris et fait confiance au français Tyrex pour se protéger de ce risque… Deutsche Bahn, première compagnie ferroviaire européenne, a […]

L’article Deutsche Bahn choisit la société européenne de cybersécurité TYREX pour renforcer la protection des supports USB est apparu en premier sur InformatiqueNews.fr.

  •  

Dockhand : gestionnaire Docker léger et puissant

Passé par Portainer, Komodo, Dockge et plus récemment Arcane, j’ai toujours pas trouvé LE gestionnaire de Docker qui me convienne : léger, permettant de gérer au moins 3 machines, intuitif tout en restant complet, qui gère les MàJ des Dockers, acceptant directement des compose, etc.

Depuis quelques jours maintenant j’utilise Dockhand (GitHub) et ça coche toutes les cases ; même plus puisqu’il a en option notamment des notifications différenciées et les outils Trivy et Grype pour scanner les dockers à la recherche de vulnérabilités. De mémoire j’avais présenté le 1er y’a des années sur le blog « perdu » effacé par un bon gros blaireau…

Pour le coup je le trouve très bien pensé, avec plus un œil de « geek » que de professionnel si je puis dire. Avec en prime une roadmap et un super Wiki qui va à l’essentiel.

dockhand1
dockhand2

J’ajoute l’environnement local via socket directement.

dockhand3
dockhand4
dockhand5
dockhand6
dockhand7
dockhand8
dockhand9
dockhand10
dockhand11
dockhand12
dockhand13

On peut ajouter des registres avec ses comptes comme DockerHub et GitHub

dockhand14

C’est tout bête mais j’aime bien la possibilité de choisir ses thèmes. Ça me rappelle un peu https://catppuccin.com/ports/

dockhand15
dockhand16

Puisque j’ai lié mon compte GitHub je peux importer mes repos, y compris les privés.

dockhand17

Comme souvent, on peut créer des templates d’installations Docker. J’ai jamais utilisé. Le seul cas, dans mon contexte, où ça pourrait éventuellement être potentiellement utile 2 ou 3 fois (na, pas du tout) ce serait pour créer une template pour les arrs/decypharr etc avec les volumes pré-définis. On est d’accord, j’en n’ai aucune utilité. Mais y’a l’option.

dockhand18

Pour les notifications, je me suis mis Discord. Et on verra après que je ne les utilise que dans le cas des MàJ pour l’instant. Je ne fais pas de MàJ auto pour tous mes Dockers, je suis du coup informé quand y’a une MàJ à faire ou quand celles en automatique ont été réalisées (ou ont échoué).

dockhand20
dockhand19

C’est uniquement en LAN chez moi, j’ai pas testé l’authentification.Idem pour l’ajout de serveurs (Syno et ZimaOS pour l’instant), j’ai utilisé Hawser vu que je suis sur mon réseau.

dockhand21

Et j’obtiens la vue d’ensemble de mes machines

dockhand22

Comme je le disais au début de l’article, j’ai été agréablement surpris de voir l’intégration de Trivy et Grype, sur option, qui permettent de scanner chaque image installée.

Ici l’exemple de mon serveur AdGuardHome que je voulais changer de machine : imthai/adguardhome-unbound-redis

dockhand23
dockhand24

Les vulnérabilités trouvées sont indiquées pour chaque agent avec le lien vers le CVE. Si l’option de scan est globalement activée alors les updates seront aussi scannées. Et on peut à tout moment lancer un scan depuis la liste des images via l’icône de bouclier.

Si tous les Dockers d’une machine seront reportés dans Dockhand, on ne pourra évidemment y éditer que ceux lancés via l’outil.
Pour se faire on peut utiliser la méthode « guidée » où on pull une image et on la gère de manière guidée.

dockhand33
dockhand34
dockhand35
dockhand36

Ou bien on peut importer des stacks/compose depuis un serveur (bouton Adopt) mais j’ai pas testé.

dockhand37

Ou enfin, le plus simple dans mon cas, on peut ajouter son compose directement. On peut même importer son .env
Désolé du caviardage mais j’ai réalisé après coup que je montrais un truc personnel.

dockhand38

Il est également possible d’importer des dépôts depuis les registres configurés

dockhand28

Dockhand permet bien sûr de créer et gérer tous les types de réseaux

dockhand30
dockhand39

Après ces tests, même si c’est toujours en gros développement, je trouve ça plus abouti qu’Arcane, plus simple que Komodo et ça répond plus à mes besoins que Portainer.
C’est une belle découverte que je vais conserver.

Loading

  •  

Toyota et Honda expliquent pourquoi la révolution promise des batteries solides va prendre plus de temps que prévu

Si les batteries solides sont très attendues, il faudra être patient avant de les voir arriver sur nos voitures électriques. Toyota et Honda, qui travaillent dessus depuis des années, nous expliquent les raisons.
 [Lire la suite]

Rejoignez-nous de 17 à 19h, un mercredi sur deux, pour l’émission UNLOCK produite par Frandroid et Numerama ! Actus tech, interviews, astuces et analyses… On se retrouve en direct sur Twitch ou en rediffusion sur YouTube !

  •  

LocalPass – Le gestionnaire de mots de passe 100% offline pour le terminal

Hier soir, je suis tombé sur ce gestionnaire de mot de passe clairement conçu pour les puristes et je me suis dit que ça pourrait vous intéresser. Parce que si ça vous casse la tête de devoir confier vos identifiants et autres mots de passes à des services dans le cloud qui ont connu quelques déboires de sécurité ces derniers temps (suivez mon regard... Oh Lastpass, comment ça va ?), j'ai exactement ce qu'il vous faut !

Ça s'appelle LocalPass , c'est open source et surtout c'est conçu pour fonctionner 100% en offline. J'ai testé ça ce matin sur mon laptop et c'est assez simple à utiliser.

Mais avant pour ceux qui se demandent quel est l'intérêt d'un gestionnaire de mots de passe local par rapport à un truc comme Bitwarden ou Dashlane , la réponse est simple : la souveraineté. Bah ouais, c'est logique. Avec LocalPass, vos données ne quittent jamais votre machine. Pas de cloud, pas de synchro mystérieuse, pas de télémétrie. C'est vous, votre fichier chiffré, et c'est tout.

Perso, j'ai longtemps utilisé des solutions cloud pour le confort, mais depuis quelques mois, je cherche à revenir sur des trucs plus locaux pour tout ce qui est critique, du coup LocalPass tombe à pic.

Côté technique, c'est du solide (sur le papier en tout cas) puisque l'outil est développé en Python et utilise Argon2id pour la dérivation de clé (ce qui rend les attaques par force brute bien pénibles pour les méchants) ainsi que AES-GCM pour le chiffrement.

L'utilisation ensuite c'est pas compliqué si vous avez déjà touché à une ligne de commande. D'ailleurs, pour l'installer, un petit coup de pip suffit (sauf si vous n'avez pas Python, là faut l'installer avant hein) :

pip install localpass

Ensuite, vous initialisez votre coffre-fort :

localpass init moncoffre.lp

Et hop, vous pouvez commencer à ajouter vos comptes (je vous laisse aller lire la doc sur le github). C'est un peu comme utiliser KeePass (que j'adore hein, pas de méprise), sauf que l'interface graphique de KeePass... comment dire... elle pique parfois un peu les yeux. Là, avec LocalPass, vous restez dans votre terminal chéri. Vous pouvez lister vos entrées, récupérer un mot de passe ou générer des identifiants sécurisés directement depuis votre shell.

Le truc cool, c'est que même si l'outil est "offline first", LocalPass intègre une fonction (totalement optionnelle et manuelle rassurez-vous) pour vérifier si vos mots de passe ont fuité via l'API de Have I Been Pwned. Mais rassurez-vous, ça utilise la méthode k-anonymity ce qui veut dire que votre mot de passe ne transite jamais en clair. Seul un bout de son hash est envoyé. C'est dnc le compromis idéal entre paranoïa et sécurité active.

Après moi le truc qui m'angoisse un peu avec ces gestionnaires de mots de passe locaux, ce sont les backups. Parce que si vous perdez votre fichier ".lp" ou votre mot de passe maître, c'est game over ca y'a pas de "Mot de passe oublié ?" ici. Donc comme toujours, FAITES DES SAUVEGARDES (sur différentes clé USB chiffrées par exemple que vous stockerez à différents endroits y compris hors de chez vous).

Si vous ne le faites pas, faudra pas venir pleurer après ^^.

Source

  •  

Ce signal « anodin » pourrait être un premier indice de démence, selon les chercheurs

L'apathie, souvent perçue comme un simple désintérêt, pourrait cacher un trouble plus grave. Des neurologues américains tirent la sonnette d'alarme sur ce symptôme sous-estimé qui pourrait annoncer un déclin cognitif accéléré. Un changement de comportement apparemment anodin qui mérite pourtant...

  •  

Tier List Chasseurs Solo : Meilleure Classe et Arme

Mis à jour le 26 janvier 2026 : Mise à jour pour le nerf discret de l’ensemble d’armure en fer. Mon pote, Jake, était prêt à quitter Solo Hunters la semaine dernière. Il avait passé des semaines à farmer, pour se faire tuer en un coup par un boss qu’il pensait être prêt à affronter. […]

Le post Tier List Chasseurs Solo : Meilleure Classe et Arme est apparu en premier sur Moyens I/O.

  •  

rClone ncdu : quand on ne peut pas installer ncdu sur un OS

Parfois on n’a pas les droits pour installer des utilitaires sur un OS (notamment sur TrueNAS). J’aime particulièrement ncdu qui me permet de rapidement visualiser des tailles de dossiers/montages/backups…

Et on peut donc biaiser en l’utilisant depuis rClone, sur un remote « local » qu’il convient d’ajouter dans rclone.conf

[local]
type = local
rclonencdu

On peut cibler des dossiers comme on le ferait directement depuis l’OS

root@HomeBox[/mnt]# ls
Docker  Fichiers  Usenet
root@HomeBox[/mnt]# rclone ncdu local:Fichiers
rclone ncdu v1.70.2 - use the arrow keys to navigate, press ? for help
-- /mnt/Fichiers ----------------------------------------------------------------------------------------------------------------------------------------------
    2.321Ti [##########] /qbittorrentvpn2
  381.995Gi [##        ] /qbittorrentvpn1
    2.180Gi [          ] /metube
      360Ki [          ] /seedarr
       52Ki [          ] /grabb2rss
e         0 [          ] /books
e         0 [          ] /chaptarrdl
e         0 [          ] /decypharr
e         0 [          ] /rclonecache
e         0 [          ] /riven

Loading

  •  

Pourquoi Nvidia multiplie ses investissements en Europe dans l’IA

L’accélération est spectaculaire. Nvidia a intensifié ses investissements dans les jeunes pousses européennes de l’IA, participant à 14 tours de financement en 2025 ( sur un total de 86), selon la plateforme Dealroom. Un doublement par rapport aux sept opérations de 2024, et une progression fulgurante quand on sait que le fabricant de puces n’avait réalisé aucun investissement sur le continent en 2020 et 2021.

Cette offensive européenne de Jensen Huang s’inscrit dans une stratégie mondiale d’envergure. pour tisser des liens étroits avec les sociétés les plus prometteuses du secteur, en leur apportant non seulement des capitaux, mais aussi une expertise technique et un accès privilégié à sa chaîne d’approvisionnement.

Des montants records déployés

Parmi les opérations les plus marquantes figure le troisième investissement de Nvidia dans le français Mistral AI, qui a levé 1,7 milliard € en septembre 2025, atteignant une valorisation de 11,7 milliards €.

Autre investissement majeur, les 500 millions de livres sterling dans Nscale, annoncé en septembre par Jensen Huang lui-même. Cette startup britannique, qui développe des centres de données et fournit des services de cloud computing pour l’IA, a rapidement bouclé deux tours de financement successifs fin septembre et début octobre, avec Nvidia à chaque fois au capital.

Le géant américain a également soutenu le laboratoire allemand Black Forest Labs en décembre, participant à une levée de 300 millions $ qui a propulsé la valorisation de cette société spécialisée dans les modèles d’IA pour le contenu visuel à 3,25 milliards $. Nvidia était aussi de la partie lors de la levée de fonds de Lovable, une startup travaillant sur le « vibe coding », valorisée à 6,6 milliards $

Autre pari relevé : celui sur Quantinuum, une entreprise d’informatique quantique qui a levé des fonds en septembre avec le soutien de Nvidia, atteignant une valorisation de 10 milliards $. Ces capitaux doivent financer le développement du système quantique de nouvelle génération Helios.

L’Europe, terre d’opportunités pour l’IA physique

Cette tendance s’est poursuivie en 2026. La startup britannique Synthesia a ainsi annoncé la participation de Nvidia à son dernier tour de table.

Pour Jensen Huang, qui s’exprimait récemment au Forum économique mondial de Davos, l’Europe dispose d’atouts considérables dans la robotique et l’intelligence artificielle physique. L’Europe possède une base industrielle et manufacturière particulièrement solide, qu’elle peut désormais fusionner avec l’IA pour se positionner sur ce marché émergent. Cette combinaison permettrait même à l’Europe de rattraper son retard dans le domaine logiciel, dominé par les États-Unis.

Reste un défi majeur : l’énergie. Jensen Huang a martelé ce point à Davos : pour que l’écosystème de l’IA puisse se développer pleinement en Europe, le continent doit résoudre la question de son approvisionnement énergétique. Avec des coûts parmi les plus élevés au monde, l’Europe peine à attirer les investissements massifs nécessaires au déploiement des infrastructures d’IA. Un constat partagé par Satya Nadella, le patron de Microsoft, qui juge que les coûts énergétiques seront déterminants dans la course mondiale à l’IA.

Un écosystème en pleine ébullition

Au-delà de l’Europe, Nvidia s’impose comme le faiseur de rois de l’IA. Les hyperscalers se précipitent pour construire leurs capacités et le groupe dispose de liquidités considérables à déployer. Jensen Huang parle du démarrage du plus grand déploiement d’infrastructures de l’histoire de l’humanité.

Les chiffres parlent d’eux-mêmes. L’année 2025 a enregistré l’un des plus hauts niveaux d’investissement en capital-risque jamais atteints, avec plus de 100 milliards $ déployés dans le monde, essentiellement vers des startups natives de l’IA. Ces entreprises opèrent dans la santé, la robotique, l’industrie manufacturière et les services financiers, des secteurs où les modèles d’IA sont désormais suffisamment matures pour permettre le développement d’applications concrètes.

——

Les principaux investissements de Nvidia en Europe en 2025

Startup Pays Secteur Montant levé Valorisation Date
Mistral AI France Modèles de langage IA open source 1,7 Md€ 11,7 Md€ Sept. 2025
Nscale Royaume-Uni Centres de données / Cloud IA 500 M£ N.C. Sept. 2025
Black Forest Labs Allemagne Modèles IA pour contenu visuel 300 M$ 3,25 Md$ Déc. 2025
Lovable N.C. « Vibe coding » N.C. 6,6 Md$ 2025
Quantinuum N.C. Informatique quantique N.C. 10 Md$ Sept. 2025
Note : Sur les 86 levées de fonds mondiales auxquelles Nvidia a participé en 2025, 14 concernaient des startups européennes, contre 7 en 2024.

 

The post Pourquoi Nvidia multiplie ses investissements en Europe dans l’IA appeared first on Silicon.fr.

  •  

Revue de presse de l’April pour la semaine 4 de l’année 2026

Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

[clubic.com] 'Si nous voulons des logiciels libres, nous devons les payer' - Interview CryptPad

✍ Guillaume Belfiore, le dimanche 25 janvier 2026.

Des suites bureautiques alternatives, il en existe plusieurs. Mais au-delà du modèle open source, la promesse d’un environnement collaboratif entièrement chiffré reste très rare. C’est sur ce point que l’entreprise française CryptPad entend se différencier.

[clubic.com] Booster l'open source: Bruxelles reçoit des centaines de réponses pour faire avancer le projet

✍ Guillaume Belfiore, le lundi 19 janvier 2026.

Lancée début janvier, la consultation publique sur l’open source européen n’est pas passée inaperçue. Celle-ci a collecté déjà près de 600 réponses en seulement quelques jours, émanant d’organisations, de sociétés ou de citoyens.

[Le Monde Informatique] La Dinum davantage impliquée dans les achats IT de l'Etat

✍ Reynald Fléchaux, le lundi 19 janvier 2026.

Une circulaire en préparation doit renforcer le poids de la DSI de l’Etat dans les achats numériques du secteur public. Et les transformer en levier de souveraineté.

[l'Humanité.fr] Comment s'émanciper des GAFAM? (1/2) (€)

✍ Magali Garnero, le mercredi 14 janvier 2026.

Leurs milliards de profits financent un lobbying contre toute réglementation. S’en libérer, c’est reprendre le contrôle sur nos outils et nos données.

Voir aussi:

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Decypharr & AllDebrid : No debrid clients available or no slots found + script de nettoyage de magnets par Bouby

Les versions :latest et :fenrir-xx embarquent une fonctionnalité qui interroge les débrideurs pour connaître le nombre de slots d’upload disponibles sur le compte utilisé.
Problème : AllDebrid ne gère pas ça via son API.
Second effet Kiss Cool : cette option ne peut pour l’instant pas être désactivée, donc AD en erreur d’upload quand un magnet/.torrent n’est pas en cache.

L’astuce consiste à revenir sur une version plus ancienne de Decypharr, la :beta fonctionnant.

services:
  decypharr:
    image: ghcr.io/sirrobot01/decypharr:beta
    #image: cy01/blackhole:fenrir
    #image: cy01/blackhole:fenrir-09
    container_name: decypharr
    restart: always
    privileged: true
    cap_add:
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    ports:
      - 8282:8282
    volumes:
      - /mnt/:/mnt/:rshared
      - /mnt/Fichiers/decypharr/qbit:/mnt/Fichiers/decypharr/qbit
      - /mnt/Docker/decypharr/:/app
    environment:
      - TZ=Europe/Paris
    devices:
      - /dev/fuse:/dev/fuse:rwm

Et j’en profite pour vous présenter l’excellent script de Bouby, lecteur du blog (\o/), qui permet de nettoyer les magnets liés à un compte AD. En effet, chez AD un compte est limité à 5000 liens. Il faut donc parfois faire un peu de ménage, surtout quand on fait des bibliothèques Plex/Jellyfin où il faut clairement plusieurs comptes AD.
Vous les voyez sur l’onglet Magnets de votre compte ou via l’API

adscript
status	"success"
data	{ magnets: (704)[…] }


Un lien est ajouté quand on envoie un magnet ou .torrent sur son compte AD (captain Obvious!) mais aussi à CHAQUE recherche de contenu dessus via les outils Decypharr, DMM, Vortex, les addons sources de Stremio etc. Même si un contenu est en cache, le fait de le chercher en ajoutant un magnet/.torrent crée un lien sur votre compte.
Je n’ai pas cherché et ne sais absolument pas comment AD gère ça côté utilisateurs, si des liens vieux de plus de X mois/années/heures sont retirés ou non.

Quoi qu’il en soit voici le script Python de Bouby (encore merci !). J’ai augmenté les seuils en fonction de la limite de 5000 liens/compte.

#!/usr/bin/env python3
import requests
from datetime import datetime, timedelta

# ----------------------------------------
# CONFIGURATION DU SCRIPT (variables en dur)
# ----------------------------------------

# Clé API AllDebrid — obligatoire pour accéder aux magnets
API_KEY = "xxx"

# Dry-run : True = le script affiche ce qu’il ferait sans supprimer
# False = suppression réelle
DRY_RUN = False

# -----------------------------
# Seuils et limites pour la purge
# -----------------------------
THRESHOLD_HIGH = 4700  # déclenche la purge normale si nombre total de magnets > 900
THRESHOLD_LOW = 2700   # limite minimale après purge pour ne pas trop supprimer =700
MAX_DELETE = 2000      # nombre maximum de magnets à supprimer en mode normal
MIN_AGE_DAYS = 7      # ne supprimer que les magnets plus vieux que X jours (sauf urgence)

# -----------------------------
# Mode urgence
# -----------------------------
EMERGENCY_THRESHOLD = 4900  # si le nombre total de magnets > 950, on active la purge d'urgence
EMERGENCY_DELETE = 2000     # nombre de magnets à supprimer immédiatement en urgence, ignore l'âge minimum

# -----------------------------
# API endpoint AllDebrid
# -----------------------------
# v4.1 est le nouvel endpoint pour récupérer les magnets
BASE_URL = "https://api.alldebrid.com/v4.1/magnet/status"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# -----------------------------
# Catégories de statut
# -----------------------------
# Ces statuts sont utilisés pour trier les magnets par priorité
FAILED = {"Error", "error"}        # magnets ayant rencontré une erreur
IN_PROGRESS = {"Processing"}       # magnets en cours de téléchargement
DONE = {"Finished", "Ready"}       # magnets terminés

# ----------------------------------------
# Récupérer tous les magnets depuis l’API
# ----------------------------------------
def get_magnets():
    """
    Récupère la liste des magnets depuis l’API AllDebrid.
    Retourne une liste vide si erreur ou endpoint obsolète.
    """
    try:
        r = requests.get(BASE_URL, headers=HEADERS, timeout=30)
        r.raise_for_status()
        data = r.json()

        # Vérifie que la réponse contient bien les magnets
        if "data" not in data or "magnets" not in data["data"]:
            print("❌ Réponse API inattendue :")
            print(data)
            return []

        return data["data"]["magnets"]

    except requests.RequestException as e:
        print("❌ Erreur réseau ou API :", e)
        return []

# ----------------------------------------
# Supprimer un magnet par son ID
# ----------------------------------------
def delete_magnet(magnet_id):
    """
    Supprime un magnet via l’API.
    Si DRY_RUN = True, n’effectue pas la suppression mais affiche l’action.
    """
    delete_url = "https://api.alldebrid.com/v4/magnet/delete"
    if DRY_RUN:
        print(f"[DRY-RUN] DELETE {magnet_id}")
        return

    try:
        # POST pour supprimer le magnet
        r = requests.post(delete_url, headers=HEADERS, data={"id": magnet_id})
        r.raise_for_status()
        print(f"✅ Supprimé magnet {magnet_id}")
    except Exception as e:
        print(f"❌ Erreur suppression {magnet_id} :", e)

# ----------------------------------------
# Trier et filtrer les magnets
# ----------------------------------------
def bucketize(magnets, ignore_age=False):
    """
    Trie les magnets par statut et filtre par âge.
    ignore_age=True ignore la limite MIN_AGE_DAYS (mode urgence)
    """
    # Date limite selon l'âge minimum
    cutoff = datetime.utcnow() - timedelta(days=MIN_AGE_DAYS)

    # Séparer les magnets par statut pour appliquer la priorité
    failed, progress, done = [], [], []

    for m in magnets:
        status = m.get("status", "")
        created = m.get("uploadDate") or m.get("completionDate") or 0
        created_dt = datetime.utcfromtimestamp(created) if created else datetime.utcnow()

        # Filtrer par âge sauf si mode urgence
        if not ignore_age and created_dt > cutoff:
            continue

        # Trier par statut
        if status in FAILED:
            failed.append(m)
        elif status in IN_PROGRESS:
            progress.append(m)
        elif status in DONE:
            done.append(m)

    # Trier chaque catégorie par date de création (anciens d’abord)
    for lst in (failed, progress, done):
        lst.sort(key=lambda x: x.get("uploadDate", 0))

    # Retourner tous les magnets dans l'ordre priorité : failed → progress → done
    return failed + progress + done

# ----------------------------------------
# Fonction principale
# ----------------------------------------
def main():
    """
    Logique principale :
    - Récupère tous les magnets
    - Vérifie les seuils
    - Applique le mode urgence si nécessaire
    - Supprime les magnets selon les règles
    """
    magnets = get_magnets()
    total = len(magnets)
    print(f"Total magnets : {total}, Dry-run : {DRY_RUN}")

    # Mode urgence
    if total > EMERGENCY_THRESHOLD:
        print("🚨 MODE URGENCE activé")
        ordered = bucketize(magnets, ignore_age=True)
        to_delete = ordered[:EMERGENCY_DELETE]

    # Mode normal
    elif total > THRESHOLD_HIGH:
        print("Mode normal")
        ordered = bucketize(magnets, ignore_age=False)
        max_deletions = min(MAX_DELETE, total - THRESHOLD_LOW)
        to_delete = ordered[:max_deletions]

    else:
        print("Seuil non atteint → rien à faire.")
        return

    # Supprimer les magnets sélectionnés
    for m in to_delete:
        mid = m.get("id")
        name = m.get("filename") or m.get("name") or ""
        status = m.get("status")
        print(f"→ Suppression {status} : {name} (id={mid})")
        delete_magnet(mid)

    print("✨ Purge terminée.")

# ----------------------------------------
# Exécution du script
# ----------------------------------------
if __name__ == "__main__":
    main()

Comme il le suggère, je le fais tourner avec un Docker Alpine. Chaque nuit à 3h.

services:
  alldebrid-purger:
    image: python:3.12-alpine
    container_name: alldebrid-purger
    restart: always
    working_dir: /app
    command: >
      sh -c "
      apk add --no-cache py3-pip &&
      pip install --no-cache-dir requests &&
      echo '0 3 * * * python /app/purge_alldebrid_magnets.py >> /logs/purge.log 2>&1'
      > /etc/crontabs/root &&
      crond -f -d 8
      "
    volumes:
      - /mnt/Docker/alldebrid_purger:/app:ro
      - /mnt/Docker/alldebrid_purger/logs:/logs

Loading

  •  

RSE : NXO obtient la certification Science Based Targets initiative (SBTI)

Acteur engagé dans l’industrie du numérique, NXO a positionné le sujet de la RSE au centre de sa gouvernance et de sa stratégie de croissance ces dernières années. C’est dans ce contexte que la maîtrise de son impact carbone est un élément clé de ses actions. « Face à l’urgence climatique, de plus en plus d’organisations […]

L’article RSE : NXO obtient la certification Science Based Targets initiative (SBTI) est apparu en premier sur InformatiqueNews.fr.

  •  
❌