Setting up Internet Information Services for hosting Verge3D apps

From Verge3D Wiki
Jump to navigationJump to search

Internet Information Services (IIS) is a web server solution included with most Windows versions. It is an excellent choice when you need to quickly set up a Windows machine for running Verge3D applications — whether for local testing or for serving them to the global internet community. Unlike Apache or NGINX, IIS requires no command line work or manual editing of configuration files.

In this article, we cover the most important steps — from installing IIS to successfully running your Verge3D app.

Installing IIS

For non-server Windows editions, IIS should be installed via the Windows Features tool.

Find the Turn Windows features on or off app:

Turn Windows features on or off

enable the Internet Information Services feature, then press OK.

Enable IIS in Windows features

That's all — the server will be installed to your system and available as Internet Information Services (IIS) Manager:

Running IIS manager

Adding your website

Run IIS Manager, open Sites in the Connections panel, then click Add Website from the right-click menu:

Adding website in IIS

In the Add Website window enter the name of your website (e.g. My Awesome App) then provide the Physical path to its folder. For now you can leave http and port 80 as server bindings.

Add Website window in IIS

Once you click OK you might see the warning telling that another website is already using the specified port. Press Yes:

Binding already assigned error in IIS

Now stop the Default Web Site (you can also remove it altogether):

Stop default website in IIS

then switch to your own website and run it by clicking on the ▶ Start button.

Configuring permissions

To allow IIS to access the Verge3D app's folder, you must specify correct permissions. To do this, click Edit permissions...SecurityEdit:

Edit permissions in IIS

then add IUSR and IIS_IUSRS users to the folder's permissions. By default, these will be allowed to Read & execute and List folder contents. That's what we need!

Permissions for Windows folder

Configuring MIME types

Due to security reasons, IIS does not allow accessing files it does not know about. To add missing file types, you should edit the MIME types. We suggest doing it for the root settings:

Icon to edit IIS mime types

however, per-website configuration is also OK. Click MIME Types to open the following screen:

IIS Mime Types

then click Add... to open the Add MIME Type dialog:

Add new MIME type in IIS

The following extensions and the corresponding MIME types should be added for typical Verge3D apps:

File extension MIME type What for
.gltf model/gltf+json Exported scene
.xz application/x-xz LZMA-compressed gltf/bin files
.hdr image/vnd.radiance Radiance HDR maps used for environment lighting
.ktx2 image/ktx2 Compressed textures

Default document

If your Verge3D app does not have the index.html as its main HTML file (see here for more info), one additional step is required. Basically, you should specify the corresponding HTML as the default document in IIS. Click Default Document in the website settings to open the corresponding settings:

Default document settings in IIS

Click Add... then specify the name of the app's main HTML file in the Add Default Document dialog (e.g. my_awesome_app.html):

Adding my_awesome_app.html as default document in IIS

Running Verge3D app

Restart the website to apply the settings we edited on the previous steps, then run it using the Browse *:80 (http) link:

Verge3D application served using IIS

That's all. You can now access your website (via IP address) from various devices in your local network.

Next steps

One possible next step is to make your Verge3D app accessible from the global internet. This may require configuring secure HTTPS, which is outside the scope of this article. Thankfully, IIS is a well-documented solution, so there won't be any trouble finding detailed info using Google or AI assistants.