From 5b05be70d84791d8e553154fe2dd4c22c84502da Mon Sep 17 00:00:00 2001 From: Michael Hettwer Date: Sat, 14 Mar 2026 17:54:42 +0100 Subject: [PATCH] Update readme --- readme.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 1022dda..860caa6 100644 --- a/readme.md +++ b/readme.md @@ -1,2 +1,81 @@ -# NodeJS +# NodeJS Ansible Role +Installs and configures Node.js on Debian systems. Supports installation via Nodesource repository or nvm (Node Version Manager). Also includes optional PM2, npm modules, and Composer installation. + +## Requirements + +- Ansible 2.1+ +- Debian 10, 11, or 12 + +## Role Variables + +| Variable | Default | Description | +|----------|---------|-------------| +| `nodejs_version` | `20.x` | Node.js version to install (LTS recommended) | +| `nodejs_nvm` | `false` | Install Node.js via nvm instead of system package | +| `nodejs_nvm_version` | `20.0.0` | Node.js version to install via nvm | +| `nodejs_user` | `root` | User to install Node.js and npm packages for | +| `npm_modules` | `[]` | List of additional npm modules to install | +| `composer` | `false` | Install Composer (PHP dependency manager) | + +## Dependencies + +None + +## Example Playbook + +### Basic Installation (System Node.js) + +```yaml +- hosts: servers + roles: + - lsa.nodejs +``` + +### Install Node.js via nvm + +```yaml +- hosts: servers + roles: + - role: lsa.nodejs + nodejs_nvm: true + nodejs_nvm_version: 20.0.0 + nodejs_user: deploy +``` + +### Install with Additional npm Modules + +```yaml +- hosts: servers + roles: + - role: lsa.nodejs + nodejs_user: deploy + npm_modules: + - name: typescript + - name: nodemon + - name: pm2 + enable: true +``` + +### Install with Composer + +```yaml +- hosts: servers + roles: + - role: lsa.nodejs + composer: true +``` + +## License + +Apache-2.0 + +## Author + +Michael Hettwer - Linux-Server-Admin.com S.R.O. + +## Notes + +- When `nodejs_nvm` is enabled, nvm v0.40.4 is installed for the specified user +- PM2 is always installed globally regardless of other settings +- The `become_flags: -i` is used to ensure interactive shell execution for proper profile loading