Vue normale

Revue de presse de l’April pour la semaine 44 de l’année 2025

Par : echarp
4 novembre 2025 à 21:37

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.

[ZDNET] Alternatives open source: la Commission européenne va créer un consortium pour les communs numériques

✍ Thierry Noisette, le vendredi 31 octobre 2025.

La France et l’Allemagne sont parmi les membres fondateurs. «L’une des priorités stratégiques de l’Europe est de renforcer les alternatives ouvertes, interopérables et souveraines.»

[ICTjournal] Le chef de l'armée suisse veut une alternative à Microsoft 365

✍ René Jaun, le vendredi 31 octobre 2025.

La Confédération déploie Microsoft 365 dans l’ensemble de ses départements. Mais le Groupement Défense ne peut en tirer que peu d’avantages, puisqu’il lui est interdit de stocker ses documents classifiés dans le cloud de Microsoft. Le chef de l’armée veut une alternative.

[Le Monde.fr] Elon Musk lance Grokipedia, son Wikipédia jugé biaisé idéologiquement

Le mardi 28 octobre 2025.

Les premiers contenus de cette encyclopédie en ligne, générés par intelligence artificielle, révèlent une orientation marquée, notamment sur des sujets comme Black Lives Matter.

[ZDNET] Pourquoi l'open source pourrait ne pas survivre à l'essor de l'IA générative

✍ David Gewirtz, le lundi 27 octobre 2025.

L’IA générative est peut-être en train d’éroder les fondements des logiciels libres. La provenance, les licences et la réciprocité sont en train de s’effondrer.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Musée du Louvre: des failles de cybersécurité exposées par des audits - 20 minutes

4 novembre 2025 à 16:06

Des ordinateurs sous Windows 2000, le mot de passe «Louvre» pour accéder à la vidéosurveillance, des logiciels de sécurité impossibles à mettre à jour... Depuis plus de dix ans, le premier musée du monde vit avec des vulnérabilités informatiques béantes. C’est ce que révèlent des audits confidentiels et des documents d’appels d’offres consultés par CheckNews, le service de fact-checking de «Libération». Ils dressent un tableau pour le moment inquiétant de la cybersécurité de l'établissement.

https://www.liberation.fr/checknews/louvre-en-mot-de-passe-logiciels-obsoletes-mises-a-jour-impossibles-dix-ans-de-failles-dans-la-securite-informatique-du-premier-musee-au-monde-20251101_RD5YGV6WMVAXLL6U3SRGVFBIBY/


Permalien

TestFlight Status Checker : être alerté des ouvertures de bêta d’applications pour Apple sur TestFlight

Par : Aerya
4 novembre 2025 à 09:04

Chez Apple, les développeurs peuvent proposer leurs applications en version bêta avant de les mettre sur l’AppStore. Pour y accéder, outre avoir TestFlight sur son périphérique et un code d’invitation, il faut surtout que la limite de bêta-testeurs ne soit pas atteinte.

Si jamais on arrive trop tard, EloneMusk (… ouais… je sais…) a créé Test-Flight-Subscription pour être alerté par email de l’ouverture d’accès à des bêtas.

L’email et le mot de passe à renseigner dans la configuration ne sont PAS ceux de votre compte Apple mais bien ceux d’un compte GMAIL (hardcodé avec Gmail dans app.py).
Il faudra utiliser un compte Gmail avec un mot de passe d’application (chercher app password dans les paramètres Gmail), accessible une fois le 2FA activé sur le dit compte si ce n’est pas encore fait.

services:
  testflight-checker:
    build:
      context: https://github.com/EloneMusk/Test-Flight-Subscription.git
      dockerfile: Dockerfile
    container_name: testflight-checker
    restart: always
    ports:
      - 7654:8000
    environment:
      EMAIL_USER: moi@gmail.com
      EMAIL_PASSWORD: ent iur henf ued

testflight1

Pratique.
Pour découvrir des applications en bêta, on peut par exemple parcourir le SubReddit dédié ou le dépôt GitHub Awesome Testflight App List.

Il a trouvé sa place dans tout mon petit bordel ^^

testflight2

Et… j’y ajoute mon workflow de mise à jour automatique si le dépôt GitHub évoluait, ce qui donne :

services:
  testflight-checker:
    build:
      context: https://github.com/EloneMusk/Test-Flight-Subscription.git
      dockerfile: Dockerfile
    container_name: testflight-checker
    restart: always
    ports:
      - 7654:8000
    environment:
    environment:
      EMAIL_USER: moi@gmail.com
      EMAIL_PASSWORD: ent iur henf ued
  testflight-autoupdate:
    image: alpine:latest
    container_name: testflight-autoupdate
    restart: always
    environment:
      GITHUB_REPO: https://github.com/EloneMusk/Test-Flight-Subscription.git
      DISCORD_WEBHOOK: https://canary.discord.com/api/webhooks/xxx/xxx
      POLL_INTERVAL: 172800 # secondes
      SERVICE_NAME: testflight-checker
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /tmp:/repo
    command: >
      sh -c "
        apk add --no-cache git bash curl docker-cli jq &&
        mkdir -p /repo &&
        cd /repo &&
        git clone --depth 1 \$GITHUB_REPO . || true &&
        REPO_NAME=\$(basename -s .git \$GITHUB_REPO) &&
        DEFAULT_BRANCH=\$(curl -s https://api.github.com/repos/\$(echo \$GITHUB_REPO | sed 's|.*/||;s|.git||') | jq -r .default_branch) &&
        git fetch origin \$DEFAULT_BRANCH &&
        git checkout \$DEFAULT_BRANCH &&
        LAST_COMMIT=\$(git rev-parse HEAD) &&
        while true; do
          git fetch origin \$DEFAULT_BRANCH &&
          NEW_COMMIT=\$(git rev-parse origin/\$DEFAULT_BRANCH) &&
          if [ \"\$NEW_COMMIT\" != \"\$LAST_COMMIT\" ]; then
            echo \"[$(date)] Nouveau commit détecté sur \$DEFAULT_BRANCH, rebuild...\"
            git reset --hard origin/\$DEFAULT_BRANCH &&
            docker compose -f /repo/docker-compose.yml build \$SERVICE_NAME &&
            docker compose -f /repo/docker-compose.yml up -d \$SERVICE_NAME &&
            REPO_LINK=\$GITHUB_REPO &&
            COMMIT_LINK=\"\$GITHUB_REPO/commit/\$NEW_COMMIT\" &&
            curl -H 'Content-Type: application/json' -X POST -d '{\"content\": \"\$REPO_NAME mis à jour automatiquement !\nBranche : \$DEFAULT_BRANCH\nCommit : \$NEW_COMMIT\nDépôt : <\$REPO_LINK|\$REPO_NAME>\nLien du commit : <\$COMMIT_LINK|voir commit>\"}' \$DISCORD_WEBHOOK &&
            LAST_COMMIT=\$NEW_COMMIT
          else
            echo \"[$(date)] Aucun changement sur \$DEFAULT_BRANCH.\"
          fi
          sleep \$POLL_INTERVAL
        done
      "
networks: {}

Loading

Du commit GitHub au container à jour : workflow Docker simplifié

Par : Aerya
4 novembre 2025 à 08:28

Il arrive que des gens publient un code sur GitHub avec un Dockerfile mais sans package. Le container est donc à construire soi-même, localement.

Ça peut se faire directement depuis un compose

services:
  applicationABC:
    build:
      context: https://github.com/user/applicationABC.git
      dockerfile: Dockerfile
    container_name: applicationABC
    restart: always
    ports:
      - 8080:8080

Mais dans ce cas la mise à jour automatisée via WatchTower ne fonctionne pas puisqu’il n’y a pas d’image à aller chercher.

    labels:
      - com.centurylinklabs.watchtower.enable=true

Du coup voici une solution de contournement, simple et surtout qui n’implique pas d’outil tiers ou de cloner un dépôt GitHub et faire/tenir à jour un package moi-même.

Ce bout de code va checker les commits d’un dépôt GitHub à intervalles réguliers et, au besoin, construire un container à jour localement et relancer le tout.
Avec notification Discord, parce que j’aime ça.

  applicationABC-autoupdate:
    image: alpine:latest
    container_name: applicationABC-autoupdate
    restart: always
    environment:
      GITHUB_REPO: https://github.com/user/applicationABC.git
      DISCORD_WEBHOOK: https://canary.discord.com/api/webhooks/xxx/xxx
      POLL_INTERVAL: 172800 # secondes
      SERVICE_NAME: applicationABC
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /tmp:/repo
    command: >
      sh -c "
        apk add --no-cache git bash curl docker-cli jq &&
        mkdir -p /repo &&
        cd /repo &&
        git clone --depth 1 \$GITHUB_REPO . || true &&
        REPO_NAME=\$(basename -s .git \$GITHUB_REPO) &&
        DEFAULT_BRANCH=\$(curl -s https://api.github.com/repos/\$(echo \$GITHUB_REPO | sed 's|.*/||;s|.git||') | jq -r .default_branch) &&
        git fetch origin \$DEFAULT_BRANCH &&
        git checkout \$DEFAULT_BRANCH &&
        LAST_COMMIT=\$(git rev-parse HEAD) &&
        while true; do
          git fetch origin \$DEFAULT_BRANCH &&
          NEW_COMMIT=\$(git rev-parse origin/\$DEFAULT_BRANCH) &&
          if [ \"\$NEW_COMMIT\" != \"\$LAST_COMMIT\" ]; then
            echo \"[$(date)] Nouveau commit détecté sur \$DEFAULT_BRANCH, rebuild...\"
            git reset --hard origin/\$DEFAULT_BRANCH &&
            docker compose -f /repo/docker-compose.yml build \$SERVICE_NAME &&
            docker compose -f /repo/docker-compose.yml up -d \$SERVICE_NAME &&
            REPO_LINK=\$GITHUB_REPO &&
            COMMIT_LINK=\"\$GITHUB_REPO/commit/\$NEW_COMMIT\" &&
            curl -H 'Content-Type: application/json' -X POST -d '{\"content\": \"\$REPO_NAME mis à jour automatiquement !\nBranche : \$DEFAULT_BRANCH\nCommit : \$NEW_COMMIT\nDépôt : <\$REPO_LINK|\$REPO_NAME>\nLien du commit : <\$COMMIT_LINK|voir commit>\"}' \$DISCORD_WEBHOOK &&
            LAST_COMMIT=\$NEW_COMMIT
          else
            echo \"[$(date)] Aucun changement sur \$DEFAULT_BRANCH.\"
          fi
          sleep \$POLL_INTERVAL
        done
      "

Le travail est effectué dans le dossier temporaire.

Il suffit d’éditer les variables voire le nom du container, histoire de faire propre

  applicationABC-autoupdate:
    image: alpine:latest
    container_name: applicationABC-autoupdate
    restart: always
    environment:
      GITHUB_REPO: https://github.com/user/applicationABC.git
      DISCORD_WEBHOOK: https://canary.discord.com/api/webhooks/xxx/xxx
      POLL_INTERVAL: 172800 # secondes
      SERVICE_NAME: applicationABC

Attention, la variable SERVICE_NAME doit être le nom exact du service à reconstruire/relancer

services:
  applicationABC:
    build:
      context: https://github.com/user/applicationABC.git
      dockerfile: Dockerfile
    container_name: applicationABC
    restart: always
    ports:
      - 8080:8080

Loading

❌