STARLAB(1) Manuel des projets STARLAB(1)
[peter-mackay(1)] [github]

NOM

starlab — plateforme de déploiement et de gestion de logiciels, auto-hébergée, écrite en Go. Projet personnel de Peter Mackay.

SYNOPSIS

┌──────────────┐   jeton    ┌──────────────────┐   API    ┌──────────────┐
│ Self-service │ ─────────► │  Agent (Go)      │ ◄──────► │ Serveur      │
│ (catalogue)  │            │  sur le poste    │          │ + dashboard  │
└──────────────┘            └──────────────────┘          └──────┬───────┘
                                                                 │
                                                          ┌──────┴───────┐
                                                          │ Client iOS   │
                                                          └──────────────┘

Trois clients (agent, self-service, iOS) autour d'un serveur central. 85+ paquets au catalogue. Aucune dépendance à un service tiers.

DESCRIPTION

STARLAB enregistre des postes, leur présente un catalogue d'applications en self-service et pilote les installations à distance — une logique proche d'un outil de gestion de parc (MDM) léger, que j'ai voulu simple, lisible et hébergé chez moi.

Le cœur du projet est un agent écrit en Go, compilé pour plusieurs systèmes, qui dialogue avec un serveur central. C'est mon principal terrain de programmation appliquée : conception d'une API, communication client/serveur, gestion de jetons, packaging multiplateforme. C'est aussi ce qui m'a amené vers la Licence pro ADSILLH — administrer, mais aussi développer.

Le serveur tournait sur mon VPS, perdu en septembre 2026 ; il sera remonté avec le nouveau. Le code, lui, est en sécurité — voir peter-mackay(1) § BOGUES.

ARCHITECTURE

serveur
API et tableau de bord d'administration. Gère les machines, les jetons d'enregistrement et le catalogue. Exposé derrière Nginx Proxy Manager avec TLS.
agent
Binaire Go installé sur le poste. S'enregistre avec un jeton, communique avec le serveur, exécute les déploiements et remonte leur état.
self-service
Application qui ouvre le catalogue dans le navigateur : l'utilisateur saisit son jeton et installe ce dont il a besoin, sans passer par un administrateur.
client iOS
Application compagnon (Xcode, Swift) pour suivre les machines et les déploiements depuis un téléphone.

FONCTIONNEMENT

  1. Enregistrement. Un jeton est généré depuis le tableau de bord (Machines → Self-Service) et remis au poste.
  2. Connexion. L'agent authentifie la machine auprès du serveur et la rattache au parc.
  3. Catalogue. Le self-service affiche les paquets disponibles dans le navigateur.
  4. Déploiement. L'utilisateur installe en un clic ; l'agent exécute et remonte l'état au serveur.

FONCTIONNALITÉS

  • Catalogue self-service de plus de 85 paquets, installables sans intervention d'un administrateur.
  • Rattachement des machines par jetons d'enregistrement.
  • Inventaire du parc et suivi de l'état des déploiements depuis le tableau de bord.
  • Agent compilé pour plusieurs systèmes à partir d'une base de code Go unique.
  • Entièrement auto-hébergé : aucune dépendance à un service tiers.
  • Client mobile iOS pour le suivi à distance.

FICHIERS stack

agent/
Go, binaire compilé multiplateforme.
server/
Backend et API, tableau de bord ; TLS via Nginx Proxy Manager.
selfservice/
Binaire et interface catalogue dans le navigateur.
ios/
Application Xcode / Swift.
hébergement
Infrastructure peter-cloud.com — VPS en reconstruction et lab Proxmox, Cloudflare en frontal.

VOIR AUSSI

AUTEUR

Peter Mackay — pit.mackay@gmail.com.