Files
raven/docs/8.0/ayanova/docs/ops-install-windows-iis.md
2022-02-15 23:57:48 +00:00

20 KiB

AyaNova installation - Windows IIS hosted

Please read through all the instructions below before proceeding with installation to be sure everything is available and ready.

These instructions require a working knowledge of Windows server adminstration tasks.

This installer includes the AyaNova server application only and depends on an IIS server, a PostgreSQL server be installed or accessible and the .net Core framework to be installed in the correct order (detailed below).

This type of installation is suitable for both outside internet access and inside the local network.

No installation is required at the user end to access the AyaNova web app with a supported browser.

AyaNova web app system requirements

Any modern browser (not Internet Explorer) with Javascript enabled on any device with a minimum display width of 360 pixels.

AyaNova server system requirements

Security and Network requirements to access IIS from the internet

In order to access the AyaNova server through IIS from the internet a static IP address is required, optionally a registered domain name as well as appropriate configuration of IIS and the router to allow secure, incoming connections to the IIS server from the internet.

The following instructions are provided to get IIS running with AyaNova inside your network so it's ready for the next steps of exposing it to the outside world which will require a domain name, DNS configuration as well as site and equipment specific configuration best done by an experienced network professional and are beyond the scope of this manual or the support we can provide.

If a networking technician has a question about AyaNova itself that is not answered in this manual contact us: support@ayanova.com.

Folders

  • Program files : By default (and recommended) AyaNova server program files will be installed to C:\Program Files\ayanova folder
  • Data files: All data aside from attachment files is stored in the PostgreSQL database. By default AyaNova will store attachment files, logs and backup files in the %ProgramData% folder under ayanova which on most computers will be located at C:\ProgramData\ayanova. Each folder location can be changed via configuration.

Installation procedure

Follow the steps below in the order they are presented here.

Enable IIS Internet Information Server

If you already have IIS enabled read through and verify the following instructions to verify it is ready for AyaNova.

The steps to enable IIS are different depending on the type of Windows in use, for server Windows systems use the next section, for non server versions of Windows skip to the next section below.

Enable IIS on server Windows versions

The following images are taken from a Windows Server 2019 operating system but the procedure is very similar for any modern version of Windows server.

Use the Add Roles and Features wizard from the Manage menu or the link in Server Manager, check the box for Web Server (IIS):

Server manager

Select IIS Role

If IIS is being enabled for the first time you can accept all remaining defaults to conclusion.

If IIS was already enabled, double check the default settings for Role Services for IIS are enabled:

IIS Role Services

Reboot is not required at this point, continue on to the PostgreSQL installation below.

Enable IIS on non-server Windows versions

Open the Apps & Features settings page from the Apps shortcut in Settings:

Apps

In Apps & Features select the "Programs and Features" link under "Related settings" in the upper right corner of the Apps & Features page:

Apps

In "Programs and Features" dialog box select "Turn Windows features on or off" link:

Apps

Select the IIS Feature:

Select IIS Feature

If IIS is being enabled for the first time you can accept the defaults. If IIS was already enabled, double check the defaults for IIS are enabled.

Select the OK button and Windows will enable IIS. Reboot is not required at this point, continue on to the PostgreSQL installation below.

PostgreSQL server

AyaNova requires access to a PostgreSQL database server version 12 or newer. It should be up and running before AyaNova is installed. If you do not have a PostgreSQL server already then it must be installed to a location visible to the AyaNova server (same computer or a local computer on the same network). PostgreSQL is open source and free to use, if you need to install PostgreSQL follow this installation guide https://www.postgresqltutorial.com/install-postgresql/

Password

If you are installing PostgreSQL you will be prompted to provide a password to access it. Be sure to make a note of this password as AyaNova will need it to be specified later in the AYANOVA_DB_CONNECTION configuration setting after installing the AyaNova server.

ASP.NET Core Runtime

IIS MUST be installed before the ASP.NET Core runtime. AyaNova will not work if IIS is installed after the ASP.NET Core runtime.

If IIS is not already enabled and running do not proceed until it is.

The ASP.NET Core runtime will see IIS and install appropriate components but only if IIS is present during the ASP.NET Core runtime installation.

AyaNova is built upon the ASP.NET Core runtime version 6.0 or newer and it should be present before AyaNova is installed. Download the runtime here https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer.

AyaNova server installation

Download and run the AyaNova network installer: https://www.ayanova.com/download/ayanova-windows-x64-lan-setup.exe. Follow the prompts to complete installation but DO NOT select to start AyaNova with Windows, IIS will be responsible for starting and stopping AyaNova. If you do select start with windows re-run the installer and uncheck it.

Server configuration

The server must be configured before it will be able to start properly and find the database server.

The AyaNova installer will create a config.json file in it's program files folder. By default the location is c:\Program Files\ayanova\config.json.

The config.json file is AyaNova's initial source for configuration settings required for the server to start. It is necessary to edit this file (or provide an alternative source of configuration and specify the password to connect to the PostgreSQL server.

For example, if editing the default config.json file:

{
  "AYANOVA_USE_URLS": "http://*:7575",
  "AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=YOUR_PASSWORD_HERE;Database=AyaNova;",
  "AYANOVA_DEFAULT_TRANSLATION": "en",
  "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\14\\bin",
  "AYANOVA_DATA_PATH": "%ProgramData%\\ayanova",
  "AYANOVA_LOG_LEVEL": "Info"
}

(Back slashes need to be doubled in config.json file or the server will fail to start)

The AYANOVA_DB_CONNECTION property must be edited and where it has "YOUR_PASSWORD_HERE" substitute the actual PostgreSQL password to be used that was previously set. If the database server is located on a different computer then the Server= connection string property must be set to the address of that computer.

The AYANOVA_USE_URLS property specifies which TCP / IP Port that AyaNova server should listen on for connections from web browsers. The default value is port 7575 which should be free in most cases, however if you need to use an alternate port due to conflict it must be set here. We recommend using the default 7575 to avoid current or future confusion or conflict with other servers that may be installed or present elsewhere on the network.

The AYANOVA_BACKUP_PG_DUMP_PATH property specifies the path to the PostgreSQL database backup utility pg_dump if AyaNova server will be doing the automatic daily backups. If this utility is already in the path then you can remove this configuration setting entirely, otherwise it should be set to the location for your installed version of PostgreSQL's bin folder or wherever pg_dump is located. If you already have a backup solution in place for your PostgreSQL databases then there is no need to use this setting.

Strongly recommended: Add a 32 character AYANOVA_JWT_SECRET property to the configuration if you want to ensure that logged in User's session can survive a restart of the AyaNova server. If this is not set AyaNova will invalidate all login tokens any time the server restarts by generating a new random JWT secret on boot and under IIS AyaNova will restart every day so this is really a mandatory setting if you want to preserve user logins over a 24 hour period.

Do not use the value shown here, make sure you change it to any other random 32 characters for security purposes.

{
  ...existing properties...
  "AYANOVA_LOG_LEVEL": "Info",
  "AYANOVA_JWT_SECRET": "1111111MyRandom32CharacterSecret"
}

Boot and test the server

AyaNova must be confirmed to run properly before the final configuration in IIS to host AyaNova.

The AyaNova installer creates two shortcuts in the Start Menu under "AyaNova Server" and also on the Windows desktop titled "AyaNova server" and "AyaNova App". The AyaNova Server shortcut will start AyaNova by running AyaNova.exe in the program files folder where AyaNova was installed and the AyaNova App shortcut will start a batch file which in turn will open the default browser to the AyaNova server's landing page at the default address.

Note that the AyaNova App shortcut is only relevant to this initial configuration testing, once AyaNova is confirmed to be working via IIS you will no longer access it directly but through IIS instead so the AyaNova App shortcut and address it uses will no longer be required and should not be used execept for diagnostic purposes only.

Start the server by using the "AyaNova server" shortcut on the Windows desktop. You should see a console window open and some text that indicates the server version and that it is booting. Any problems found that prevent boot up will be displayed here. If all is well then the console window will display "BOOT: COMPLETED - SERVER OPEN" as well as some other configuration data.

If there is an issue it will be reported in this console window.

AyaNova server console running

Use the AyaNova App shortcut to open the server and get started with AyaNova.

If the server closes immediately upon running with an error

In some cases where a critical configuration value is completely missing, the server console may display the error but close too quickly to read it. In this case you can view the message by starting AyaNova.exe manually from a command line prompt. For example if AyaNova is installed to the default location open a command prompt (press WIN-x, select "command prompt" from the menu) and type "c:\Program Files\ayanova\AyaNova.exe" (note the quotation marks) to run AyaNova and see the error and make the necessary changes.

Only after you have confirmed that AyaNova server is working and you can login to the AyaNova web app should you proceed to the next step of enabling IIS to work with AyaNova.

IIS AyaNova site configuration

Now that AyaNova server has been confirmed to boot properly IIS needs to be set up to host it.

Stop AyaNova server if it is still running from the previous step by following the instructions in the server console window. From this point on IIS will be controlling the starting and stopping of the AyaNova server.

Open IIS manager

From a server version of Windows...

Click on Tools -> Manage menu item from server manager:

Open IIS manager from server tools

From a non-server version of Windows...

Access IIS manager from the Windows Start menu in the Windows Administrative Tools start menu folder:

Open IIS manager from start menu administrative tools

Create the AyaNova IIS site

In the Connections panel open the server's node, right click on Sites to add a new site.

add site

In the Add Website dialog box configure the website settings, the Site Name, Physical Path and Port are the only required settings to be changed.

Here is an example configuration that is suitable to allow internal users to access AyaNova over port 8080 via HTTP (not https) and is suitable to test AyaNova internally but is not suitable for outside access:

configure site

Note that the Site name was set to "AyaNova", the physical path is set to the program files folder where AyaNova.exe resides after installation, the image shows the default location.

The Port setting here has been set to 8080 which is intended to not conflict with a default website that comes with IIS which is already on port 80 the web browser http default port. Do not choose the same port number as AyaNova (by default 7575), that port must be left free for AyaNova to use to communicate with IIS.

Click on OK to save the settings and procede to the next step.

Edit Application Pool

Three settings must be changed in the Application Pool for AyaNova to work properly.

Under the Server's node in the Connections panel select "Application Pools" then right click the AyaNova site application pool which will have the same name as the Site name configured in the previous step ("AyaNova") to open the application pool context menu.

Select "Advanced settings" from the context menu:

edit app pool

Adjust CLR Version

In the application pool dialog "(General)" section set the .NET CLR version to "No Managed Code":

set clr version

This may seem counterintuitive since AyaNova uses .NET but AyaNova uses .NET Core, which is not the same .NET referred to here.

Adjust Idle timeout

In the application pool dialog "Process Model" section the Idle timeout setting must be set to zero to prevent IIS from shutting down AyaNova when usage is low which would prevent AyaNova from processing background tasks like the daily backup or generating Workorders from PM's etc.

The default is 20 minutes but we need it to be set to 0 to completely turn off idle timeouts: idle timeout

Adjust recycle

In the application pool dialog "Recycling" section there are two settings that must be configured to prevent AyaNova from being restarted when it's actively processing a backup job or generally busy with Users.

It's a good idea to allow IIS to recycle periodically however, by default it will do it every 1740 minutes which eventually will conflict with AyaNova's scheduled daily backup job or at a time when usage is high during the day so we need to turn that off and instead set it to recycle at a specific time of day that will not conflict with the daily backup or a busy time for AyaNova usage.

For the purposes of this document we'll assume the AyaNova server is not in peak demand overnight and the backup will be configured for 11:59pm making 3am a good time to recycle, however you should adjust this based on your specific site needs.

There are two settings to configure in the "Recycling" section of the Application Pool settings.

First we need to turn off the "Regular time interval" 1740 minute recycle by setting it to 0: recycle minutes

Next we need to add a "Specific Time", the entry box is in 24 hour time format so we will enter 03:00:00 for 3am:

recycle time

Typically 3am is a good time as the backup in our scenario starts at 11:59pm and should be completed by 3am and users won't be accessing the server at 3am however you must adjust this time to be appropriate for your site specific needs. The AyaNova server should completely restart in less than a minute but it will affect the backup if it was in progress and potentially interfere with active users.

Save the recycle time once entered and click on Ok to save and continue to the next step.

Open AyaNova app through IIS

Right click on the AyaNova site created earlier in IIS Manager and select "Manage website" and then "Browse". The AyaNova web app should open to the login page.

If you receive an error message from IIS "HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid." This generally means you did not follow the steps in the correct order and ASP.NET Core was installed before IIS was enabled which means IIS doesn't have the proper handlers to run an ASP.NET Core application. In order to fix this run the ASP.NET Core hosting bundle setup again that was installed previously (repair installation) to ensure IIS is setup with the correct handlers.

Starting and stopping AyaNova server

IIS will automatically manage starting and stopping AyaNova as required.

Next steps

Server installation under IIS for internal access is complete. Users will require the URL to use in their browser to access the AyaNova APP that was opened in the last step to test AyaNova substituting the server's IP address for the "localhost" part of the URL.

For connection from the internet your network adminstrator will need to setup IIS with an SSL certificate, bind to the correct port and domain name and open the port on the router to allow outside connections and finally provide your users with the correct URL to access AyaNova from outside your network.

** AyaNova can only be securely accessed from the internet if it's secured with an SSL certificate and only allows an HTTPS connection and not an unsecured HTTP connection. **

Let's Encrypt provides free SSL certificates and lists several Windows clients for use with Let's Encrypt on Windows.

For Server Operations role review the Server operations configuration and maintenance guide.

For the Business administration role review the Getting started guide for Administrators.