Vue normale

Une infrastructure VPN hybride avec Headscale

5 mars 2026 à 19:12

Lorsque je travaille sur des projets personnels, j’ai besoin d’un environnement de test que je peux déployer rapidement et facilement.

Souvent, mon poste de travail n’est pas suffisant pour répondre à mes besoins. Je m’arme donc de deux serveurs clients légers sur lesquels je déploie mes machines virtuelles. Ces clients légers sont adaptés pour des tests rapides et sont pensés pour ne pas consommer trop d’énergie (ils sont allumés 24/7, donc j’essaye de faire attention).

Mais lorsque je fais des tests un peu plus poussés, ces serveurs sont vite limités (avec un Home-Assistant, un serveur média, le Omada Controller, des noeuds Kubernetes, et quelques autres services, ça commence à tirer sur la corde).

Pour continuer mes expériences et mon apprentissage, je loue alors un serveur dédié chez OVH sur lequel j’ai installé un Proxmox.

Mais avoir 2 infrastructures séparées, ça n’est pas très pratique. J’ai donc décidé de les relier entre elles.

Depuis ma workstation, j’ai un client tailscale (avec un serveur headscale) me permettant d’accéder à un bastion sur l’infra à distance.

Simple, efficace, pas cher.

Information

Tailscale est un VPN basé sur WireGuard qui permet de connecter des machines entre elles de manière sécurisée. Il intègre des ACLs, un DNS, un système de partage de fichiers et bien d’autres fonctionnalités.

En téléchargeant l’agent sur une machine, celle-ci peut rejoindre un réseau Tailscale et communiquer avec les autres machines du même compte. Dans une entreprise, cela peut permettre de donner accès à des ressources internes à des employés en télétravail ou gérer qui a accès à quels services.

Mais une limite me dérange un peu : si un hôte sur mon infra-cloud doit contacter un hôte dans mon LAN, je dois installer un client sur chacun des postes.

Devoir installer un agent sur chaque machine est un peu lourd.

En réponse à ça, il est possible d’utiliser les routes tailscales pour qu’un hôte devienne le point d’entrée vers un réseau.

Sur cette page, je vais vous expliquer comment j’ai configuré mon infrastructure pour que mes deux réseaux soient interconnectés (en installant un réseau Tailscale).
Installer Headscale

Euh… On parlait pas de Tailscale à la base ?

En réalité, je n’ai jamais utilisé Tailscale directement. Headscale est un serveur Tailscale auto-hébergé utilisant les clients Tailscale (et son réseau DERP).

Ainsi, l’authentification des clients se fait directement sur mon serveur, et je peux gérer les ACLs directement depuis ce dernier. Voici le schéma de ce que je veux mettre en place :

Headscale VPN hybride

Du fait de la nature de WireGuard, le trafic ne passe pas par le serveur Headscale, mais directement entre les clients. Headscale sert principalement à gérer les ACLs et à propager les routes (on verra ça plus tard).

Pour installer Headscale, je vais utiliser Docker Compose sur un VPS gratuit chez Oracle Cloud (je voulais qu’il soit hors des réseaux que je veux connecter).

J’utilise Traefik comme reverse proxy pour exposer le port 8080 de mon conteneur Headscale, mais il n’est pas forcément obligatoire d’exposer le port 8080.

services:
headscale:
image: headscale/headscale:0.22.3
volumes:

  • ./config:/etc/headscale/
  • ./data:/var/lib/headscale
    ports:

    - 8080:8080

  • 3478:3478/udp # STUN
    command: headscale serve
    restart: unless-stopped
    labels:
  • "traefik.enable=true"
  • "traefik.http.routers.headscale.rule=Host(headscale.une-tasse-de.cafe)"
  • "traefik.http.routers.headscale.entrypoints=secure"
  • "traefik.http.routers.headscale.tls.certresolver=letsencrypt"
  • "traefik.http.services.headscale.loadbalancer.server.port=8080"
    networks:
  • traefik-net

networks:
traefik-net:
external: true
driver: overlay
name: traefik-net

Si vous n'utilisez pas Traefik

Une fois traefik (ou un autre reverse proxy) configuré pour exposer le port 8080 du conteneur, je vais créer mon fichier ./config/config.yaml à partir de la template fournie par Headscale.

curl https://raw.githubusercontent.com/juanfont/headscale/main/config-example.yaml -o ./config/config.yaml

Voici les valeurs que j’ai modifiées pour mon cas d’usage :

server_url: https://headscale.une-tasse-de.cafe
listen_addr: 0.0.0.0:8080
dns_config:
base_domain: une-tasse-de.cafe

Pour la partie DNS, Tailscale va automatiquement ajouter un enregistrement DNS à chaque machine qui rejoint le réseau. Ainsi, je peux accéder à mes machines par leur nom de domaine via la syntaxe nom-machine.nom-utilisateur.base-domain.

Par exemple, si je nomme mon hôte cloud-router et que je suis l’utilisateur router, je pourrais accéder à mon hôte via cloud-router.router.une-tasse-de.cafe.
Ajouter un client Tailscale

Il existe deux méthodes d’authentification sur Headscale :

Ajout de notre token dans la base Headscale,
Authentification par token pré-authentifié.

Pour notre premier client Tailscale, testons la première méthode.

Je vais ajouter mon laptop (qui doit pouvoir accéder aux deux réseaux lorsque je suis en déplacement).

$ curl -fsSL https://tailscale.com/install.sh | sh
$ sudo tailscale up --login-server https://headscale.une-tasse-de.cafe
To authenticate, visit:

    https://headscale.une-tasse-de.cafe/register/nodekey:0592da68e42380d988c7a17c7c47728f2643e6cfb7988258bb3af7b193cba272

Via ce lien, on tombe sur cette page :

08de96fe92b24ca0d6628091b854075f.png

L’URL générée par Headscale ne sert qu’à donner la commande à exécuter pour valider l’authentification du client. Cette commande peut être exécutée depuis le conteneur Headscale, ou en exposant un socket gRPC à l’extérieur du conteneur et en y accédant depuis la cli Headscale.

Avant de valider l’authentification, je vais également créer un utilisateur quentin sur Headscale.

docker compose exec headscale headscale ns create quentin
docker compose exec headscale headscale nodes register --user quentin --key nodekey:0592da68e42380d988c7a17c7c47728f2643e6cfb7988258bb3af7b193cba272

Success s’affiche sur le terminal, cela nous indique que nous avons bien rejoint le réseau Tailscale.

Astuce

Si vous n’exposez pas le port 8080 de votre conteneur, vous pouvez toujours obtenir le token dans l’URL renvoyée par la commande tailscale up et l’ajouter directement dans la base Headscale.

Après l’étape de l’authentification, un tailscale status nous affiche les hôtes disponibles sur le réseau :

$ tailscale status
fd7a:115c:a1e0::1 laptop quentin linux -

On se sent un peu seul ici… je vais ajouter mon “routeur” coté cloud !

J’installe une machine cloud-router qui va rejoindre notre réseau Tailscale d’une seconde façon : via un token pré-authentifié.

Dans le premier cas, un administrateur (nous) a dû se connecter sur le serveur Headscale pour valider la connexion. Mais c’est assez peu flexible et sauf si votre utilisateur garde son terminal ouvert jusqu’à ce que vous ayez validé l’utilisateur : il n’est pas possible de valider un client en asynchrone.

C’est dans cette situation que les clés pré-authentifiées peuvent être un atout. Ce token est lié à un utilisateur, c’est pourquoi je vais d’abord créer router qui rassemblera les machines des différents réseaux.

docker compose exec headscale headscale ns create router

Maintenant, je demande un token pré-authentifié d’une durée de 24h.

$ docker compose exec headscale headscale --user router preauthkeys create --expiration 24h
9b4bfbb0ab0977fc6c9a907e90c6784ba3adfb381b73f1f5

Cette commande va me créer un token à usage unique pour authentifier automatiquement le client tailscale qui l’utilisera.

Astuce

Il est possible de faire un token réutilisable plusieurs fois en rajoutant --reusable.

sudo tailscale up --login-server https://headscale.une-tasse-de.cafe --auth-key 9b4bfbb0ab0977fc6c9a907e90c6784ba3adfb381b73f1f5

Nous n’avons pas eu à valider le client sur notre Headscale cette fois-ci, le client a pu rejoindre le réseau Tailscale directement.

Un tailscale status nous affiche bien nos deux clients :

$ tailscale status
fd7a:115c:a1e0::1 laptop quentin linux -
fd7a:115c:a1e0::2 cloud-router.router.une-tasse-de.cafe router linux -

J’ajoute maintenant un second hôte home-router qui sera le point d’entrée/sortie pour accéder au réseau distant.

$ tailscale status
fd7a:115c:a1e0::1 laptop quentin linux -
fd7a:115c:a1e0::2 cloud-router.router.une-tasse-de.cafe router linux -
fd7a:115c:a1e0::3 home-router.router.une-tasse-de.cafe router linux -

Maintenant, nous avons un hôte dans chacun des réseaux. L’hôte home-router peut accéder à la machine cloud-router , mais pas au réseau derrière (192.168.128.0/24).

Il m’est possible de configure les machines pour rediriger les paquets provenant du réseau Tailscale, mais il est possible de configurer ces routes directement sur Headscale, et c’est ce que je vais faire.

Sur la machine cloud-router, ayant une interface dans le réseau 192.168.128.0/24, je vais informer Headscale que je souhaite partager l’accès à ce réseau.

Pour cela, je peux configurer mon client via tailscale set --advertise-routes 192.168.128.0/24 --advertise-exit-node (toujours depuis la machine cloud-router).

Mais la route ne va pas automatiquement se propager sur les hôtes, il faut encore la valider directement sur le serveur Headscale.

$ docker compose exec headscale headscale route list
ID | Machine | Prefix | Advertised | Enabled | Primary
1 | cloud-router | 192.168.128.0/24 | true | false | false

La route est bien connue par Headscale, mais elle n’est pas encore activée.

Pour l’activer, je peux le faire depuis la cli docker compose exec headscale headscale route enable -r 1 où 1 correspond à l’ID de la route.

Sur l’hôte home-router, je configure également une route tailscale set --advertise-routes 192.168.1.0/24 (qui devra aussi être activée par docker compose exec headscale headscale route enable -r 2).

$ docker compose exec headscale headscale route list
ID | Machine | Prefix | Advertised | Enabled | Primary
1 | cloud-router | 192.168.128.0/24 | true | true | true
2 | home-router | 192.168.1.0/24 | true | true | true

Par défaut, les clients n’acceptent pas les routes propagées. Pour changer ça, il faut configurer le paramètre tailscale set --accept-routes.

Je vais rentrer ce paramètre sur nos 3 hôtes :

laptop
cloud-router
home-router

Depuis laptop (sur un réseau différent, ex 4G), je peux alors pinguer une adresse du réseau 192.168.1.0/24 et 192.168.128.0/24.

Maintenant, configurons les ACLs pour que seuls les utilisateurs ‘quentin’ et ‘routeur’ aient accès aux routes : ***

Dans mes paramètres Headscale config.yaml, j’ai ajouté le chemin du fichier ACL :

acl_policy_path: "/etc/headscale/acl.json"

Ce fichier est à créer à coté de config.yaml, voici un exemple de configuration :

{
"acls": [
{
"action": "accept",
"src": ["quentin", "router"],
"dst": ["192.168.1.0/24:", "192.168.128.0/24:", "router:*"]
},
]
}

Ainsi, les machines des utilisateurs quentin et router peuvent accéder aux réseaux 192.168.1.0/24 et 192.168.128.0/24 ainsi qu’aux autres hôtes du réseau Tailscale appartennant à l’utilisateur router (comme cloud-router et home-router).

Astuce

Si je veux restreindre le nombre de machines joignables, je peux juste préciser les IP individuellements (192.168.1.200/32, 192.168.128.15/32).

Je dois redémarrer mon conteneur Headscale pour prendre en compte les changements.
Configurer les routes

N’importe quelle machine appartennant à l’utilisateur router peut maintenant joindre les réseaux distants. Mais je ne veux pas avoir à installer un agent tailscale sur chacune des machines devant joindre ces plages (et c’est là que le terme router prend tout son sens dans le nom des machines).

Je vais alors configurer home-router et cloud-router pour être des passerelles vers les réseaux qu’elles connaissent.

Sur chacune d’entres elles, j’active le routage des paquets :

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Depuis une machine quelconque (AKA sans le moindre agent tailscale) de mon réseau 192.168.1.0/24, je vais essayer de joindre une machine du réseau 192.168.128.0/24 via home-router (dont l’IP est 192.168.1.181)

root@quelconque:~# ip route add 192.168.128.0/24 via 192.168.1.181
root@quelconque:~# ping -c1 192.168.128.1
PING 192.168.128.1 (192.168.128.1) 56(84) bytes of data.
64 bytes from 192.168.128.1: icmp_seq=1 ttl=63 time=100 ms

Je fais également ça de l’autre coté (toujours sur une machine sans agent tailscale) :

root@autre-machine-quelconque:~# ip route add 192.168.1.0/24 via 192.168.128.10
root@autre-machine-quelconque:~# ping -c1 192.168.128.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=62 time=92.5 ms

Parfait, j’ai bien mes passerelles vers les réseaux respectifs !
OPNSense

Propager une route statique, c’est rigolo lorsque j’ai 3-4 machines à configurer mais ça devient vite fastidieux de devoir s’assurer que chaque machine possède la bonne route.

Mais par chance, mon routeur virtuel (coté cloud) est un OPNSense sur lequel je peux configurer des passerelles et des routes !

Ainsi, je peux aller sur l’interface web pour prévenir mon routeur de l’IP de la passerelle.

65c980822686fdfd2974bf8d2ad17045.png

Une fois qu’il connaît la passerelle, je lui demande de créer une route passant par cette passerelle pour accéder à mon réseau 192.168.1.0/24.

943d76b20e5b8ccef86f00ea7e1ff917.png

Ainsi dès qu’une VM va essayer de joindre mon réseau LAN, le routeur OPNSense va automatiquement rediriger les paquets vers la passerelle cloud-router.

Malheureusement, pour le chemin inverse, je n’ai pas encore d’autre solution que de configurer les routes de manière statique sur mes machines. La raison est que j’utilise encore ma box Orange qui ne propose aucune option pour ajouter des routes personnalisées.

Pour les routes statiques, je peux les configurer dans le fichier /etc/network/interfaces de cette manière :

allow-hotplug ens18
iface ens18 inet static
address 192.168.1.42
netmask 255.255.255.0
gateway 192.168.1.1
post-up ip route add 192.168.128.0/24 via 192.168.1.181

Conclusion

Je vais essayer de prévoir la principale question que vous pourriez vous poser :

Pourquoi Tailscale et pas un simple Wireguard ?

Parce qu’en réalité, j’ai beaucoup plus que 3 machines dans mon réseau VPN, et l’usage de Tailscale me permet de gérer les ACLs avec des permissions assez poussées sans avoir à bricoler des IPTables (si j’étais passé par du WireGuard classique).

Plusieurs options étaient alors possibles :

FireZone
ZeroTier
Netmaker
WireGuard + IPTables

Ayant déjà bricolé avec Tailscale, je me suis dirigé assez naturellement vers cette solution. Mais je vous invite fortement à tester ces autres options (et à me faire un retour si vous le souhaitez). Le combo Tailscale + Headscale me convient parfaitement mais je ne suis pas fermé à d’autres solutions.

Et concrètement, it just works. J’ai pu rapidement mettre en place mon infrastructure et la faire fonctionner sans trop de difficultés.


Direct link

Make docker swarm HA with keepalived |・∀・

5 mars 2026 à 19:10

While having a self-healing, scalable docker swarm is great for availability and scalability, none of that is worth a sausage if nobody can connect to your cluster!

Preparation

Enable IPVS module

On all nodes which will participate in keepalived, we need the "ip_vs" kernel module, in order to permit services to bind to non-local interface addresses.

Set this up once-off for both the primary and secondary nodes, by running:

echo "modprobe ip_vs" >> /etc/modules
modprobe ip_vs

Setup nodes

Assuming your IPs are as per the following example:

192.168.4.1 : Primary
192.168.4.2 : Secondary
192.168.4.3 : Virtual

Run the following on the primary

docker run -d --name keepalived --restart=always \
--cap-add=NET_ADMIN --cap-add=NET_BROADCAST --cap-add=NET_RAW --net=host \
-e KEEPALIVED_UNICAST_PEERS="#PYTHON2BASH:['192.168.4.1', '192.168.4.2']" \
-e KEEPALIVED_VIRTUAL_IPS=192.168.4.3 \
-e KEEPALIVED_PRIORITY=200 \
osixia/keepalived:2.0.20

And on the secondary2:

docker run -d --name keepalived --restart=always \
--cap-add=NET_ADMIN --cap-add=NET_BROADCAST --cap-add=NET_RAW --net=host \
-e KEEPALIVED_UNICAST_PEERS="#PYTHON2BASH:['192.168.4.1', '192.168.4.2']" \
-e KEEPALIVED_VIRTUAL_IPS=192.168.4.3 \
-e KEEPALIVED_PRIORITY=100 \
osixia/keepalived:2.0.20

Serving

That's it. Each node will talk to the other via unicast (no need to un-firewall multicast addresses), and the node with the highest priority gets to be the master. When ingress traffic arrives on the master node via the VIP, docker's routing mesh will deliver it to the appropriate docker node.
Summary

What have we achieved?

Summary

Created:

A Virtual IP to which all cluster traffic can be forwarded externally, making it "Highly Available"

The easy, 5-minute install

I share (with sponsors and patrons) a private "premix" GitHub repository, which includes an ansible playbook for deploying the entire Geek's Cookbook stack, automatically. This means that members can create the entire environment with just a git pull and an ansible-playbook deploy.yml 👍

Chef's notes 📓

Some hosting platforms (OpenStack, for one) won't allow you to simply "claim" a virtual IP. Each node is only able to receive traffic targetted to its unique IP, unless certain security controls are disabled by the cloud administrator. In this case, keepalived is not the right solution, and a platform-specific load-balancing solution should be used. In OpenStack, this is Neutron's "Load Balancer As A Service" (LBAAS) component. AWS, GCP and Azure would likely include similar protections. ↩

More than 2 nodes can participate in keepalived. Simply ensure that each node has the appropriate priority set, and the node with the highest priority will become the master.

Direct link

Toutes les rumeurs sur le Samsung Galaxy S27 : faut-il acheter le Galaxy S26… Ou attendre son successeur ?

5 mars 2026 à 18:55
Vue spéculative du Samsung Galaxy S27

Prévue pour le 11 mars 2026, la gamme Galaxy S26 devrait s’imposer comme une valeur sûre du haut de gamme Android. Mais comme souvent dans l’univers des smartphones, les regards se tournent déjà vers la génération suivante. Les premières spéculations autour du Samsung Galaxy S27 commencent à circuler, et une question se pose : vaut-il mieux acheter le Galaxy S26 dès sa sortie, ou patienter encore pour le prochain flagship du constructeur coréen ? Faisons le point sur les fuites et les rumeurs.

Nota bene : cet article s’appuie sur des fuites relayées par des leakers. Aucune de ces données n’a été confirmée officiellement par Samsung, et certaines caractéristiques peuvent encore évoluer d’ici la présentation officielle du Galaxy S27, probablement prévue début 2027.

Photographie : une révolution en vue sur le Samsung Galaxy S27 Ultra ?

Sur le plan photographique, plusieurs sources évoquent le possible retour d’un objectif à ouverture variable sur l’ensemble de la série S27. Samsung avait déjà expérimenté cette technologie à l’époque du Galaxy S9. Le principe est simple : adapter mécaniquement l’ouverture de l’objectif afin de privilégier soit la luminosité, soit la netteté, en fonction des conditions de prise de vue1

Une telle évolution ne serait pas anodine, d’autant que des rumeurs similaires se font entendre concernant la future série iPhone 18 Pro. La concurrence entre Samsung et Apple pourrait donc se jouer, une nouvelle fois, sur le terrain de la photo.

Mais la véritable évolution concernerait surtout le Galaxy S27 Ultra. Les fuites évoquent l’arrivée d’un nouveau capteur principal de 200 mégapixels intégrant une technologie LOFIC, destinée à améliorer sensiblement la plage dynamique. Concrètement, cela permettrait d’obtenir un HDR plus naturel, avec moins d’artefacts et une meilleure gestion des zones très lumineuses et des ombres.

Performances : une copie révisée pour encore plus d’efficacité ?

En matière de performances, le Galaxy S26 s’annonce déjà solide et parfaitement dimensionné pour les usages actuels. Le Galaxy S27 pourrait toutefois aller plus loin. Certaines fuites évoquent un partenariat renforcé avec Qualcomm : après avoir testé des fréquences personnalisées sur les générations précédentes, Samsung doterait sa nouvelle gamme d’une puce Snapdragon totalement sur mesure, potentiellement réservée au modèle Ultra2. L’objectif serait d’augmenter à la fois les performances brutes et l’efficacité énergétique, afin de mieux rivaliser avec les puces maison d’Apple attendues sur la gamme iPhone 18.

Au-delà des évolutions matérielles classiques, certaines rumeurs évoquent des changements plus profonds du côté des fonctionnalités. Sur le Galaxy S27 Ultra, Samsung testerait une nouvelle solution d’authentification faciale baptisée provisoirement « Polar ID »3. Celle-ci s’appuierait sur un système d’analyse par lumière polarisée. Ce type de technologie pourrait offrir une reconnaissance plus fiable dans des conditions difficiles (faible luminosité, port de lunettes ou de masque) tout en renforçant la sécurité. 

Autre sujet sensible : l’avenir du S Pen. Plusieurs leakers évoquent la possibilité que Samsung abandonne le stylet intégré sur le Galaxy S27 Ultra. Le constructeur pourrait soit supprimer totalement le S Pen de sa gamme de smartphones, soit revenir à un stylet externe optionnel. Cette décision s’inscrirait dans une réflexion plus large, Samsung considérant que les utilisateurs les plus attachés au S Pen se tournent désormais davantage vers les tablettes Galaxy Tab.

Autonomie : enfin une plus grande batterie sur les Galaxy S27 ?

Le Galaxy S26 Ultra conserve une batterie de 5 000 mAh, un choix dans la continuité des générations précédentes. Du côté du Galaxy S27, les rumeurs évoquent une capacité légèrement supérieure, autour de 5 500 mAh

Il ne s’agirait pas d’une révolution, face aux batteries de certains concurrents qui grimpent jusqu’à une capacité de 7 500 mAh, mais tout de même d’un progrès tangible. 

Les Samsung Galaxy S26
© Samsung

Verdict : acheter le Galaxy S26 ou attendre le Galaxy S27 ?

Les Samsung Galaxy S26 constituent une évolution dans la continuité des générations précédentes, avec des nouveautés à la marge, comme le filtre de confidentialité Privacy Display, capable de protéger le contenu de l’écran des regards indiscrets.

Difficile à ce stade de déterminer si la génération S27 constituera une évolution plus significative, même si les premiers bruits de couloir sur la partie photographique semblent encourageants.

En pratique, tout dépend donc de votre smartphone actuel. Si vous partez d’un modèle très ancien, le Galaxy S26 représente déjà un saut qualitatif évident. Autrement, il peut s’avérer pertinent d’attendre le Galaxy S27, et notamment le modèle Ultra. D’ici là, nous continuerons à mettre cet article à jour, au fil des nouvelles rumeurs et informations officielles.

Et vous, avez-vous décidé de craquer pour le Samsung Galaxy S26 ? Ou préférez-vous attendre le Galaxy S27 ? Qu’attendez-vous comme innovations sur les prochains flagships de Samsung ? Dites-nous tout en commentaire.

  1. https://www.gizmochina.com/2026/02/10/samsung-is-working-on-variable-aperture-for-galaxy-s27-ultra-claims-new-leak/ ↩︎
  2. https://www.androidcentral.com/phones/samsung-galaxy/samsung-galaxy-s27 ↩︎
  3. https://www.sammobile.com/news/this-big-facial-recognition-upgrade-may-be-coming-to-the-galaxy-s27-ultra/ ↩︎

AboutCode et Dropsolid présentés au prochain webinaire de la série "Open Source by OW2"

5 mars 2026 à 11:36

Dans le cadre de sa série trimestrielle de webinaires, OW2 donnera la parole aux projets AboutCode et Dropsolid, le jeudi 12 mars 2026 à 16h00.

OW2 Webinar 7

La série « Open Source by OW2 » est dédiée aux innovations open source, aux projets et à la communauté OW2, ainsi qu’aux opportunités de financement open source dont le programme européen NGI. Découvrez de nouveaux projets, des technologies, de l’innovation, des modèles ouverts au sens large (science/données/matériel/éducation/normes/protocoles/etc.), mais aussi des biens communs numériques, des financements, des modèles économiques, de la coopération et de l’impact social. Chaque webinaire met en avant un projet OW2 et un projet financé par NGI Zero Commons Fund.

Découvrez l'agenda du 12 mars 2026 :

  • 16h : Introduction
  • 16h05 : Dropsolid : Construire la souveraineté numérique grâce à une gouvernance de l'IA transparente, par Tassos Koutlas et Paulina Ryters-Menapace, Dropsolid
  • 16h25 : ScanCode et la stack AboutCode : outil d'analyse logicielle (SCA) de référence du marché, avec Philippe Ombredanne, NextB
  • 16h40 : Conclusion

Chaque présentation sera suivie d'une session d'échange ouvert entre les intervenants et participants.
L’inscription est gratuite mais obligatoire (le lien est envoyé par mail). Les présentations ont lieu en anglais. N’hésitez pas à diffuser l’invitation autour de vous !

Commentaires : voir le flux Atom ouvrir dans le navigateur

Shuffle - Quand 4 IA redesignent votre site (et c'est moche)

Par : Korben
5 mars 2026 à 09:48

Shuffle , c'est un outil qui vous propose de redesigner votre site web avec 4 modèles d'IA différents. Vous collez votre URL, vous décrivez ce que vous voulez... et boom, Claude Opus 4.6, GPT-5.2, Gemini 3 Pro et Kimi K2.5 vous pondent chacun leur version. J'ai testé sur ma home. Verdict : c'est moche de fou !

Vous arrivez sur la page, vous entrez l'adresse de votre site, vous tapez un petit prompt du genre "modernise mon blog tech" et vous lancez la machine. Les 4 modèles bossent alors en parallèle et au bout de 30 secondes environ, vous avez 4 propositions de redesign à comparer côte à côte.

Je trouvais le concept cool, sauf que dans la pratique, c'est une autre histoire. Comme je vous le disais en intro, j'ai testé sur korben.info, et les 4 IA ont eu exactement la même idée lumineuse : tout foutre en thème sombre. QUATRE sur QUATRE ! Pas un seul n'a osé proposer autre chose qu'un fond #1a1a2e dégeu avec des accents néon bleu-vert. Original, hein !!

Les 4 propositions de redesign de korben.info... toutes en dark mode. Désolé si votre site ressemble à ça.

On dirait que pour les IA, "blog tech" = "dark mode obligatoire"... et du coup ça ressemble à tous les médias tech génériques qu'on retrouve partout. Sauf si vous précisez "fond clair" dans le prompt, mais même là, c'est pas garanti.

Claude Opus a pondu une esthétique "hacker" avec du code Matrix en fond vert (carrément, on se laaache). GPT-5.2 a carrément rebaptisé le site "KORBEN NEXT" avec une baseline inventée de toute pièce, "La veille tech qui va droit au but"... euh, merci mais non merci j'aime pas le foot. Gemini 3 Pro a opté pour un style magazine éditorial et Kimi K2.5 (le modèle chinois de Moonshot AI) a sorti le gradient hero classique, propre... ou plutôt fade.

Bah ouais, les IA analysent la structure, les catégories, les images... mais le résultat c'est finalement toujours le même template sombre "tech media 2024" qu'on a vu un million de fois. Alors que pour moi, Korben.info c'est pas du tout cette ambiance.

Mais l'outil a quand même des qualités puisque l'éditeur visuel permet de modifier le résultat en drag-and-drop sans toucher au CSS, et vous pouvez même exporter le code dans 4 formats : Next.js, Laravel, WordPress ou HTML classique. En fait, ça peut servir de très bon point de départ si vous avez la flemme de partir d'une page blanche et si votre webdesigner est devenu injoignable depuis qu'il est parti à Punta Cana.

Côté prix, y'a une version gratuite mais limitée à quelques générations, et après puis c'est 24 dollars par mois...etc.

Ça aurait pu être un excellent outil mais malheureusement, les modèles sont formatés sur les mêmes tendances, les mêmes palettes, les mêmes layouts. C'est dommage je trouve. Voilà, après je pourrais vous faire une conclusion bien neuneu genre "C'est pas demain qu'une IA remplacera un vrai directeur artistique qui comprend l'identité d'une marque." mais la réalité, c'est que un humain moyen motivé qui sait ce qu'il veut peut avoir un truc incroyablement bien généré par IA s'il prend le temps le temps de se former et qu'il ne lâche rien ! Tenez par exemple, 100% du template graphique de mon site a été généré à l'aide de l'IA et moi derrière pour la fouetter...

Voilà, si vous voulez rigoler un peu, allez tester votre site sur Shuffle mais ne vous attendez pas à un miracle !

Alibaba Cloud se fait plus explicite sur la souveraineté

5 mars 2026 à 09:58

Cinq fois le mot « souveraineté » dans un même post : sur le blog d’Alibaba Cloud, c’est inhabituel, pour ne pas dire quasi inédit.

Ce post, publié début février, dresse un « bilan annuel » de l’offre de cloud privé Apsara Stack. Dans la pratique, il s’agit d’une plaquette commerciale. Elle a, donc, la particularité de comporter de nombreuses références à la notion de « souveraineté ». Avec des exemples. Parmi eux, le Sénégal. Sur place se dérouleront, du 31 octobre au 13 novembre 2026, les Jeux olympiques de la jeunesse. Les principaux SI sous-jacents doivent être migrés chez Alibaba Cloud, nous explique-t-on. Apsara Stack portera des « applications critiques » à l’image de la billetterie et de la gestion du parcours de la flamme. Il est surtout censé contribuer, par après, à la mise en place d’une « infrastructure cloud nationale souveraine »…

Alibaba Cloud donne un autre exemple : celui de l’Algérie, qui s’est appuyée sur ses services pour déployer une « infrastructure cloud souveraine pour les services publics ».

Alibaba Cloud mise sur les partenariats telcos

Pour trouver trace d’un autre emploi du mot « souveraineté » sur le blog principal de l’entreprise chinoise, il faut remonter à septembre 2025. Elle avait félicité un client et un partenaire intégrateur malaisiens qui venaient de remporter des prix d’innovation décernés par une association représentative du secteur IT.

La notion de souveraineté apparaît épisodiquement sur d’autres canaux de com d’Alibaba Cloud. Illustration sur Facebook en novembre 2025, dans le cadre d’un forum gouvernemental en Arabie saoudite. L’entreprise avait organisé un atelier à ce sujet avec Atos.

Quelques mois plus tôt, son directeur secteur public avait appelé les pays émergents à investir dans le « cloud souverain ». Il avait évoqué les alliances montées dans cette perspective avec des opérateurs télécoms. Et en avait mentionné une : en Afrique du Sud, avec BCX, qui assure une « exploitation indépendante » du cloud.

Alibaba Cloud avait fait son entrée sur le marché sud-africain grâce à ce partenariat. C’était en 2022. Promettant d’accompagner le développement de compétences locales, il a mis sur pied , avec BCX, une Alibaba Cloud Academy.

Des certifications européennes… surtout en Allemagne

Dans son trust center, Alibaba Cloud détaille sa conformité à diverses réglementations nationales… mais exclusivement sur la plaque Asie (+ Australie). Toutefois, parmi les certifications dont il dispose, certaines ont été délivrées en Europe. Notamment C5 (le « SecNumCloud allemand »), obtenu pour la première fois en 2020. L’Allemagne lui a aussi attribué l’AIC4 (AI Cloud Service Compliance Criteria Catalog), qui évalue la sécurité des services d’IA. Sur place, il en a également obtenu une de la part de l’industrie automobile : TISAX (Trusted Information Security Assessment Exchange).

En Europe, Alibaba Cloud détient par ailleurs la certification EU CoC. Elle est censée témoigner du respect des obligations de l’article 28 du RGPD, relatif aux sous-traitants.

Illustration générée par IA

The post Alibaba Cloud se fait plus explicite sur la souveraineté appeared first on Silicon.fr.

Créer de la musique avec du code JavaScript 🎼

Mickadoule vient de mettre en ligne une vidéo dans laquelle il découvre et prend en main Strudel, une librairie JavaScript qui permet de créer de la musique en temps réel, directement dans ton navigateur :

Je ne sais pas vous, mais à la fin de la vidéo j'ai presque envie de m'y mettre alors que je n'y connais rien en musique 😄

Plutôt que de chercher des musiques libres de droits pour accompagner du contenu (vidéo par exemple) cela peut être une très bonne alternative.

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 05/03/2026 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Créer de la musique avec du code JavaScript 🎼 provient de : on Blogmotion.
❌