New install help on windows server with node, MSSQL

Hi, doing my first install, but its a bit diff. than what I’ve read on install help msgs.

I’m going to run Dev on a Mac,
but I don’t want local node/docker, etc.

I have a windows 2016 server, with MSSQL.
I have 2 diff. MSSQL databases, one for test and 1 for prod.

I’m wondering if I could install Wappler natively on the server (I access using RDP) and let it create the test/prod environs (still don’t want docker to be put there either) of node.

I installed Wappler dev on the mac, and I can connect to MSSQL because I opened a port on the server.
But it wants to use node locally.

I’m really stuck here.

And also, how will I setup the test/prod environments to the server? Will I call node on a diff. port # based on test or prod?
So node will have to listen on 2 ports and have 2 sets of routes, scripts, etc.?

Hope someone can point me to some install docs that explains this.
Please and thank you!
R

Hi Robert, welcome to Wappler!

I had a similar setup (Windows 2019 with MSSQL) for one of my NodeJS web app, which I later changed to a Docker with MSSQL setup. When I set it up as Node web app on a Windows Server, I had to install NodeJS on the server locally, with PM2 Node package to keep node server running/connection alive on the Windows server. This setup also required setting up Reverse Proxy on the Windows IIS web server to access NodeJS server port, generally 3000 (Apache and nginx may be better options to set up reverse proxies if you’re familiar with these).

To develop and run a Wappler project with NodeJS server model (on Mac), you will need to install NodeJS locally (unless Wappler itself is being installed with NodeJS, which I don’t think is the case). But you don’t need Docker locally to run your project, as Wappler will run a Node server internally on local port: 3000. As the published project is going to be run on a Windows server, you can run it locally without Docker and via IIS as mentioned above on the server.

To run a NodeJS project without Docker, create the project with this option Project Settings -> Targets -> Server Type: Wappler Local Server. To publish the project on a Windows Server, create another target and select Access Type: FTP under WEB with FTP credentials. This is the target that you will select to upload/publish files/assets etc. on the web server. Multiple targets can be setup for Dev, Staging, Prod etc. and each of these targets can point to different Remote Folders under the FTP connections.

When multiple targets are created, Wappler creates separate sets of database connection details (check here by showing hidden files, then under .wappler → targets → folders with target names) etc. to keep various information points separately. e.g. the database connection details are going to be different for Test & Prod MSSQL databases. So, when you select a specific target, you are also applying the DB connection details for that target. Similarly, when a target is published, it will contain its own set of config details.

My recommendation/approach for this would be to publish the websites by using subdomains for test sites and running IIS reverse proxies for each subdomain to the node assigned port 3000, e.g. test1.yoursite.com or test2.yoursite.com, rather than setting up different ports.

Hope this information will assist you in setting up your projects.

1 Like

Thanks very much for these answers. This exposed a flaw in my plan.
The windows server that I’m talking about will be the node and database server.
It does not have, nor will it ever, IIS.
Tomcat is there.
So I Guess I need to have a digital ocean server that will run Wappler and will make its connection requests to an IP address: port number on my database server. Note is running there just fine, and connecting to the database there locally.
I will have to get FTP running on that machine so they can automatically transfer the node files.

Does that make sense?
The Wappler source code needs to post to the web server/digital ocean, and yet the node JS files will be located on another server.
Does Wappler support uploading these types of files to two different locations?
R

Edit. Maybe all node is handled on the digital ocean server. And it just connects to my SQL server remotely. I haven’t investigated any threads on hosting or how powerful a server there needs to be to handle the node processing.

1 Like

As I understand from the setup you’re planning, the windows server will be just a database server and your node application (on Digital Ocean) will connect to it remotely.

The node application can reside on a server with Digital Ocean or similar providers. If you’re using Docker deployment on the remote server, then Wappler offers it natively. However, if you’re looking at a non-Docker deployment, then I believe you will have to use the FTP method to upload files to the remote location.

Multiple targets can be created to upload files / deploy project to different locations / remote servers. These targets can be setup with different methods of deployment, e.g. Docker Local, Docker Remote, Local File, FTP Remote etc.

1 Like

Thank you, I’m still trying to get my head around this framework.
With respect to docker, I was referring to not want docker set up on my Mac, but that’s really not that big of a deal.
And if I was using a no code tool like bubble or draftbit, then I would be using API endpoint access to my data. That’s what I already have set up on my windows server now.
So I thought I would come along with Wappler and just hit my existing endpoints.
But I see what you’re saying that Wappler generates the new endpoints as it’s “application “, so I’m happy with all of that being on a digital ocean server/droplet. That connects to my MSSQL server.
And if I need docker for that, that’s fine.
So I’m modifying my original plan, which was based on ignorance of wappler .

Glad to know that the information I provided has been helpful :slight_smile:

yep.
i bought a droplet and installed everything.
worked smoothly and deploys fine.
just going to abandon my home grown node routes and all seems fine.
found the help docs for custom domain naming and SSL - so will work towards that.
thx

1 Like