How to deploy Meteor Application on cPanel shared hosting - node.js

I am trying to deploy a meteor.js application on cPanel shared hosting. I don't have access to their cli.
I have followed this tutorial Host your Node.js app on Shared hosting. Go beyond localhost.
Now I am having hard time with a couple of things. I can't find any tutorial specific for meteor.js which is why I am facing some issues. Which are as follows
1. Without meteor Build
I uploaded the development version of my code. i.e the one with client,server,lib folders(without meteor build). The problem is that I am not sure about the "Application startup file".
I tried with "./client/main.js" and "./server/main.js" seperately but the site then returns 503.
2. With meteor Build
I then built my application and the build was generated with some errors. I then uploaded the tar.gz file and went with the main.js as Application Startup file. But now the cPanel is unable to detect package.json
Can someone please refer to a full guide of how to deploy a meteor app with cPanel.

Related

Express js route 404 error only in prod

I've been working on building a video conferencing application by following this tutorial.
It's a great tutorial, and everything worked awesome when developing. However, when pushing to production I had issues and I'm not well-versed enough with these tools to figure out what's wrong.
I changed my NODE_ENV=PROD in my .env file. Which should trigger the production express build located here. (tutorial github link)
Next, I ran npm run build as I wanted to build my bundle.js, etc in the dist/ directory. I copied the three files from dist/,
bundle.js
common.js
index.html
Into my web server's directory, but now when visiting /token route, I get a 404. This doesn't happen on DEV, so it has to be something with the way the express server.js is written.
Unfortunately, I'm having trouble deducing what the issue is.
Environment details - I'm using a hostgator account, and copying files into the cpanel file manager. I've hosted lot's of JS applications like this before, but usually if I'm using a back-end it's a django server, so this (express) is new for me.
It is because express server is not running in your production environment. As express is used to build web server listening on specific port. In your case you have deployed the static files but the server is not running.

Deploying React & Node.JS as a service Linux Ubuntu 14

Have a Node.Js API and a React app semi finished. Working on deploying to get the development cycle churning. Currently using npm start for viewing the react server during development. Same for the Node API. When deployed to AWS EC2 I am building in the most basic fashion, npm build pushing to a 'release' folder.
Once the deploy folder is up, I can go into it and run serve -s release
This gets me up and running. I can do the same for api server.
To get the apps running as a service, for the api, I can see how I can build a systemd process and run that with no issue.
For the react app, is there an easy way to run that server as a system... I'm new to this stack, so I might be confused. I have read in some places that once you've built your react app that you need to serve it out via apache or nginx? (e.g. in development it hosts itself, in production, you need to serve it) Is that sort of the general idea - build with local hosting, deploy with a production webhost?
Help appreciated. This is my last major issue before I can get Jenkins running a nice pipeline for deployment. Thanks!
Since you are already running a NodeJs server, It would be a good idea to host your ReactJs App in the NodeJs App itself.
You can pipline in the Jenkins to Build the ReactJs App first and the move it to static serving folder in the server and then you just need to deploy the NodeJs app in which ever environment that you want.

Has anyone created a Node.js, Angular2 application running under IISNode?

We have created an application that runs on node.js using Angular2 but you have not launch it with "npm" which uses the lite-server. However, we are being told that we much run under IIS but the problem is npm loads all of the packages for you correctly, IIS and IISNode know nothing about all these packages we have downloaded via "npm". We have yet to see anyone who has ever created an Angular2 or even Angular application that runs under IIS using IISNode.
Does anyone know how we would have it load all the modules correctly?
I answered Mike's question within the issue he opened on the IISNode Repo on Github. Here are the excerpts from that issue answer.
Angular2, as far as I know, has nothing to do with IISNode and shouldn't present any issues with running your app in an IISNode environment.
IISNode provides a way to run node.exe on an IIS Server instead of using a process manager like pm2 or forever. You can run an Angular2 app hosted with a Node.js/Express backend easily by just following any examples for getting an Express server running in IISNode. Take a look at this tutorial I wrote on StackOverflow for getting an Express app running in IIS with IISNode. Once you've got your Express app running its just a matter of getting your Angular2 transpiled to a browser compatible JS version and serving that.
I was able to successfully run the Angular2 Quickstart in IISNode just now (I know this isn't a full blown app) and I also know I wouldn't have made my node_modules static but for the purpose of the exercise I have.
Here is the repo it works perfectly and loaded up just fine for me.
Just clone the repo, place on your IIS box and do npm i and you shou>ld be good to go. Make sure the app is reachable at root otherwise you'll need to do some additional work. Again I know this is simplistic but it is a demonstration that IISNode has no problem with loading the essentials of Angular2.

MEAN.Js application not work with production environment

I have created application with MEAN.js and it works well when I set NODE_ENV to development. but when I change this to production and run the application than there is only blank page in the browser.
I searched for a long I found that I have to minify css & Js files using grunt.
so I do as below:
grunt build (which create 2 files in dist)
and than I run application but still I get the same result.
Also I want to this application on openshift but for grunt I have to download all Developer Dependencies and if I load all dependencies in openshift than it start giving error of disk space as in free account I have Inode limit of 80K only. so is there any other way to publish by application on openshift without loading all DevDependencies.?
Thanks

With Windows Azure, can I deploy a node.js server using Dropbox?

There are several tutorials on Azure showing how to deploy a node.js server using git. Azure has a nifty feature where you can link a Dropbox folder to an Azure web site for very simple deployments. Works awesome for websites, but I was hoping it might work for node.js deployments as well.
It doesn't seem to work- the deployment process goes fine, but navigating to the URL of the node.js deployment produces this error:
The page cannot be displayed because an internal server error has occurred.
Anyone know if it's possible to deploy a node.js server to Windows Azure via Dropbox?
Many thanks-
UPDATE-
Just ran through the deployment logs and found this line:
The package.json file is not present.
The node.js application will run with the default node.js version 0.6.20.
Perhaps that it explains my problem?
from the console and folder type "npm init" to generate package.json

Resources