.. _nodejs:
.. sidebar:: Logo
.. image:: _static/images/logo_nodejs.png
:align: center
#######
Node.js
#######
Introduction
============
.. warning:: Node.js scripts belong in your :ref:`home`, **not** in your :ref:`docroot`.
`Node.js `_ is a server-side `JavaScript `_ interpreter. Node.js is commonly used to develop server-based applications, i.e. the scripts bind to a network port.
----
Versions
========
Release types
-------------
We provide different releases and apply security updates on a regular basis. Currently, these Node.js versions are available: 6, 8, 9 and 10.
Standard version
----------------
If you don't select a certain version, our default will be used. We decided to default to version 8, which is considered to be stable by the developers.
Show available versions
-----------------------
Use ``uberspace tools version list node`` to show all selectable versions:
.. code-block:: bash
[eliza@dolittle ~]$ uberspace tools version list node
- 6
- 8
- 9
- 10
[eliza@dolittle ~]$
.. _node-change-version:
Change version
--------------
You can select the Node.js version with ``uberspace tools version use node ``. You can choose between release branches:
.. code-block:: bash
[eliza@dolittle ~]$ uberspace tools version use node 6
Selected node version 6
The new configuration is adapted immediately. Patch updates will be applied automatically.
[eliza@dolittle ~]$
.. code-block:: bash
[eliza@dolittle ~]$ uberspace tools version use node 10
Selected node version 10
The new configuration is adapted immediately. Patch updates will be applied automatically.
[eliza@dolittle ~]$
Selected version
----------------
You can check the selected version by executing ``uberspace tools version show node`` on the command line:
.. code-block:: bash
[eliza@dolittle ~]$ uberspace tools version show node
Using 'node' version: '8
[eliza@dolittle ~]$
Update policy
-------------
We update all versions on a regular basis. Once the `support `_ ends, the branch reaches its end of life (EOL), is no longer supported and will be removed from our servers. Even-numbered versions are long-term support (LTS) versions.
+--------+-------------------------+------------------+
| Branch | State | Supported Until |
+========+=========================+==================+
| 6 | Maintenance LTS | April 2019 |
+--------+-------------------------+------------------+
| 8 | LTS | December 2019 |
+--------+-------------------------+------------------+
| 9 | EOL | June 2018 |
+--------+-------------------------+------------------+
| 10 | LTS | April 2021 |
+--------+-------------------------+------------------+
----
Connection to webserver
=======================
.. include:: includes/web-backend.rst
----
.. _npm:
npm
===
``npm``, or the `node package manager`, is used to install and manage additional packages. We have preconfigured ``npm`` to install packages to your :ref:`home` when using the global (``-g``) option.
----
Popular software
================
+--------------------------------------------------------------------+----------------------------+
| Name | Kind |
+====================================================================+============================+
| `Ghost `_ | Blog |
+--------------------------------------------------------------------+----------------------------+
| `Etherpad Lite `_ | collaborative writing tool |
+--------------------------------------------------------------------+----------------------------+