Skip to content

Cornelius portable : Cornelius sur le téléphone, partout, sans l'ouvrir à Internet - #55

Open
LucQuebec wants to merge 1 commit into
lfpoulain:betafrom
LucQuebec:proposition/cornelius-portable
Open

LucQuebec wants to merge 1 commit into
lfpoulain:betafrom
LucQuebec:proposition/cornelius-portable

Conversation

@LucQuebec

Copy link
Copy Markdown

Proposée dans #54.

Ce que fait la demande. Une carte « Cornelius portable » dans Clés et accès, sous « Accès depuis le réseau local ». Elle pilote un tailscaled voisin par son interface locale (socket Unix partagé, CORNELIUS_TAILSCALE_SOCKET) :

  1. Connecter ce serveur à Tailscale : lien de connexion au compte et son code QR ; la carte suit l'état seule.
  2. Ouvrir Cornelius portable : publication sur le réseau privé seulement (serve, jamais funnel), HTTPS sur le port 443, certificat reconnu par les navigateurs.
  3. Ajouter un téléphone : codes QR de l'application Tailscale et de l'adresse de Cornelius ; liste des appareils du réseau privé.
  4. Déconnecter, avec confirmation.

Le nom privé de Cornelius est accepté par le contrôle des noms d'hôte sans CORNELIUS_ALLOWED_HOSTS. Sans CORNELIUS_TAILSCALE_SOCKET, rien ne change : la carte n'apparaît pas et aucune requête n'est faite.

Fichiers.

  • server/tailscale.ts : client de l'interface locale (état, connexion, publication, déconnexion), sans dépendance ; les autres publications du même tailscaled sont conservées.
  • shared/portable.ts : types partagés.
  • server/app.ts : routes /api/admin/portable* (administrateur), nom privé accepté, état suivi toutes les 30 s.
  • server/config.ts : CORNELIUS_TAILSCALE_SOCKET, CORNELIUS_TAILSCALE_TARGET.
  • web/components/admin/PortableAccess.tsx, web/api.ts, web/components/Admin.tsx : la carte.
  • docs/fonctionnalites/cornelius-portable.md : parcours, sécurité, compose du voisin Tailscale (réseau en espace utilisateur, aucune clé à saisir) ; liens depuis la référence de configuration, le sommaire et la page du réseau local ; CHANGELOG.
  • Dépendance ajoutée : qrcode-generator 1.4.4 (MIT, sans dépendance), pour les codes QR ; THIRD_PARTY_NOTICES.md regénéré.

Tests. tests/portable.test.ts : un faux tailscaled sur un socket ; absence de socket, tailscaled injoignable, connexion, publication (jamais publique, autres publications gardées), configuration null d'un tailscaled neuf, appareils, déconnexion. npm test : 808 sur 808 ; npm run build passe.

Essai réel. Sur une installation Docker vierge (données vides, Tailscale vierge) : parcours fait uniquement depuis l'administration, jusqu'à Cornelius installé comme application sur un téléphone Android. Deux défauts trouvés et corrigés : la configuration null d'un tailscaled neuf, et le nom d'hôte du conteneur Tailscale identique au service Cornelius (erreur 502), expliqué dans la documentation.

Non fait. Le raccordement à l'extension Tailscale de Home Assistant.

Luc, Jokobee™

…ir à Internet

Une carte de l'administration (Clés et accès) pilote un tailscaled voisin par
son interface locale (CORNELIUS_TAILSCALE_SOCKET) : lien de connexion au compte
et son code QR, publication sur le réseau privé (serve, jamais funnel) avec un
certificat reconnu par les navigateurs, codes QR pour ajouter un téléphone,
liste des appareils, déconnexion avec confirmation. Le nom privé de Cornelius
est accepté sans CORNELIUS_ALLOWED_HOSTS. Sans voisin Tailscale, rien ne change.

Essayé sur une installation vierge (Docker) jusqu'à l'application installée
sur un téléphone Android. Documentation : docs/fonctionnalites/cornelius-portable.md,
avec le compose du voisin Tailscale. Dépendance ajoutée : qrcode-generator 1.4.4
(MIT, sans dépendance).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant