# 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