+
mocha
rb
+
+
pytest
+
+
+
+
keras
+
+
+
*
rs
puppet
+
+
+
jasmine
+
+
+
+
ansible
echo
+
elementary
html
+
+
webstorm
+
pinecone
gitlab
+
erlang
+
delphi
&
+
lit
+
fiber
k8s
+
+
choo
git
+
html
laravel
+
aurelia
+
webpack
+
+
+
raspbian
+
influxdb
perl
+
+
nuxt
scala
+
next
graphql
c++
ionic
phpstorm
composer
notepad++
+
+
+
+
+
+
quarkus
+
>=
+
+
docker
Back to Blog
How to install Node.js on Alpine Linux
Linux Node.js CodeLab

How to install Node.js on Alpine Linux

Published Nov 14, 2023

Unlock Node.js on Alpine Linux effortlessly! Upgrade your toolbox, check versions with simple commands, and start coding swiftly on Alpine Linux!

4 min read
0 views
Table of Contents

Introduction

Node.js is a powerful JavaScript runtime built on Chrome’s V8 JavaScript engine that allows you to run JavaScript on the server side. Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox. This combination provides an excellent platform for modern web development and containerized applications.

Prerequisites

Before installing Node.js, ensure you have:

  • Administrative access to your Alpine Linux system
  • An active internet connection
  • Basic familiarity with the command line

Getting Alpine Linux Ready

  1. Update the package list to ensure you have the latest available packages:
apk update
  1. Add the community repository if not already enabled:
echo "http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community" >> /etc/apk/repositories
  1. Update the package list again:
apk update

Installing Node.js

Install the Long Term Support version of Node.js along with npm:

apk add nodejs npm

This installs the stable, production-ready version of Node.js that receives long-term support.

Method 2: Install Node.js Current Version

For the latest features, install the current version:

apk add nodejs-current npm

Method 3: Install Specific Version with nvm

For more version control, you can use nvm (Node Version Manager):

  1. Install curl and bash:
apk add curl bash
  1. Install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
  1. Reload your shell:
source ~/.bashrc
  1. Install and use specific Node.js version:
nvm install 18.17.0
nvm use 18.17.0

Verifying Installation

Check Node.js Version

node -v

Expected output: v18.17.0 (or your installed version)

Check npm Version

npm -v

Expected output: 9.6.7 (or corresponding npm version)

Test Node.js Installation

Create a simple test file:

echo 'console.log("Hello from Node.js on Alpine Linux!");' > test.js

Run the test:

node test.js

You should see: Hello from Node.js on Alpine Linux!

Installing Global Packages

Update npm to the latest version:

npm install -g npm@latest

Install commonly used global packages:

npm install -g nodemon
npm install -g yarn
npm install -g pm2

Setting Up a Development Environment

Create a Project Directory

mkdir ~/my-node-project
cd ~/my-node-project

Initialize a New Node.js Project

npm init -y

Install Development Dependencies

npm install --save-dev eslint prettier

Create a Simple Express Application

npm install express

Create app.js:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World from Alpine Linux!');
});

app.listen(port, () => {
  console.log(`App listening at http://localhost:${port}`);
});

Run your application:

node app.js

Troubleshooting

Permission Issues

If you encounter permission issues with global packages:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile

Memory Issues

For memory-constrained environments, limit Node.js memory usage:

export NODE_OPTIONS="--max-old-space-size=512"

Package Installation Errors

Clear npm cache if you encounter package installation issues:

npm cache clean --force

Performance Optimization

Enable Production Mode

Set NODE_ENV for production:

export NODE_ENV=production

Use Alpine-specific Optimizations

Install alpine-specific packages when available:

apk add --no-cache python3 make g++

Security Considerations

  1. Regular Updates: Keep Node.js and npm updated:
apk upgrade nodejs npm
  1. Audit Dependencies: Regularly audit your project dependencies:
npm audit
npm audit fix
  1. Use Package-lock: Always commit package-lock.json to ensure consistent installs.

Uninstalling Node.js

If you need to remove Node.js:

apk del nodejs npm

To remove all global packages:

rm -rf ~/.npm

Conclusion

You have successfully installed Node.js on Alpine Linux! This lightweight combination provides an excellent foundation for building scalable web applications, APIs, and microservices. Alpine’s minimal footprint makes it perfect for containerized Node.js applications, while Node.js provides the runtime for modern JavaScript development.

Whether you’re building web servers, REST APIs, or real-time applications, your Alpine Linux system is now equipped with one of the most popular JavaScript runtimes. Remember to keep your installation updated and follow security best practices for production deployments.