Bêta précoce (0.1.0), pas encore pour un process critique. Voir la roadmap
PNeX logo

Raspberry Pi

Installer PNeX sur un Raspberry Pi 4 ou 5 en une commande

Prérequis

MinimumRecommandé
CarteRaspberry Pi 4 (4 Go)Raspberry Pi 5 (8 Go)
OSRaspberry Pi OS Lite 64 bits (bookworm ou trixie)Pi OS trixie
Disque16 Go libresun SSD USB 3 ou NVMe plutôt que la carte SD
Réseauun réseau local avec mDNSune réservation DHCP pour le Pi

Raspberry Pi OS 32 bits n'est pas pris en charge.

Installer

Nommez le Pi pnex (Raspberry Pi Imager, hostname), démarrez-le, puis :

curl -fsSL https://raw.githubusercontent.com/Pnex/pnex-deploy/main/install.sh \
  | sudo bash -s -- --admin-user [email protected] --admin-password 'choose-a-strong-one'

L'installeur apporte Docker, génère tous les secrets, crée une autorité de certification privée et démarre la stack. Le profil raspi est choisi automatiquement : petits buffers PostgreSQL, caches OpenObserve plafonnés, un seul assemblage 360° à la fois, logs limités aux erreurs et bornés pour ménager la carte SD.

Ouvrez https://pnex.local/ et faites confiance à l'autorité de certification du serveur une fois par appareil client (le Quickstart explique comment).

Démo : un Pi neuf, de l'installation à la connexion

Enregistrée sur l'image officielle Raspberry Pi OS Lite 64 bits (trixie, 2026-09-15), démarrée dans QEMU comme une carte arm64 émulée : les images arm64 de 0.1.0-beta.2, le profil raspi, mDNS et la CA locale sont les vrais. L'émulation est plusieurs fois plus lente qu'un Pi : l'installation y a pris 40 minutes (quelques minutes sur un Pi 4 ou 5), d'où le --timeout 1800 de l'enregistrement ; sur un vrai Pi, la valeur par défaut suffit. La lecture est accélérée et le mot de passe admin masqué.

install.sh --version 0.1.0-beta.2 --admin-user [email protected] (TLS local, profil raspi)

Mot de passe admin et autorité de certification

Le mot de passe admin généré est affiché une seule fois à la fin de l'installation, et conservé dans le .env de l'installation. Le certificat du serveur est signé par une CA créée sur le Pi : notez son empreinte SHA-256, les apps vous demandent de la confirmer.

sudo grep PNEX_ADMIN_PASSWORD /opt/pnex/.env
sudo openssl x509 -in /opt/pnex/state/pki/ca.pem -noout -fingerprint -sha256
sudo pnexctl trust-help    # comment faire confiance à la CA, par système
pnexctl status, mot de passe admin (masqué), trust-help, empreinte de la CA

Faire confiance à la CA sur chaque client

Tant que la CA n'est pas reconnue, les navigateurs affichent une alerte de certificat (NET::ERR_CERT_AUTHORITY_INVALID) sur https://pnex.local/. Faites-lui confiance une fois par appareil client. La CA est servie sur https://pnex.local/api/v1/meta/ca (acceptez l'alerte une fois pour la télécharger) et reste sur le Pi dans /opt/pnex/state/pki/ca.pem.

ClientComment
Ubuntu / Debian desktopcurl -fsSL https://raw.githubusercontent.com/Pnex/pnex-deploy/main/client/setup-ubuntu.sh | bash -s -- --server pnex.local (magasin système, Chrome/Chromium, Firefox, accès série USB)
Windowsdouble-clic sur pnex-ca.crt → Installer le certificat → Ordinateur local → Autorités de certification racines de confiance, puis redémarrez le navigateur
macOSsudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain pnex-ca.crt
AndroidParamètres → Sécurité → Chiffrement et identifiants → Installer un certificat → Certificat CA. L'app PNeX épingle la CA à la première connexion.
iOSouvrez le .crt dans Safari → Profil téléchargé → Installer, puis Général → Informations → Réglages des certificats
Firefoxson propre magasin : Paramètres → Vie privée et sécurité → Certificats → Afficher → Autorités → Importer

Se connecter depuis un navigateur

Ouvrez https://pnex.local/ et connectez-vous avec l'email et le mot de passe admin : la première connexion crée votre profil et une organisation personnelle.

Page de connexion PNeX sur pnex.local

Formulaire de connexion (email, puis mot de passe)

Accueil après la première connexion

Trouver le serveur avec l'app desktop (scan LAN)

Les apps desktop et Android trouvent le serveur sans saisir son adresse. Au premier lancement, indiquez la plage réseau (192.168.1. sur la plupart des réseaux domestiques) et cliquez sur Scanner : chaque serveur PNeX de la plage est listé avec sa version.

Scan LAN : le Pi est trouvé et compatible

Avec les bêtas 0.1, saisissez https://pnex.local dans le champ d'adresse et cliquez sur Se connecter à ce serveur plutôt que sur le Se connecter du résultat de scan (la connexion est refusée sur l'adresse IP). L'app affiche ensuite l'empreinte de la CA : vérifiez qu'elle correspond à celle affichée sur le Pi.

Confirmation du certificat : comparez l'empreinte avec celle du Pi

Faire confiance et se connecter épingle la CA dans l'app, puis Se connecter à PNeX ouvre la page de connexion dans votre navigateur ; l'app est connectée à votre retour.

App desktop connectée

Quand pnex.local ne résout pas

Android avant 12 et les navigateurs en DNS-over-HTTPS ignorent mDNS. Donnez au Pi une réservation DHCP et relancez l'installeur avec un nom servi par le DNS de votre box, ou avec l'adresse IP (les passkeys sont alors indisponibles) :

curl -fsSL https://raw.githubusercontent.com/Pnex/pnex-deploy/main/install.sh \
  | sudo bash -s -- --domain pnex.home

Les autres options sont dans Noms et TLS.

Les devices flashés pour l'ancien nom doivent être reflashés.

Conseils

  • SSD : la base et la télémétrie écrivent en continu ; démarrez le Pi sur un SSD USB, ou au minimum utilisez une carte haute endurance et faites des sudo pnexctl backup réguliers.
  • Taille de page du Raspberry Pi 5 : si un conteneur redémarre en boucle avec Unsupported system page size, ajoutez kernel=kernel8.img dans /boot/firmware/config.txt et redémarrez.
  • Mises à jour : sudo pnexctl upgrade (les secrets sont conservés).

On this page