You are here
Node.js
Asynchronous Javascript Framework
Node.js is a cross-platform Javascript runtime environment built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, especially for server-side and networking applications. npm, Nodes package ecosystem is the largest ecosystem of open source libraries in the world.
Run from browser
V 18.0
V 17.1
GitHub
This appliance includes all the standard features in TurnKey Core, and on top of that:
- Node.js configurations:
- n Node Version Manager used to install the latest stable version of
Node. n supports updating Node to the latest version and switching between
multiple older versions:
# install latest stable node n stable # show all installable versions n list # install specific version n <version>
- Support for installing npm packages globally more securely
without root or sudo:
su node npm install -g package
- systemd PM2 service at /etc/systemd/system/pm2-node.service runs
node apps on boot.
pm2 is a production process manager that helps keep your node apps running, supports clustering and makes it easy to manage node apps:
# su node $ pm2 start --max-memory-restart 500M /opt/yourapp/app.js $ pm2 stop tklweb-cp $ pm2 list
- Default Nginx configuration template:
server { listen 0.0.0.0:80 default_server; set $nodeapp_port 8000; include /etc/nginx/include/nodejs-proxy; }
- npm bash tab-completion:
$ npm in<tab> info init install
- hundreds of node example apps:
$ ls /opt/node-examples express_example node-by-example nodejsbook.io.examples practicalnode
- Default web page / control panel at /opt/tklweb-cp is itself an example Node.js app built with express and jade templating.
- n Node Version Manager used to install the latest stable version of
Node. n supports updating Node to the latest version and switching between
multiple older versions:
- Bundled globally-installed Node.js packages:
- PM2: production process manager. Configured to start on boot as a systemd service.
- forever: a simple CLI tool for ensuring a node app runs continuously. Supports watching sources for changes and restarting app.
- node-inspector: a powerful debugger modeled after Chrome devtools.
- grunt: task runner that automates repetitive tasks like minifcation, compilation, unit testing and linting.
- bower: package manager for client-side browser dependencies
- nsp: Node Security Project package auditor. Audits dependencies
for known security vulnerabilities:
cd /opt/yournodeapp nsp audit-package
- Postfix MTA (bound to localhost) to allow sending of email (e.g., password recovery).
- Webmin modules for configuring Postfix.
Usage details & Logging in for Administration
No default passwords: For security reasons there are no default passwords. All passwords are set at system initialization time.
Ignore SSL browser warning: browsers don't like self-signed SSL certificates, but this is the only kind that can be generated automatically without paying a commercial Certificate Authority.
Web - point your browser at either:
- http://12.34.56.789/ - not encrypted so no browser warning
- https://12.34.56.789/ - encrypted with self-signed SSL certificate
Username for OS system administration:
Login as root except on AWS marketplace which uses username admin.
- Point your browser to:
- https://12.34.56.789:12321/ - System control panel
- https://12.34.56.789:12320/ - Web based command line terminal
- Login with SSH client:
ssh root@12.34.56.789
Special case for AWS marketplace:
ssh admin@12.34.56.789
* Replace 12.34.56.789 with a valid IP or hostname.