TL;DR : voici un README prêt à publier pour ton script d’installation Next.js (NEOMNIA ACSS), incluant le lancement “RAW” direct depuis GitHub pour la branche install-next-project.
- Titre + résumé.
- One-liner exécution RAW (curl / wget).
- Fonctionnalités.
- Prérequis.
- Ce que fait le script (étapes).
- Saisie des versions Node & Next.
- Permissions & sécurité (groupe, ACL, setgid).
- Utilisation détaillée + exemples.
- Post-install (dev, build, prod).
- Désinstallation.
- Dépannage (FAQ rapide).
- Licence & attributions.
# NEOMNIA ACSS — Installateur Next.js sous /opt
> Installe un projet **Next.js** dans **/opt/<projet>**, crée un **groupe** homonyme avec **droits complets** (ACL + setgid), et **journalise** chaque ligne avec le préfixe `[ NEOMNIA ]`. Sélection guidée des **versions Node** (via **nvm**) et **Next**.
---
## 🚀 Lancement “RAW” (exécution directe)
> Branche : `install-next-project` — dépôt : `charlesvdd/administrator-neomnia`
**curl**
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/charlesvdd/administrator-neomnia/install-next-project/next-project)wget
bash <(wget -qO- https://raw.githubusercontent.com/charlesvdd/administrator-neomnia/install-next-project/next-project)Astuce : ajoute
-Spour un mode “strict” surcurl/wgetsi tu veux échouer plus fort sur HTTP.
- Création d’un projet Next.js (App Router, TS, Tailwind, ESLint, Turbopack) dans
/opt/<projet>. - Demande interactive du nom de projet → normalisation (
kebab-case). - Node via nvm :
latest-lts(défaut), version précise (22.10.0…), ouskip(utiliser Node existant). - Next :
latest(défaut) ou version précise (16.x.y). - Groupe Unix homonyme au projet, setgid sur les dossiers, ACL par défaut si
setfaclprésent. - Logs alignés et préfixés
[ NEOMNIA ]+ bannières “NEOMNIA ACSS”.
- Système : Ubuntu/Debian-like (root ou
sudorequis). - Réseau sortant vers GitHub (pour nvm et create-next-app).
- Outils :
bash,sed,curl/wget,setfacl(optionnel mais recommandé).
-
Vérifie
root/sudo. -
Demande nom de projet → définit
PROJECT_DIR=/opt/<projet>etGROUP_NAME=<projet>. -
Node : selon ton choix
latest-ltsvia nvm (installé auto si absent)- version précise via nvm
skip(exige Node ≥ 20.9)
-
Vérifie
npx. -
Next :
latestou version précise. -
Crée groupe
<projet>et dossier/opt/<projet>(ownerroot:<groupe>,chmod 2775). -
Scaffold
create-next-app@latestdans/opt/<projet>. -
Si version de Next spécifique :
npm i -E next@<version>. -
Applique permissions :
chown -R root:<groupe>,chmod -R g+rwX,setgidsur dossiers, ACL par défaut si dispo. -
Affiche récap + commandes utiles.
-
Node
latest-lts(défaut) : installe et active la dernière LTS via nvm.22.10.0(exemple) : installe/active cette version précise.skip: n’installe pas Node (tu dois déjà avoir Node ≥ 20.9 + npx).
-
Next
latest(défaut)16.1.3(exemple) : le script “pin”next@16.1.3après le scaffold.
-
Groupe
<projet>créé si absent. -
Dossier
/opt/<projet>:chmod 2775→ setgid pour que tous les nouveaux fichiers héritent du groupe. -
ACL (si
setfaclprésent) : règles par défautg:<projet>:rwX→ droits de groupe persistants. -
Ajout d’un utilisateur au groupe :
sudo usermod -aG <projet> <user> && echo "Reconnexion requise pour prendre effet"
# Méthode RAW recommandée
bash <(curl -fsSL https://raw.githubusercontent.com/charlesvdd/administrator-neomnia/install-next-project/next-project)Tu répondras aux invites :
- Nom du projet (ex.
mon-app→/opt/mon-app+ groupemon-app) - Version Node (
latest-lts/22.10.0/skip) - Version Next (
latest/16.1.3)
# Cloner (optionnel)
git clone -b install-next-project https://github.com/charlesvdd/administrator-neomnia.git
cd administrator-neomnia
chmod +x next-project
sudo ./next-project-
Dev
cd /opt/<projet> npm run dev
-
Build + Start (prod simple)
cd /opt/<projet> npm run build npm run start -- -p 3000
Besoin d’un service systemd (PM2 ou
node) ? Voir “Aller plus loin”.
sudo systemctl stop <service> 2>/dev/null || true
sudo rm -rf /opt/<projet>
# Optionnel : supprimer le groupe (si plus utilisé)
sudo groupdel <projet> 2>/dev/null || true-
Node non trouvé / version < 20.9 → Relance le script et choisis
latest-lts(installe/active via nvm). -
setfaclabsent → Les ACL ne seront pas posées (les droitschmod + setgidrestent en place). → Installer :sudo apt-get install acl. -
/opt/<projet>existe déjà → Le script s’arrête pour éviter l’écrasement. Supprime ou choisis un autre nom.
- Basé sur le dépôt administrator-neomnia (branche
install-next-project). - Exécution RAW et structure référencées depuis GitHub.
- Licence du dépôt : MIT.
> Source du dépôt/branche pour l’exécution RAW : :contentReference[oaicite:0]{index=0}
**a.** Tu veux que je **génère le `README.md` dans le repo** (avec un bloc “systemd/PM2” prêt à l’emploi) ?
**b.** On ajoute une **section sécurité** (audit sudoers, `umask`, `.nvmrc`, `.npmrc` lock) + **exemples pnpm/yarn/bun** ?
::contentReference[oaicite:1]{index=1}