Search code examples
node.jshttpserverpm2

Running NodeJs http-server forever with PM2


My question is about running HTTP-server in combination with PM2.

The problem I face is that:

  1. HTTP-server requires as input a folder which is the root of the website and a port number to run the website on.
  2. PM2 doesn't recognize the HTTP-server command, even when HTTP-server is installed with the -g option.

So I tried the following (note the double dash which should pass the parameters to the HTTP-server script:

/node_modules/http-server/lib$ pm2 start http-server.js -- /home/unixuser/websiteroot -p8686

But it doesn't work.

I also tried:

http-server /home/unixuser/websiteroot -p8686

Which does work, but doesn't have the great support of pm2 ?

Any suggestions would be great, thanks!


Solution

  • You almost had it.

    Check where http-server is located by executing:

    $ which http-server
    

    You should get something like this /usr/bin/http-server

    Then cd to the directory you want to serve files from and execute:

    $ pm2 start /usr/bin/http-server --name my-file-server -- -p 8080 -d false
    

    --name my-file-server is optional, but -- is required to pass arguments through to the http-server command.