Archive: Will NSIS meet my requirements?


Will NSIS meet my requirements?
We have a web application that we need to make easier to deploy for our clients.
The current workflow for a fresh install:

- Ensure there is a JRE on machine (32 or 64bit)
- Install Tomcat (32 or 64bit)
- Create a database in Oracle or SQL Server (we provide SQL scripts for this)
- Write some values into our settings table, like hostname. (Can get user to verify these, but dont want user to have to tap them in.
- Create a connections properties file (we provide a mini JAR app to help with this) that will sit under Tomcat.
- We have two WAR files for our actual web application. These can be split across two machines, but for now, lets assume they both get dumped under Tomcat.
- Start Tomcat so that it deploys the WARs

This is a tedious process for our users, and I want to encapsulate it into an installer and have been looking at doing this in NSIS.

I am trying to find out the limitations of NSIS.
- Would I be able to bundle another installer (the Tomcat install) into NSIS as well?
- As long as the user executing the installer had the right db permissions (can catch it if they are not?) will running SQL scripts from NSIS be an issue?


Our web app has a new release every 3-4mths, and upgrading involves running more scripts, and dropping in new WARs.
Further down the line, I will want more from the installer. Like the option to detect what version they are running, and then rolling them to newer versions.

I will also need to later focus on creating a tool that lets you take one environment and migrate it to another, but this might not be suited to NSIS.

Just wanted to get some feedback from the more experiennced users out there.
I do not want to get half way in, and then realise it will not be possible.

Thanks in advance.


Yes, NSIS is suitable for all that. Theoretically, anything possible in Windows is possible in NSIS. More specifically, anything possible from the command prompt, and anything possible using win32 API, is without a doubt possible from NSIS.

To interface with external applications such as SQL and Tomcat, you'll need some commandline tool (or a plugin). For SQL this shouldn't be a problem. Wikipedia tells me Tomcat can be configured by editing xml files, or by using management tools etc. So shouldn't be a problem there, either. But if you want to be sure, I suggest you start there: Try to find a way to do what you need to do from the command prompt. When you have that, implementing it in NSIS is easy.


Simple answer: YES!
NSIS can do anything - by itself, by command line, by external plugins, by scripts/libraries...
It is not so limited as other "professional" installation systems.


The answer should be a BIG YES with its opensource power.


Thanks all. Ill crack on!