# Welcome To The Cloud

Welcome to BoxLang Cloud Servers

Welcome to the repository of documentation for the [Ortus Solutions' cloud servers](https://www.ortussolutions.com/products/cloud-servers) that you can use to deploy BoxLang / CFML applications to the cloud on the following providers:

* Amazon Web Services (AWS)
* Azure Cloud (`Available now!`)
* Google Cloud (`Available now!`)
* Digital Ocean (`Coming soon`)

<figure><img src="/files/Jx5GbVSqyohsBWpjQIXq" alt=""><figcaption></figcaption></figure>


# Overview

This documentation is born out of a need to keep introducing our customers to new and innovative products. There are just too many folks who want to be in the Cloud but have no idea of how to get there. This guide is intended to be a journal on how to move your products to the ANY cloud using any of the supported providers.

## Supported Providers

* Amazon Web Services (`Available now!`)
* Azure Cloud (`Available now!`)
* Google Cloud (`Available now!`)
* Digital Ocean (`Coming soon`)

## BoxLang Cloud Servers

Here is a listing of the cloud servers that are available now or in progress of being built.

| Server                              | Amazon Web Services           | Microsoft Azure      | Google Cloud Platform |
| ----------------------------------- | ----------------------------- | -------------------- | --------------------- |
| BoxLang MiniServer for Windows      | :white\_check\_mark:          | :white\_check\_mark: | :white\_check\_mark:  |
| BoxLang MiniServer for Ubuntu       | :white\_check\_mark:          | :white\_check\_mark: | :white\_check\_mark:  |
| BoxLang MiniServer for Red Hat      | :white\_check\_mark:          | :white\_check\_mark: | :white\_check\_mark:  |
| BoxLang with CommandBox for Windows | :white\_check\_mark:          | :white\_check\_mark: | :white\_check\_mark:  |
| BoxLang with CommandBox for Ubuntu  | :white\_check\_mark:          | :white\_check\_mark: | :white\_check\_mark:  |
| BoxLang with CommandBox for Red Hat | :x: Public visibility pending | :white\_check\_mark: | :white\_check\_mark:  |

## Lucee Cloud Servers

| Server             | Provider | Status               |
| ------------------ | -------- | -------------------- |
| Lucee+Nginx+Ubuntu | AWS      | :white\_check\_mark: |
| Lucee+IIS+Windows  | AWS      | :white\_check\_mark: |

{% hint style="info" %}
All of our cloud servers come pre-installed with the latest CommandBox CLI
{% endhint %}


# About this Book

The source code for this book is hosted in GitHub: <https://github.com/ortus-docs/cloud-servers>. You can freely contribute to it and submit pull requests. The contents of this book is copyright by [Ortus Solutions, Corp](https://www.ortussolutions.com) and cannot be altered or reproduced without author's consent. All content is provided *"As-Is"* and can be freely distributed.

* The majority of code examples in this book are done in `cfscript`.
* The majority of code generation and running of examples are done via **CommandBox**: The ColdFusion (CFML) CLI, Package Manager, REPL - <http://www.ortussolutions.com/products/commandbox>
* All ColdFusion examples designed to run on the open source Lucee Platform or Adobe ColdFusion 2016+

## External Trademarks & Copyrights <a href="#external-trademarks-and-copyrights" id="external-trademarks-and-copyrights"></a>

ColdFusion, and Adobe are registered trademarks and copyrights of Adobe Systems, Inc.

## Notice of Liability <a href="#notice-of-liability" id="notice-of-liability"></a>

The information in this book is distributed “as is”, without warranty. The author and Ortus Solutions, Corp shall not have any liability to any person or entity with respect to loss or damage caused or alleged to be caused directly or indirectly by the content of this training book, software and resources described in it.

## Contributing <a href="#contributing" id="contributing"></a>

We highly encourage contribution to this book and our open source software. The source code for this book can be found in our GitHub repository where you can submit pull requests: <https://github.com/ortus-docs/cloud-servers>.

## Charitable Proceeds <a href="#charitable-proceeds" id="charitable-proceeds"></a>

10% of the proceeds of using our cloud images will go to charity to support orphaned kids in El Salvador - <https://www.harvesting.org/>.&#x20;

### Shalom Children's Home <a href="#shalom-childrens-home" id="shalom-childrens-home"></a>

![](https://gblobscdn.gitbook.com/assets%2F-LA-UVvJIdbk5Kfk3bDs%2F-LA-Ue7pk25llbkg6Fcu%2F-LA-UnuL8XFdplyxdTkr%2Fshalom.jpg?generation=1523647989626340\&alt=media)

Shalom Children’s Home (<https://www.harvesting.org/>) is one of the ministries that is dear to our hearts located in El Salvador. During the 12 year civil war that ended in 1990, many children were left orphaned or abandoned by parents who fled El Salvador. The Benners saw the need to help these children and received 13 children in 1982. Little by little, more children came on their own, churches and the government brought children to them for care, and the Shalom Children’s Home was founded.

Shalom now cares for over 80 children in El Salvador, from newborns to 18 years old. They receive shelter, clothing, food, medical care, education and life skills training in a Christian environment. The home is supported by a child sponsorship program.

We have personally supported Shalom for over 6 years now; it is a place of blessing for many children in El Salvador that either have no families or have been abandoned. This is good earth to seed and plant.


# Author

## George Murphy

George Murphy is a Software Engineer who has a long history in the IT and television industry. He has traveled extensively and has many benefits and experiences from doing this. One of those benefits was being able to meet his wife while on a business trip to Hungary. George lives about 20 miles outside of the Washington DC area with his wife Erzsebet  and daughter Virag.&#x20;

He is a highly accomplished senior-level Software Design Engineer with extensive project leadership and solution design experience, successfully managing people, processes, and technology to implement critical enterprise solutions on time. Adept at learning and using new technologies and integrating them into corporate applications. Skilled team leader and mentor with excellent communication skills; can design and support Cloud and on premises applications for clients in diverse industries. Working in the cloud has become such a huge passion for him. Along with that passion has come a never ending thirst to learn new technologies such as Terraform, Nomad, and Vault.

George, would rather spend time fishing with his free time than anything else. He also loves to spend time with family and travel. He loves mentoring others in new technology. His mission is to share with other his acceptance of Jesus as his personal savior.

## Luis Fernando Majano Lainez

Luis Majano is a Computer Engineer that has been developing and designing software systems since the year 2000. He was born in [San Salvador, El Salvador](http://en.wikipedia.org/wiki/El_Salvador) in the late 70’s, during a period of economical instability and civil war. He lived in El Salvador until 1995 and then moved to Miami, Florida where he completed his Bachelors of Science in Computer Engineering at [Florida International University](http://fiu.edu). Luis resides in Houston, Texas with his beautiful wife Veronica, baby girl Alexia and baby boy Lucas!

He is the CEO of [Ortus Solutions](http://www.ortussolutions.com), a consulting firm specializing in web development, ColdFusion (CFML), Java development and all open source professional services under the ColdBox and ContentBox stack. He is the creator of ColdBox, ContentBox, WireBox, MockBox, LogBox and anything “BOX”, and contributes to many open source ColdFusion/Java projects. You can read his blog at [www.luismajano.com](http://www.luismajano.com)

Luis has a passion for Jesus, tennis, golf, volleyball and anything electronic. Random Author Facts:

* He played volleyball in the Salvadorean National Team at the tender age of 17
* The Lord of the Rings and The Hobbit is something he reads every 5 years. (Geek!)
* His first ever computer was a Texas Instrument TI-86 that his parents gave him in 1986. After some time digesting his very first BASIC book, he had written his own tic-tac-toe game at the age of 9. (Extra geek!)
* He has a geek love for circuits, microcontrollers and overall embedded systems.
* He has of late (during old age) become a fan of organic gardening.

> Keep Jesus number one in your life and in your heart. I did and it changed my life from desolation, defeat and failure to an abundant life full of love, thankfulness, joy and overwhelming peace. As this world breathes failure and fear upon any life, Jesus brings power, love and a sound mind to everybody!
>
> “Trust in the LORD with all your heart, and do not lean on your own understanding.” \
> &#x20;Proverbs 3:5


# EULA

All of our Cloud Server images follow the following EULA

**ORTUS SOLUTIONS CORPORATION**

**WARRANTY DISCLAIMER AND SOFTWARE PRODUCT LICENSE AGREEMENT**

**Ortus Cloud Images**

Copyright © Ortus Solutions Corp. All Rights Reserved.

IMPORTANT - READ CAREFULLY: This End User License Agreement ("EULA") is a legal agreement between YOU (The End User) as Licensee and ORTUS SOLUTIONS CORPORATION for the SOFTWARE PRODUCT identified above.

Please read this EULA carefully and make sure you fully understand it. You are ONLY permitted to install or use this Software or any future updates to the Software if you AGREE to ALL TERMS AND CONDITIONS contained in this EULA. If you do not agree to all terms, do not use this software or any updates. By installing or using this Software YOU agree to be bound by ALL the terms and conditions below.

This agreement is enforceable like any written negotiated agreement signed by you. You agree that you are bound by the agreement whether you are acting on your own behalf or on behalf of a third party.

**1.** **Definitions.**

·       **“EULA”** means this End User License Agreement.

·       **“Licensee”** means YOU or the organization (if any) on whose behalf you are taking the EULA.

·       **“Software Product”** or **“Software”** means **Ortus Cloud Images**. The Terms “Software Product” or “Software” also include any future updates to the Software (“Updates”) that are not delivered to YOU under separate terms.

·       **“Ortus Solutions”** means Ortus Solutions Corp, the software developer. &#x20;

**2.** **Software Licenses.**

**2.1** With this License YOU are granted the following rights:

To install and use one (1) copy of the Software Product on unlimited web contexts within a single Lucee server instance.  This license includes critical patches and bug fixes for a maximum of 1 calendar year since date of purchase.  If you purchase a yearly maintenance per Lucee instance, you will be entitled to major, minor and patch updates during the calendar year.

**2.2** **Limitations**

YOU hereby undertake not to sell, rent, lease, translate, adapt, vary, modify, decompile, disassemble, reverse engineer, create derivative works of, modify, sub-license, loan or distribute the SOFTWARE PRODUCT other than as expressly authorized by this EULA.

**3.** **Warranty disclaimer**

You may be entitled to warranties, conditions and terms that may not be excluded or limited by Ortus Solutions under law. Except for those non-excludable warranties, conditions and terms, the Software,  is made available **“As Is.”** Except for those non-excludable warranties, conditions and terms, Ortus Solutions makes no warranties, conditions, representations, guarantees or terms (express or implied, whether by statute, common law, custom, usage or otherwise) as to any matter including performance, results, security, no infringement, merchantability, integration, quiet enjoyment, satisfactory quality, and fitness for any particular purpose. This disclaimer of warranty may not be valid in some States. You may have warranty rights under law which may not be waived or disclaimed. Ortus Solutions does not seek to limit your warranty rights to any extent not permitted by law. These exclusions and limitations will apply to the maximum extent permitted by applicable law, even if any remedy fails its essential purpose.

You acknowledge and agree that: Ortus Solutions has no express or implied obligation to continue to make the software or any feature thereof available nor introduce any products or services compatible with the software.

**4.** **Indemnity**

The Licensee (YOU) agrees, to the maximum extent permitted by applicable law, to indemnify, defend and hold Ortus Solutions, its members, its successors, officers, principals, directors, agents and employees harmless from any and all actions, causes of action, claims, demands, cost, liabilities, expenses and damages (including attorney’s fees) arising out of, or in connection with any breach of this Agreement by the Licensee and/or the use of the Software Product by the Licensee.

5\.     **Limitation of Liability**

Except for any remedies that cannot be excluded or limited under law, Ortus Solutions, will not be liable to YOU for any loss, damages, claims or costs including any indirect, consequential, or incidental damages, any lost profits or lost savings, any damages resulting from business interruption, personal injury or failure to meet any duty of care, or claims by a third party, even if an Ortus Solutions representative has been advised of the possibility of such loss, damages, claims or costs. In any event, Ortus Solutions’ aggregate liability in connection with this agreement will be limited to the amount paid for the Software. This limitation will apply even in the event of a fundamental or material breach or a breach of the fundamental or material terms of this agreement. Nothing contained in this agreement limits Ortus Solutions liability to YOU in the event of death or personal injury resulting from Ortus Solutions’ negligence or for the tort of deceit (fraud). Ortus Solutions is acting on its behalf for the purpose of disclaiming, excluding and limiting obligations, warranties and liability, but in no other respects and for no other purpose.

The foregoing limitations and exclusions apply to the extent permitted by applicable law in your jurisdiction. This limitation of liability may not be valid in some States. You may have rights that cannot be waived under consumer protection and other laws. Ortus Solutions does not seek to limit your warranty or remedies to any extent not permitted by law.

**6.** **Governing Law**

This agreement will be governed by and construed in accordance with the substantive law of: The State of Texas.

**7.** **Assignment**

Neither this Agreement nor any of the rights, interests or obligations under this Agreement shall be assigned, in whole or in part, by operation of law or otherwise by the Licensee without the prior written consent of Ortus Solutions.&#x20;

**8.** **Non Waiver**

Ortus Solutions’ failure to exercise or delay in exercising any right, power or privilege under this Agreement shall not operate as a waiver thereof; nor shall any single or partial exercise of any right, power or privilege preclude any other or further exercise thereof.

No breach of any provision of this Agreement will be waived except with the express written consent of Ortus Solutions.

**9.** **Attorney and litigation**

*In the event of litigation between Ortus Solutions and the Licensee relating to the subject matter of this Agreement, the non-prevailing party shall reimburse the prevailing party for all reasonable attorney fees and costs resulting from the litigation process.*

**10.** **General Provisions**

&#x20;     Your rights to use the Software terminate immediately if you do not comply with any term of this agreement. If any provision of this agreement is found unenforceable, only that provision, interpreted as narrowly as possible, will be held unenforceable and the rest of this agreement will remain valid and enforceable according to its terms. Section 4 shall survive the termination of this agreement. This agreement shall not prejudice the statutory rights of any party dealing as a consumer. This agreement may only be modified by a writing signed by an authorized officer of Ortus Solutions. This agreement is the entire agreement between Ortus Solutions and you relating to the Software Product, and it supersedes any prior representations, discussions, undertakings, communications or advertising relating to the Software Product.

If you have any questions regarding this document or if you wish to request any information from Ortus Solutions please contact us via web at <http://www.ortussolutions.com/contact>

**Lucee, Mod\_cfml, and Nginx are companies NOT associated with Ortus Solutions.**


# Overview

In this section you will find all the server images we have created so you can run on AWS as either EC2 instances or ECS Containers.

## EC2 Instance

What is an ec2 instance? It is simply a virtual machine running in the AWS (Amazon Web Services) cloud. EC2 stands for Elastic Compute Cloud. An on-demand ec2 instance is a virtual machine that a user can rent by the minute, hour or annually, which ever his use need may dictate. Ortus Solutions has seen a long need to bring Lucee servers to the AWS cloud. What are it's benefits? You can have a site up and running in minutes without going through configuration hell. There are many people still running legacy applications who see a need to upgrade for security purposes or modernization reasons. It just makes since to remove your servers from on premises providers and move to the cloud. If you want customization on the AMI image we can help you.

<https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html>

## Setup Your AWS Account

Going forward we will show you how to create an AWS ec2 web site using our Ortus hardened AMI's even if you have never done this before. The first thing you will need to do is setup an \[AWS account]\(<https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>) if you do not have one.&#x20;

## AWS Marketplace

{% content-ref url="/pages/-M4WleU3sntRyTVQ4eyl" %}
[Overview](/aws/overview)
{% endcontent-ref %}

![](/files/-M4WmMjFCZ4YUmCedaRt)

The AWS marketplace is the place to find the Ortus Lucee CFML engine (Ubuntu Server 18.04 LTS) AMI (Amazon Machine Image). You have a choice of a multitude of different sizes and use agreements. This includes from the free tier to the high performance paid tier. If you already have an Amazon account go login and go the Amazon Marketplace at this URL <https://aws.amazon.com/marketplace/>\
Once on this URL search for Ortus. From there click the subscribe button off to the right.


# Ubuntu Based Images

Create an EC2 instances from an Ortus BoxLang engine (Ubuntu Server 24.04 LTS) AMI (Amazon Machine Image). We have created several based Ubuntu based images.

| Images                  | Status               |
| ----------------------- | -------------------- |
| BoxLang MiniServer      | :white\_check\_mark: |
| BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Ubuntu based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Ubuntu 24.04 LTS based, you can follow this [link](https://aws.amazon.com/marketplace/pp/prodview-s4zvkzmlirbga?sr=0-5\&ref_=beagle\&applicationId=AWSMPContessa) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**    | **Description**                                      |
| ------------------------ | -------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`     | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox`  | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`             | BoxLang version installed and to be used for BoxLang |
| BVM\_HOME                | `/usr/local/boxlang` | BoxLang Version Manager home                         |

## Default site

For every Linux based BoxLang Cloud Server a Systemd daemon is used to get up and running a Web Server on well know HTTP port 80/TCP. Depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start a custom site or application, you can update this daemon service if need it, or just only place your custom site or application under `/web/boxlang-site/wwwroot` directory.

| Server                  | Red Hat like                                                                                           | Debian like                                                                                            | Daemon name        |
| ----------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------ |
| BoxLang MiniServer      | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | boxlang-miniserver |
| BoxLang with CommandBox | `/bin/box server start serverConfigFile=server.json`                                                   | `/usr/local/bin/box server start serverConfigFile=server.json`                                         | coldbox-site       |

{% hint style="info" %}
If you only place your custom site under `/web/boxlang-site/wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# Boxlang MiniServer

This AMI image will create a running BoxLang server with CFML compatibility module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

Choose the **BoxLang MiniServer for Ubuntu** AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/> and look for "Ortus solutions, corp"

![Ortus Solutions AMIs](/files/iLw3E5NzvXOz6msYrZxI)

Click the **View purchase options** to subscribe button

![Purchase options for Ortus Solutions AMI](/files/kAFpELt3Foc7sOta6kGM)

Configuration options for subscription. In this section you can choose to add options to your contract, if not, You can click on "Continue configuration" button.

![AMI subcription options](/files/8T1lqpv66CbOsSY9PhKE)

You can configure your Ortus Soluction software version or region, if not, just click on "Continue to Launch" button.

![Ortus Solution software configuration](/files/QWapdFEfQ32RSJhutBtJ)

In "Launch" section you can choose method to launch, for this case, We're going to use EC2 method.

![Instance launch method](/files/Ow6Fu3uVnBmcfOLFWri1)

This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is `t2.medium`. Unless you need more resources keep it at this.\
If You desire or You do not have Key pair, You can generate new ones in "Key pair (login)" section.\
On the "Network settings" section under "Firewall (Security groups)". We need to make a couple of changes. First is to go to the source column and select **My IP** so that SSH and RDP will only be enabled for your IP address (**VERY IMPORTANT**). Next allow **HTTP** and **HTTPS**. You can edit VPC, Subnet and Public IP configuration.\
On "Configure Storage" section. If you want to persist your files, then add a volume. If you do not need to persist the files, keep the defaults.

![Instance launch set up](/files/UswpUmlMLMmr899cwYFo)

Select your running instance. This will open some tabs at the bottom of the page. Select the "Description" tab. Look to the right on the description tab and look for "Public DNS (IPv4)." To the right of this text is the DNS name. Copy that name and paste it in a browser. It should look something like this `ec2-{public_dns}.compute-1.amazonaws.com`.

![Instance view page](/files/HwI0i0XeMH6qWLFwdy1K)

Paste that URL in a browser and you should see the default ColdBox site.

![Instance view page](/files/bfynduVZkSWh4caNZEPt)

SSH to your instance with following command `ssh -i "/path/to/your/private-key" ubuntu@ec2-{public\_dns}.compute-1.amazonaws.com` and create a handler.

```shell
[01:31 PM]-[otisnado@otisnado-ortushp]-[~]-
$ ssh ubuntu@18.234.132.18
ubuntu@ip-172-31-28-63:~$
```

Elevate to root user, change your current directory to `/web/coldbox-site/wwwroot` and run `box` command to launch CommandBox CLI

```shell
ubuntu@ip-172-31-28-63:~$ sudo su
root@ip-172-31-28-63:/home/ubuntu# cd /web/coldbox-site/wwwroot/
root@ip-172-31-28-63:/web/coldbox-site/wwwroot# box
```

Now, you can update system dependencies typing `update --system`. create a new handler for testing using `coldbox create handler type=index name=helloFromBoxLangCloudServer` command

```shell
Welcome to CommandBox! 
CommandBox:wwwroot> coldbox create handler type=index name=helloFromBoxlangMiniserverCloudServer
 INFO   Created View [/web/coldbox-site/wwwroot/views/helloFromBoxlangMiniserverCloudServer/index.cfm]

 INFO   Created Handler [/web/coldbox-site/wwwroot/handlers/helloFromBoxlangMiniserverCloudServer.cfc]

 INFO   Created Integration Spec [/web/coldbox-site/wwwroot/tests/specs/integration/helloFromBoxlangMiniserverCloudServerTest.cfc]

CommandBox:wwwroot>
```

![New handler in running](/files/38ABpJ35mCgXVu3Bs0aW)

**ENJOY YOUR CLOUD SERVER!**


# Changelog

## Version 1.5.0

### Changed

* Bump BoxLang version to 1.5.0+41
* Systemd daemon for manage BoxLang MiniServer process is now `boxlang-site`

### Added

* startBoxLangSite.sh script is now on charge to start|stop BoxLang MiniServer process through boxlang-site Systemd daemon
  * It checks if there is custom site under `/web/boxlang-site/wwwroot` placed by users and if there is a server.json file, if not start default ColdBox Application under `/web/boxlang-site/default`

## Version 1.4.1

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0

## Version 1.1.0

### Added

* BoxLang MiniServer now support URL Rewrites

### Removed

* Nginx Reverse Proxy

## Version 0.3.0

* Initial Release


# BoxLang with CommandBox

This AMI image will create a running BoxLang server with CFML compatibility module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

Choose the **BoxLang with CommandBox for Ubuntu** AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/> and look for "Ortus solutions, corp"

![Ortus Solutions AMIs](/files/nN1FYZElkx77GHRXJfcg)

Click the **View purchase options** to subscribe button

![Purchase options for Ortus Solutions AMI](/files/XI2jMr8hdhwfF4DlI6g8)

Configuration options for subscription. In this section you can choose to add options to your contract, if not, You can click on "Continue configuration" button.

![AMI subcription options](/files/qVQM6rksL0BHLhe3OvUf)

You can configure your Ortus Soluction software version or region, if not, just click on "Continue to Launch" button.

![Ortus Solution software configuration](/files/M9x4dFaNjRl4sAbgMoGz)

In "Launch" section you can choose method to launch, for this case, We're going to use EC2 method.

![Instance launch method](/files/yrmesnwaPEyUoMd6CYBR)

This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is `t2.medium`. Unless you need more resources keep it at this.\
If You desire or You do not have Key pair, You can generate new ones in "Key pair (login)" section.\
On the "Network settings" section under "Firewall (Security groups)". We need to make a couple of changes. First is to go to the source column and select **My IP** so that SSH and RDP will only be enabled for your IP address (**VERY IMPORTANT**). Next allow **HTTP** and **HTTPS**. You can edit VPC, Subnet and Public IP configuration.\
On "Configure Storage" section. If you want to persist your files, then add a volume. If you do not need to persist the files, keep the defaults.

![Instance launch set up](/files/hWU5DPyQ8bz4BZ2Qx3eg)

Select your running instance. This will open some tabs at the bottom of the page. Select the "Description" tab. Look to the right on the description tab and look for "Public DNS (IPv4)." To the right of this text is the DNS name. Copy that name and paste it in a browser. It should look something like this `ec2-{public_dns}.compute-1.amazonaws.com`.

![Instance view page](/files/pS7NwR9SC2FYP31JSIAc)

Paste that URL in a browser and you should see the default ColdBox site.

![Instance view page](/files/5Jvj5PE2HI44TP6ABTbN)

SSH to your instance with following command `ssh -i "/path/to/your/private-key" ubuntu@ec2-{public\_dns}.compute-1.amazonaws.com` and create a handler.

```shell
[10:39 AM]-[otisnado@otisnado-ortushp]-[~]-
$ ssh ubuntu@23.20.191.10
ubuntu@ip-172-31-29-194:~$
```

Elevate to root user, change your current directory to `/web/coldbox-site/wwwroot` and run `box` command to launch CommandBox CLI

```shell
ubuntu@ip-172-31-29-194:~$ sudo su
root@ip-172-31-29-194:/home/ubuntu# cd /web/coldbox-site/wwwroot/
root@ip-172-31-29-194:/web/coldbox-site/wwwroot# box
```

Now, you can update system dependencies typing `update --system`. create a new handler for testing using `coldbox create handler type=index name=helloFromBoxLangCloudServer` command

```shell
Welcome to CommandBox!
CommandBox:wwwroot> coldbox create handler type=index name=helloFromBoxLangCloudServer
 INFO   Created View [/web/coldbox-site/wwwroot/views/helloFromBoxLangCloudServer/index.cfm]

 INFO   Created Handler [/web/coldbox-site/wwwroot/handlers/helloFromBoxLangCloudServer.cfc]

 INFO   Created Integration Spec [/web/coldbox-site/wwwroot/tests/specs/integration/helloFromBoxLangCloudServerTest.cfc]

CommandBox:wwwroot> 
```

![New handler in running](/files/AG3HMRau6oCz2RyAYw4j)

**ENJOY YOUR CLOUD SERVER!**


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang MiniServer now support URL Rewrites

### Removed

* Nginx Reverse Proxy for URL Rewrites


# Other Engines

Create an EC2 instances from an Ortus BoxLang engine (Ubuntu Server 24.04 LTS) AMI (Amazon Machine Image). We have created several based Ubuntu based images.

| Images             | Status                                            |
| ------------------ | ------------------------------------------------- |
| Lucee + Nginx      | :white\_check\_mark: (With security updates only) |
| CommandBox + Nginx | :white\_check\_mark: (With security updates only) |


# Lucee + Nginx

This AMI image will create a running Lucee site for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

* Choose the **Lucee CFML Server (Ubuntu+Nginx+Tomcat)** AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/> and look for "Ortus solutions, corp"

![Ortus Solutions AMIs](/files/P45Fk2i7nt43wCpaWFLo)

* Click the **View purchase options** to subscribe button

![Purchase options for Ortus Solutions AMI](/files/RP32FKahp3CMbcsPD4VA)

* Click the **accept terms** button.

![Accept terms for Ortus Solutions AMI](/files/HpjdzfN1pnLNmZAhP44w)

* Configuration options for subscription. In this section you can choose to add options to your contract, if not, You can click on "Continue configuration" button.

![AMI subcription options](/files/B5Bk73Lcdd8XL3gLumwU)

* You can configure your Ortus Soluction software version or region, if not, just click on "Continue to Launch" button.

![Ortus Solution software configuration](/files/Yqz2XZEqTbDRRAdK7cSL)

* In "Launch" section you can choose method to launch, for this case, We're going to use EC2 method.

![Instance launch method](/files/xDmxJjNuF6CURdRF2dUG)

* On the "Name and tags" page. Let's add a tag. Click the add Tag. They should be Key=Name and Value=Ortus Lucee CFML engine 5.2.9.31 (Ubuntu Server 18.04 LTS) Resource type=Instances.

![Instance name and tags](/files/BcAbQzsnQd4S7RbHA58b)

* This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is `t3.micro`. Unless you need more resources keep it at this.

![Instance type](/files/s3YCKG7pdBWPkOb4RrSI)

* If You desire or You do not have Key pair, You can generate new ones in "Key pair (login)" section. **SAVE IT IN A SECURE PLACE!**

![Key pair creation for instance](/files/4L9j11jQsZc1Itrl0sTR)

* On the "Network settings" section under "Firewall (Security groups)". We need to make a couple of changes. First is to go to the source column and select **My IP** so that SSH and RDP will only be enabled for your IP address (**VERY IMPORTANT**). Next allow **HTTP** and **HTTPS**. You can edit VPC, Subnet and Public IP configuration.

![Instance security group](/files/1ORLFNEdcgNX00rAEgse)

* On "Configure Storage" section. If you want to persist your files, then add a volume. If you do not need to persist the files, keep the defaults.

![Instance storage](/files/ZH3c4PQR6AjWsrsQ8jY2)

* On "Summary" section you can review general information about your instance, cancel operation, launch instance and also, you can generate AWS CLI commands to deploy EC2 instance with desired configuration.

![Instance Summay](/files/AKvOHbkQJm58JycA79zE)

* You are on the "Launch Status" page. Go to the bottom right and click the button labeled "View Instances."

![Instance launch status](/files/Jio95TxIKCXOBbal0zOZ)

* Select your running instance. This will open some tabs at the bottom of the page. Select the "Description" tab. Look to the right on the description tab and look for "Public DNS (IPv4)." To the right of this text is the DNS name. Copy that name and paste it in a browser. It should look something like this `ec2-{public_dns}.compute-1.amazonaws.com`.

![Instance view page](/files/cEfFlPNI0ir9GjKax2vR)

* Paste that URL in a browser and you should see the default ColdBox site.
* SSH to your instance with following command `ssh -i "/path/to/your/private-key" ubuntu@ec2-{public\_dns}.compute-1.amazonaws.com`
* When you SSH to the instance the web root is /web/coldbox-site/wwwroot **RUN `cd` COMMAND WITH SUDO OR `su` TO ROOT USER**

Enjoy your servers!


# Managing your web site

This page will show you how to mange your site using CommandBox and how to move files back and forth from your your development environment where ever that may be.

Now that you have a site running in the cloud you will want to customize it. Remember that SSH pem file you downloaded. That is going to allow you to go on the server and edit files. If you are on a windows platform like me. Here are some tools I strongly suggest that you get locally.

1. CommandBox. This tool will allow you to make files and remove them locally. If you so decide that you want to edit and add files directly on the EC2 instance this can be done using the default instance of CommandBox on the server.  <https://commandbox.ortusbooks.com/>
2. VSCode the editor of choice, and the reason I say that is because it has so many useful extensions. <https://code.visualstudio.com/download>
3. WinSCP the default file manager tool for Windows. <https://winscp.net/eng/index.php>

If you are using the Windows Package Manager [Chocolatey ](https://chocolatey.org/)you can download all of these from there.

Here is a script to download them in powershell. Save the script as anything.ps1. Remember where you saved it.  With PowerShell, you must make sure [Get-ExecutionPolicy](https://go.microsoft.com/fwlink/?LinkID=135170) is not Restricted. We suggest using `Bypass` to bypass the policy to get things installed or `AllSigned` for quite a bit more security.

* Run `Get-ExecutionPolicy`. If it returns `Restricted`, then run `Set-ExecutionPolicy AllSigned` or `Set-ExecutionPolicy Bypass -Scope Process`.

Go to the right corner of the dialog box below and copy this script and save it naming it whatever you like as long as the extension ends as \*.ps1

```
#Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

#Assign Packages to Install
$Packages = 'commandbox',`
            'vscode',`
            'winscp'

#Install Packages
ForEach ($PackageName in $Packages)
{choco install $PackageName -y}
```

```
PS> .\anything.ps1 (enter)
```

If your scripts successfully installed you should see a new desktop icon for VSCode. If you open a shell ( cmd, powershell, git bash ) and type box you should see that Commandbox is installed.


# Connecting to your server

Connecting to your server with WinSCP or VSCode

This page will walk you through connecting to your new server using the popular free software program WinSCP. I have a script for you to download on step 11 "[Managing your web site](/aws/ubuntu-based-images/other-engines/lucee-+-nginx/managing-your-web-site)" page. We will also take a look at an exciting VSCode extension called [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack). It allows you to SSH directly to the EC2 instance and map the remote folder in your local VSCode IDE.


# Changelog

## Version 2.0.1\_5.4.6.9

* Security update for Apache Tomcat Server CVE-2025-24813

## Version 1.0.0\_5.2.3.9

* Initial Release


# CommandBox + Nginx

This AMI will allow you to configure as many Lucee sites as you desire using CommandBox and Nginx as a front end LB.

This AMI image will create a running CommandBox Lucee site for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

* Choose the AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/>
* Click the **continue** to subscribe button
* Click the **accept terms** button
* Next go to this page and click launch new instance <https://console.aws.amazon.com/marketplace/home?#/subscriptions>
* This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is t3.micro. Unless you need more resources keep it at this. Go to the bottom of the screen and select Next:`Configure Instance Details`.&#x20;

![Choose an Instance Type](/files/-MZYWeFNlTeZ-TJvHQ9X)

* You are on the "Configure Instance Details" page and keep the defaults. Go to bottom of the page and click "Next: Add Storage" button.&#x20;

![Configure Instance Details](/files/-MZYYPBACQBwwfAjTzk_)

* You are now on the "Add Storage" page. Keep the defaults and click the button at the bottom right "Next: Add Tags."

![Add Storage](/files/-MZYiILaWXqbGH2k1r0x)

* You are now on the "Add Tags" page. Let's add a tag. Click the add Tag. They should be Key=Name and Value=Ortus Commandbox CFML engine - multisite (Ubuntu Server 18.04 LTS). Next go to the bottom of the page and click the button that says "Next: Configure Security Group."

![Add Tags](/files/-MZYjdptCDLcar5eS9aP)

* You are on the "Configure Security Group" page. We need to make a couple of changes before leaving this page. First is to go to the source column and select **MyIP** so that ssh will only be enabled for your IP address (**VERY IMPORTANT**).
* Next click the "Add Rule" button and under the type column select **http** and leave port 80 selected. Go to the bottom right of the page and select and click the "Review and Launch" button.

![Configure Security Group](/files/-MZYkXosb-8-fasE7mlD)

* You are on the "Review Launch Instance" page. Review it and once you are okay click the "Launch" bottom on the bottom right of page.

![Review Launch Instance](/files/-MZYl27lyRQlMVOvha31)

* This opens a module window that is prompting you to suggesting an existing key pair or create a new open. If you do not know what this means I suggest you create a new key pair and put it in a folder that you have access to. If all went well you will see a green colored headline that says "Your instances are now launching." &#x20;

![Select Key Pair](/files/-MZYlSYL5Nf4w2jjk4IO)

* You are on the "Launch Status" page. Go to the bottom right and click the button labeled "View Instances."&#x20;

![Launch Status](/files/-MZYlqO7xhkvaBkBilck)

* Select your running instance. This will open some tabs at the bottom of the page. Select the "Description" tab. Look to the right on the description tab and look for "Public DNS (IPv4)." To the right of this text is the dns name. Copy that name and paste it in a browser. It should look something like this
* `ec2-{public_dns}.compute-1.amazonaws.com`
* Paste that URL in a browser and you should see the default ColdBox site.
* ssh -i "/local-path-to/myfile.pem" ubuntu\@ec2-{public\_dns}.compute-1.amazonaws.com
* When you CD to the instance the 2 web roots are at sudo su cd /var/www/website1 /var/www/website2

![Running Instance](/files/-MZYnZbkQ-2euIw8HSas)

Enjoy your server!


# Managing your web site

This page will show you how to mange your site using CommandBox and how to move files back and forth from your your development environment where ever that may be.

Now that you have a site running in the cloud you will want to customize it. Remember that SSH pem file you downloaded. That is going to allow you to go on the server and edit files. If you are on a windows, Mac or Linux platform, here are some tools I strongly suggest that you get locally. The instructions below are for Windows but all of these tools are available for all 3 platforms.

1. CommandBox. This tool will allow you to make files and remove them locally. If you so decide that you want to edit and add files directly on the EC2 instance this can be done using the default instance of CommandBox on the server.  <https://commandbox.ortusbooks.com/>
2. VSCode the editor of choice, and the reason I say that is because it has so many useful extensions. <https://code.visualstudio.com/download>
3. WinSCP the default file manager tool for Windows. <https://winscp.net/eng/index.php>

If you are using the Windows Package Manager [Chocolatey ](https://chocolatey.org/)you can download all of these from there.

Here is a script to download them in Powershell. Save the script as anything.ps1. Remember where you saved it.  With PowerShell, you must make sure [Get-ExecutionPolicy](https://go.microsoft.com/fwlink/?LinkID=135170) is not Restricted. We suggest using `Bypass` to bypass the policy to get things installed or `AllSigned` for quite a bit more security.

* Run `Get-ExecutionPolicy`. If it returns `Restricted`, then run `Set-ExecutionPolicy AllSigned` or `Set-ExecutionPolicy Bypass -Scope Process`.

Go to the right corner of the dialog box below and copy this script and save it naming it whatever you like as long as the extension ends as \*.ps1

```
#Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

#Assign Packages to Install
$Packages = 'commandbox',`
            'vscode',`
            'winscp'

#Install Packages
ForEach ($PackageName in $Packages)
{choco install $PackageName -y}
```

```
PS> .\anything.ps1 (enter)
```

If your scripts successfully installed you should see a new desktop icon for VSCode. If you open a shell ( CMD, Powershell, git bash ) and type box you should see that CommandBox is installed.


# Connecting via WinSCP

Connecting to your server with WinSCP or VSCode

This page will walk you through connecting to your new server using the popular free software program WinSCP. I have a script for you to download on step 11 "[Managing your web site](/aws/ubuntu-based-images/other-engines/commandbox-+-nginx/managing-your-web-site)" page.&#x20;

### WinSCP let's get going

* Run WinSCP
* In the Login dialog, click on the “New Session” button
* Then click the "Advanced..." button

![Connect via WinSCP](/files/-MZ_T42cJQf7HvRJz1k1)

* From this dialog select the SSH Authentication browse button to the right of the input box.

![SSU Authentication](/files/-MZ_UKVRbez5l7_eaolf)

* You will be given a file explorer box. Then select your pem file that you downloaded when you created your ec2. The prompt with look like this click ok.

![Convert PEM file to a PPK file](/files/-MZ_VpTgMR0xl8F7a_hL)

* Click the ok button

![Final Connection Step](/files/-MZ_X2HWhTFRiSDo7Nwz)

* You have connected

![](/files/-MZ_Xh5frJ_lGW2yzWpe)


# Connecting via VSCode

VSCode is one of the hottest new editors on the market. We will show you how to connect via VSCode using the VSCode Remote Development Extension.

You can install the [VSCode Remote Development Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) by visiting the URL or opening VSCode and clicking the extension load button in the IDE and searching for "Remote Development."

![Remote Development Extension](/files/-MZgnQT3W_7SIQQwlbFm)

### Steps to connect to ec2.

* Click in the green box in the bottom left corner of VSCode. This will open a select box already populated with different Remote Development choices. You want to select Remote-SSH: Open SSH Configuration File...

![](/files/-MZgpb0e4WZSoXpSMo9a)

![Remote-SSH: Open SSH Configuration File...](/files/-MZgqOl87VeqTaOQkuBA)

* If you have not created a configuration file you will have this option.  \
  **Remote-SSH: Add New SSH Host...** Select that instead.
* Your configuration file should look something like this after you fill it out.

```
Host ColdBoxDemo
    User ubuntu
    HostName 34.236.192.135
    IdentityFile ~/.ssh/my-pem-that-i-downloaded-when-creating-ec2.pem
```

* Having done that it is time to connect to your ec2 instance. Let's click the green button in the lower left corner. The same one we used to open the configuration file. \
  Let's select "**Remote-SSH: Connect Current Window to Host...**"

![Remote-SSH: Connect Current Window to Host...](/files/-MZguVW_xrsb2Tr3llCY)

* If all works you should have a VSCode screen that looks like the one below. If it does not work you can do what I did, that is to downgrade to VSCode 1.36.1. You can do that with Chocolatey.

```
choco install vscode --version=1.36.1 -y
```

![Notice you are on the ec2 server. You can run CommandBox Commands from here.](/files/-MZi8D9JuORYEKkGbQEW)


# How to customize sites

By default you are given 2 web sites. This page will show you how to display and edit those sites.

### Default Sites

The sites you are given are <http://website1.com> and <http://website2.com.\\>
You can display these in your Windows Host file at C:\Windows\System32\drivers\etc\hosts. To see the site you add the entries like this below.

```
3.229.122.138		website1.com
3.229.122.138		website2.com
```

Open a browser with those URLS and you will see your site with the default ColdBox frameworks. In order to set different site names you will want to edit  website1.conf and website2.conf files open a shell and navigate to:

```
/etc/nginx/sites-enabled# ls
website1.conf  website2.conf
cat website2.conf
```

* replace all website2.com entries except the directory.

```
###############################################################
# Example
###############################################################
server {
        ################### SERVER NAME AND PORT #####################
        listen 80;
    server_name website2.com;

        ################### LOGS #####################
        access_log /var/log/nginx/website2-access.log;
        error_log /var/log/nginx/website2-error.log warn;
        rewrite_log off;

        ################### LOCATION #####################
        root /var/www/website2;

        ################### CFML #####################
        # Mod_cfml (Lucee) specific: add a unique ID for this server block.
        # For more info, see http://www.modcfml.org/index.cfm/install/web-server-components/nginx-all-os/
        set $lucee_context "website2.com";

        set $application_port "8002";
        include lucee.conf;
}
```

* Restart Nginx and restart the server. Open your new site.


# Changelog

## Version 1.0.0\_5.3.7.47

* Initial Release


# Red Hat Based Images

Create an EC2 instances from an Ortus BoxLang engine (Red Hat Enterprise Linux 8) AMI (Amazon Machine Image). We have created several based Red Hat based images.

| Images                  | Status               |
| ----------------------- | -------------------- |
| BoxLang MiniServer      | :white\_check\_mark: |
| BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Red Hat based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Red Hat Enterprise Linux (RHEL) for AWS based, you can follow this [link](https://aws.amazon.com/marketplace/pp/prodview-k5skpyd62jg22?sr=0-3\&ref_=beagle\&applicationId=AWSMPContessa) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**    | **Description**                                      |
| ------------------------ | -------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`     | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox`  | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`             | BoxLang version installed and to be used for BoxLang |
| BVM\_HOME                | `/usr/local/boxlang` | BoxLang Version Manager home                         |

## Default site

For every Linux based BoxLang Cloud Server a Systemd daemon is used to get up and running a Web Server on well know HTTP port 80/TCP. Depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start a custom site or application, you can update this daemon service if need it, or just only place your custom site or application under `/web/boxlang-site/wwwroot` directory.

| Server                  | Red Hat like                                                                                           | Debian like                                                                                            | Daemon name        |
| ----------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------ |
| BoxLang MiniServer      | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | boxlang-miniserver |
| BoxLang with CommandBox | `/bin/box server start serverConfigFile=server.json`                                                   | `/usr/local/bin/box server start serverConfigFile=server.json`                                         | coldbox-site       |

{% hint style="info" %}
If you only place your custom site under `/web/boxlang-site/wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This AMI create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

In AWS Marketplace you find this AMI offer as [**BoxLang MiniServer for RedHat**](/aws/redhat-based-images/boxlang-miniserver) or look for **Ortus Solutions, Corp** to look for out full catalog.


# Changelog

## Version 1.5.0

### Changed

* Bump BoxLang version to 1.5.0+41
* Systemd daemon for manage BoxLang MiniServer process is now `boxlang-site`

### Added

* startBoxLangSite.sh script is now on charge to start|stop BoxLang MiniServer process through boxlang-site Systemd daemon
  * It checks if there is custom site under `/web/boxlang-site/wwwroot` placed by users and if there is a server.json file, if not start default ColdBox Application under `/web/boxlang-site/default`

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang MiniServer for Red Hat 8.10


# BoxLang with CommandBox

This AMI create a runnging ColdBox Site using BoxLang as server with bx-compat-cfml module using CommandBox for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

In AWS Marketplace you find this AMI offer as [**BoxLang with CommandBox for RedHat**](/aws/redhat-based-images/boxlang-with-commandbox) or look for **Ortus Solutions, Corp** to look for out full catalog.


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang with CommandBox for Red Hat 8.10


# Windows Based Images

Create an EC2 instance from an Ortus BoxLang engine (Windows Server 2019) AMI (Amazon Machine Image). We have created several Windows-based images to deploy your BoxLang or CFML applications with Compat CFML BoxLang Module.

| Images                  | Status               |
| ----------------------- | -------------------- |
| BoxLang MiniServer      | :white\_check\_mark: |
| BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Windows based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang + CommandBox**              |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Windows Server 2019 based, you can follow this [link](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoftwindowsserver.windowsserver?tab=Overview) to know more about base software running.

## Environment variables

| **Variable**             | **Default value** | **Description**                                      |
| ------------------------ | ----------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `C:\boxlangHome`  | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `C:\CommandBox`   | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`          | BoxLang version installed and to be used for BoxLang |

## Default site

For every Windows based BoxLang Cloud Server a scheduled task is used to get up and running a Web Server on well know HTTP port 80/TCP. You can find this scheduled task as name **"Start ColdBox Sample Application"**, depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start your any custom site, you can update this task if need it, or just only place your custom site under `C:\inetpub\wwwroot` folder

| Server                  | Command execution                                                                                                  | Scheduled task name              |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| BoxLang MiniServer      | `C:\boxlang\bin\boxlang-miniserver.bat --host 0.0.0.0 --port 80 --webroot C:\inetpub\wwwroot --rewrites index.cfm` | Start ColdBox Sample Application |
| BoxLang with CommandBox | `C:\box\box.exe -commandbox_home=C:/CommandBox server start serverConfigFile="C:\inetpub\wwwroot\server.json"`     | Start ColdBox Sample Application |

{% hint style="info" %}
If you only place your custom site under `C:\inetpub\wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This AMI image will create a running BoxLang server with CFML compatibility module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

Choose the **BoxLang MiniServer for Windows** AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/> and look for "Ortus solutions, corp"

![Ortus Solutions AMIs](/files/2QhctIEZnvZQFuwo5wB4)

Click the **View purchase options** to subscribe button

![Purchase options for Ortus Solutions AMI](/files/1fakZhtBY6ATcOYytOmn)

Configuration options for subscription. In this section you can choose to add options to your contract, if not, You can click on "Continue configuration" button.

![AMI subcription options](/files/JeJF9me0cGRmxh9vH4tN)

You can configure your Ortus Soluction software version or region, if not, just click on "Continue to Launch" button.

![Ortus Solution software configuration](/files/aNNWoc5J98kqVH0Nt3FC)

In "Launch" section you can choose method to launch, for this case, We're going to use EC2 method.

![Instance launch method](/files/knIX3xPO2dwLJO5XJaEA)

This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is `m4.large`. Unless you need more resources keep it at this.\
If You desire or You do not have Key pair, You can generate new ones in "Key pair (login)" section.\
On the "Network settings" section under "Firewall (Security groups)". We need to make a couple of changes. First is to go to the source column and select **My IP** so that SSH and RDP will only be enabled for your IP address (**VERY IMPORTANT**). Next allow **HTTP** and **HTTPS**. You can edit VPC, Subnet and Public IP configuration.\
On "Configure Storage" section. If you want to persist your files, then add a volume. If you do not need to persist the files, keep the defaults.

![Instance launch set up](/files/r6Zeb4gbgdFQJoHmhbX4)

Select your running instance. This will open some tabs at the bottom of the page. Select the "Description" tab. Look to the right on the description tab and look for "Public DNS (IPv4)." To the right of this text is the DNS name. Copy that name and paste it in a browser. It should look something like this `ec2-{public_dns}.compute-1.amazonaws.com`.

![Instance view page](/files/bLZPwI3ffUUXMXwDBOVD)

Paste that URL in a browser and you should see the default ColdBox site.

![Instance view page](/files/2PNrjfNIWTtTjDXnnEht)

Connect to your EC2 instance using Remote Desktop Protocol (RDP) or SSH to perform the following commands for creating a new handler in ColdBox Sample Application

Change your current directory to `C:\inetpub\wwwroot` and run `box` command to launch CommandBox CLI

```shell
PS C:\Users\administrator> Set-Location C:\inetpub\wwwroot\
PS C:\inetpub\wwwroot> box
```

Now, you can update system dependencies typing `update --system`. create a new handler for testing using `coldbox create handler type=index name=helloFromBoxLangCloudServer` command

```shell
Welcome to CommandBox! 
CommandBox:wwwroot> coldbox create handler type=index name=helloFromBoxLangMiniServer 
 INFO   Created View [C:\inetpub\wwwroot\views\helloFromBoxLangMiniServer/index.cfm] 

 INFO   Created Handler [C:\inetpub\wwwroot\handlers\helloFromBoxLangMiniServer.cfc]

 INFO   Created Integration Spec [C:\inetpub\wwwroot\tests\specs\integration\helloFromBoxLangMiniServerTest.cfc] 

CommandBox:wwwroot>
```

![New handler in running](/files/YnoH47m7d6Ka2al8nElf)

**ENJOY YOUR CLOUD SERVER!**


# Changelog

## Version 1.4.1

### Added

* Fix CVE-2025-50154

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

### Version 1.3.0

### Added

* BoxLang update to 1.3.0

## Version 1.1.0

### Added

* BoxLang MiniServer now support URL Rewrites

### Removed

* Internet Information Services

## Version 0.3.0

* Initial Release


# BoxLang with CommandBox

This AMI image will create a running BoxLang server with CFML compatibility module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

Choose the **BoxLang with CommandBox for Windows** AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/> and look for "Ortus solutions, corp"

![Ortus Solutions AMIs](/files/FRxtzLfeMwGUO0qQqDzw)

Click the **View purchase options** to subscribe button

![Purchase options for Ortus Solutions AMI](/files/j8X46DFHwjFgspkOy5zK)

Configuration options for subscription. In this section you can choose to add options to your contract, if not, You can click on "Continue configuration" button.

![AMI subcription options](/files/1b70qvsAqnkMigy9azgv)

You can configure your Ortus Soluction software version or region, if not, just click on "Continue to Launch" button.

![Ortus Solution software configuration](/files/rIBtiicSAOBosVpEEXzQ)

In "Launch" section you can choose method to launch, for this case, We're going to use EC2 method.

![Instance launch method](/files/eeFK0l56DY1MUGrCggAC)

This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is `m4.large`. Unless you need more resources keep it at this.\
If You desire or You do not have Key pair, You can generate new ones in "Key pair (login)" section.\
On the "Network settings" section under "Firewall (Security groups)". We need to make a couple of changes. First is to go to the source column and select **My IP** so that SSH and RDP will only be enabled for your IP address (**VERY IMPORTANT**). Next allow **HTTP** and **HTTPS**. You can edit VPC, Subnet and Public IP configuration.\
On "Configure Storage" section. If you want to persist your files, then add a volume. If you do not need to persist the files, keep the defaults.

![Instance launch set up](/files/QNGuRiQpey3ZG5qkjpk6)

Select your running instance. This will open some tabs at the bottom of the page. Select the "Description" tab. Look to the right on the description tab and look for "Public DNS (IPv4)." To the right of this text is the DNS name. Copy that name and paste it in a browser. It should look something like this `ec2-{public_dns}.compute-1.amazonaws.com`.

![Instance view page](/files/LtWId6OdmwmttaOobwyB)

Paste that URL in a browser and you should see the default ColdBox site.

![Instance view page](/files/Uh0p4S0e4Q96t2FUyEMo)

Connect to your EC2 instance using Remote Desktop Protocol (RDP) or SSH to perform the following commands for creating a new handler in ColdBox Sample Application

Change your current directory to `C:\inetpub\wwwroot` and run `box` command to launch CommandBox CLI

```shell
PS C:\Users\administrator> Set-Location C:\inetpub\wwwroot\
PS C:\inetpub\wwwroot> box
```

Now, you can update system dependencies typing `update --system`. create a new handler for testing using `coldbox create handler type=index name=helloFromBoxLangCloudServer` command

```shell
Welcome to CommandBox! 
CommandBox:wwwroot> coldbox create handler type=index name=helloFromBoxLangMiniServer 
 INFO   Created View [C:\inetpub\wwwroot\views\helloFromBoxLangMiniServer/index.cfm] 

 INFO   Created Handler [C:\inetpub\wwwroot\handlers\helloFromBoxLangMiniServer.cfc]

 INFO   Created Integration Spec [C:\inetpub\wwwroot\tests\specs\integration\helloFromBoxLangMiniServerTest.cfc] 

CommandBox:wwwroot>
```

![New handler in running](https://github.com/ortus-docs/cloud-servers/blob/master/.gitbook/assets/aws/boxlang-with-commandbox-windows/new-handler.png)

**ENJOY YOUR CLOUD SERVER!**


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Other Engines

Create an EC2 instance from an Ortus BoxLang engine (Windows Server 2019) AMI (Amazon Machine Image). We have created several Windows-based images to deploy your BoxLang or CFML applications with Compat CFML BoxLang Module.

| Images               | Status                                            |
| -------------------- | ------------------------------------------------- |
| Lucee + IIS-Boncode  | :white\_check\_mark: (With security updates only) |
| CommandBox + Boncode | :white\_check\_mark: (With security updates only) |


# Lucee + IIS-Boncode

This AMI image will create a running Lucee Windows site for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. The first step is to have an AWS account. If you do not have one go to this URL to learn how to create an \[AWS account.]\( <https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>)

* Choose the **Lucee CFML Server (Windows 2019+Boncode+Tomcat)** AWS AMI. Go to this URL and do a search for Ortus at the top of the screen <https://aws.amazon.com/marketplace/> and look for "Ortus solutions, corp"

![Ortus Solutions AMIs](/files/P45Fk2i7nt43wCpaWFLo)

* Click the **View purchase options** to subscribe button

![Purchase options for Ortus Solutions AMI](/files/2ifVmt6quHtIFmwFnfGJ)

* Click the **accept terms** button

![Accept terms for Ortus Solutions AMI](/files/1tgTv2qbm70xd7G2kxw4)

* Configuration options for subscription. In this section you can chose to add options to your contract, if not, You can click on "Continue configuration" button.

![AMI subcription options](/files/hm7TXJLuBH8q6awR4pFZ)

* You can configure your Ortus Soluction software version or region, if not, just click on "Continue to Launch" button.

![Ortus Solution software configuration](/files/zGj8wvDDEItOKCNpdvUi)

* In "Launch" section you can choso method to launch, for this case, We're going to use EC2 method.

![Instance launch method](/files/9z3Z2m81qVEWV6YCmNE8)

* On the "Name and tags" page. Let's add a tag. Click the add Tag. They should be Key=Name and Value=Ortus Lucee CFML engine 5.3.6.61 (Windows Server 2019) Resource type=Instances.

![Instance name and tags](/files/LkS9fQczH1MTBF0fab42)

* This will take you to the "Choose an Instance Type." The default instance and AWS free tier selected is `t3.micro`. Unless you need more resources keep it at this. For this guide We're using `t2.medium` size.

![Instance type](/files/yQxIkHgAHRdGb7VTwbpw)

* If You desire or You do not have Key pair, You can generate new ones in "Key pair (login)" section. **SAVE IT IN A SECURE PLACE!**

![Key pair creation for instance](/files/vsbLqmOW1ns1hGEIMAOJ)

* On the "Network settings" section under "Firewall (Security groups)". We need to make a couple of changes. First is to go to the source column and select **My IP** so that SSH and RDP will only be enabled for your IP address (**VERY IMPORTANT**). Next allow **HTTP** and **HTTPS**. You can edit VPC, Subnet and Public IP configuration.

![Instance security group](/files/nmKvZ3EFaLficQjUNZdk)

* On "Configure Storage" section. If you want to persist your files, then add a volume. If you do not need to persist the files, keep the defaults.

![Instance storage](/files/PGivR8E4bpRzZL7TmibT)

* On "Summary" section you can review general information about your instance, cancel operation, launch instance and also, you can generate AWS CLI commands to deploy EC2 instance with desired configuration.

![Instance Summay](/files/jAwViF1FGoLMdMetoN0w)

* You are on the "Launch Status" page. Go to the bottom right and click the button labeled "View Instances."

![Instance launch status](/files/S8tlulXV5eZgs3PIvGAL)

* Select your running instance. This will open some tabs at the bottom of the page. Click on "Connect" at the top of the page. Then click "RDP client". Click on "Get password" button, this will open a dialog asking you to decrypt your Windows RDP administrative password using the pem file you downloaded or the pem file you selected.

![Get instance password](/files/0UP74rKZ6uBUx2CM562u)

![Decrypted instance password](/files/nqJ7TYgWdyIB7Auep0eZ)

* Download remote desktop file and Log in to manage your instnace.

![RDP Connection to instance](/files/QOYRSLy74zUsEzldnDqA)


# Managing your web site

This page will describe how to manage your web site once you have remote desktop onto the server or used SSH to access the server.

## Where is my web site located at?

You have a default ColdBox Template site running at C:\inetpub\wwwroot in the IIS "Default Web Site."\
If you want a different site you can remove all folders except BIN and WEB-INF. But before you do that familiarize yourself with how to access the site and the Lucee administrator. It is fairly simple the site is at \
<http://localhost/> (web site)\
<http://localhost/lucee/admin/server.cfm> (Lucee Administrator)

The Lucee Password is the EC2 Instance ID. Once on the server we strongly urge you to change this password immediately.

![](/files/-MOrV2H5DOJVDN_AtPwZ)

### Boncode Connector for IIS.

According to the author of Boncode: "This is the modern method of connecting IIS and Apache Tomcat. Most likely to use a Lucee or JSP driven backend. The BonCode AJP (Apache JServ Protocol version 1.3) Connector uses already existing pathways to connect to Apache Tomcat. The AJP implementation is generic and will work to connect IIS with any AJP server such as Jboss, web-methods, Jetty etc. In general it is a preference question how you connect IIS to Tomcat, though, there are several advantages with the BonCode connector vs the old ISAPI connector."

#### Documentation:

<http://www.boncode.net/connector/webdocs/Tomcat_Connector.htm#_Toc38268618>\
<https://github.com/Bilal-S/iis2tomcat>


# Connect with VSCode

There are several great VSCode plugins in this extension called Remote Development. These plugins allow you to connect directly to your Ortus AWS instance from any platform and start developing.

## Getting Box Powers

Becoming a box hero is a fairly straight forward process:

Here is the link to install your Remote Development extension to VSCode. <https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack>\
Once you have your extension installed you will need some assets to get started.

1. Windows Password
2. Public EC2 IP address
3. pem file location that you created when you built your EC2 instance

Next let's open VSCode. Hold this key combination Ctrl +Shift + P and type Config. You will see some options. Select Remote-SSH: Open Configuration File.... This will open a file for you that has been prefilled with this information. If IdentityFile is not there add it please. Replace EC2 Public IP in the hostname and IdentityFile. Give the real name and and location of the pem file. Copy your Windows Password to the clipboard. Now go to the bottom left corner of VSCode. You will see a green square. Hover your mouse over it. It should say "Open a remote window." Click the green square. Select Remote-SSH: Connect to Host... Select your Alias whatever you put in for Alias. It should open a dropdown box asking for the password for windows. Put in your password and hit the enter key. A new instance of VSCode will open. The green rectangle where you launched from should read "SSH:Alias-name."

{% code title="config" %}

```bash
Host alias
    HostName EC2 Public IP
    User Administrator
    IdentityFile    ssh -i ~/.ssh/created.pem Administrator@EC2-Public-IP
```

{% endcode %}

Now let's run this keyboard combination command Ctrl + Shift + E this will open the file explorer window where your web site files are on the EC2 instance. Click the "Open Folder" blue bar. It will try and send you to C:\Users\Administrator change to:

```bash
C:\imetpub\wwwroot
```

This is going to allow you to have direct access to the files on your EC2 instances. CommandBox is preloaded so you can create any views, handlers and things of that nature.


# Changelog

## Version 1.0.42

### Added

* Fix CVE-2025-50154

## Version windows-v1.0.0\_5.3.6.61


# Commandbox + Boncode


# Contentbox 5

What is Contentbox 5. It is one of the most popular free open source CMS on the market today. This release from Contentbox 4 is a major upgrade for the platform. We can go more indepth about the product at this URL. <https://contentbox.ortusbooks.com/intro/release-history/whats-new-with-5.3.0>\
Part of that upgrade is bringing it to the AWS Cloud as a multi-instance Lucee CommandBox server. It comes with MySQL 5.7 already installed, and CommandBox. This AMI image comes with 2 instances of Lucee 5.3.9 running Contentbox 5.x.

In order to standup your cloud server you will need an AWS account. You can read about how to do that at this link.\
<https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/>

* Head on over to the AWS Marketplace and search for Ortus. <https://aws.amazon.com/marketplace/>

* Click the Contentbox 5 continue to subscribe button.

* Accept the terms.

* Click the link below to launch a new instance.\
  <https://console.aws.amazon.com/marketplace/home?#/subscriptions>

* Next the choose an instance type comes up. We strongly suggest you choose an instance type with at least 8GB of ram and 2 to 4 CPU's. We have found that the c5.xlarge works really nicely. It has 4 CPU's and 8GB of ram.<br>

  <figure><img src="/files/YgEdzKOJLNMCkcrUZg0N" alt=""><figcaption></figcaption></figure>

* You are on the "Configure Instance Details" page keep the defaults. Go to the bottom of the page and click the "Next: Add Storage" button.&#x20;

* The default for storage is 30 GB. I usually bump that up to 60 GB. Remember it is Windows.

* Click the add Tag. Key=Name and Value=Ortus Lucee Commandbox Multisite (Windows Server 2019) Contentbox 5.0. Next go to the bottom of the page and click the button that says "Next: Configure Security Group." If you will notice I have selected my ip for all of the selected protocols. This is so that we can keep everything private until all is configured then we can open port 80 and 443 up.<br>

  <figure><img src="/files/4cgfVGiNfaO4EYTvnHO2" alt=""><figcaption></figcaption></figure>

* Go to the bottom right of the page and select and click the "Review and Launch" button. This opens a module window that prompts you to an existing key pair or to create a new key pair. If you do not know what this means I suggest you create a new key pair and put it in a folder that you have access to. If all went well you will see a green colored headline that says "Your instances are now launching."<br>

  <figure><img src="/files/8z8fqMcoVNOSj8vrshIf" alt=""><figcaption></figcaption></figure>

* You are on the "Launch Status" page. Go to the bottom right and click the button labeled "View Instances."&#x20;

  <figure><img src="/files/LmREv1XqRFRrtyFORcFc" alt=""><figcaption></figcaption></figure>

* Select your running instance. This will open some buttons at the top right of the page. Click the connect button at the top right of the page.&#x20;

  <figure><img src="/files/dNLFiw4h5XCeLpQJu3Mc" alt=""><figcaption></figcaption></figure>

* Select the RDP client tab. This will open a dialog asking you to download your Windows RDP file and decrypt your Windows Administrator password using the pem file you downloaded or the pem file you selected. Click the Get password link.

<figure><img src="/files/52Zzh3SKV9brDV8HwsjM" alt=""><figcaption></figcaption></figure>

* After clicking the Get password link you will be asked to browse to where you have stored your pem file and select it. Then you click decrypt password button and then you copy your password.<br>

  <figure><img src="/files/wdliL36YXd8dpPV76mDb" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/QzZV241vmfXqdPCYj8FU" alt=""><figcaption></figcaption></figure>

* Now lets double click your downloaded RDP file. This will open your window to log onto the server. Once on the server let's open Powershell ISE. Then let's copy and paste this code in Powershell. This will setup your Windows host file to run these two Contentbox demo sites for you.  <https://gist.githubusercontent.com/murpg/541bb15dcb802e04feed366305552b11/raw/05d54ccb2ba5bb6641cbcd24868c1a10b7b5e6c5/addToHosts.ps1>

{% embed url="<https://gist.github.com/murpg/541bb15dcb802e04feed366305552b11>" %}


# Running Contentbox

This page will explain the necessary sites to run Contentbox 5 on your AWS Cloud site. Let's take care of some homework first. The GUI part of the Lucee admin is disabled on Contentbox 5. \
\
The sites are at:\
C:\inetpub\wwwroot\site1 | C:\inetpub\wwwroot\site2\
Commandbox is at C:\box\
\
All Lucee admin functionality can be ministered maintained via the Commandbox module CFConfig. Here is a link to get you started with that. <https://cfconfig.ortusbooks.com/>\
To see your Lucee admin settings open a CLI and open a box shell and run.\
cfconfig show

Now let's get Contentbox configured and running on the demo site. If you are an experienced user then create your own site. Here are the steps to get that first site running.

1. Open a browser and if you have not run this [Powershell code](/aws/windows-based-images/other-engines/contentbox-5) at the bottom of the page you will need to or do it by hand. Paste this URL into your browser and go. <http://luceesite1.com>

   <figure><img src="/files/Lvx9mvZubWpy9NlsccVX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Th7ezDCuu0pMHWrUijOu" alt=""><figcaption></figcaption></figure>

* Set the email address

  <figure><img src="/files/92RJaIKbznTbF3vpw5Mc" alt=""><figcaption></figcaption></figure>
* Create the CMS

  <figure><img src="/files/5J5JX6epcA5MEmXNeRBk" alt=""><figcaption></figcaption></figure>


# Connect with VSCode

There are several great VSCode plugins in this extension called Remote Development. These plugins allow you to connect directly to your Ortus AWS instance from any platform and start developing.

## Getting Box Powers

Becoming a box hero is a fairly straight forward process:

Here is the link to install your Remote Development extension to VSCode. <https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack>\
Once you have your extension installed you will need some assets to get started.

1. Windows Password
2. Public EC2 IP address
3. pem file location that you created when you built your EC2 instance

Next let's open VSCode. Hold this key combination Ctrl +Shift + P and type Config. You will see some options. Select Remote-SSH: Open Configuration File.... This will open a file for you that has been prefilled with this information. If IdentityFile is not there add it please. Replace EC2 Public IP in the hostname and IdentityFile. Give the real name and and location of the pem file. Copy your Windows Password to the clipboard. Now go to the bottom left corner of VSCode. You will see a green square. Hover your mouse over it. It should say "Open a remote window." Click the green square. Select Remote-SSH: Connect to Host... Select your Alias whatever you put in for Alias. It should open a dropdown box asking for the password for windows. Put in your password and hit the enter key. A new instance of VSCode will open. The green rectangle where you launched from should read "SSH:Alias-name."

{% code title="config" %}

```bash
Host alias
    HostName EC2 Public IP
    User Administrator
    IdentityFile    ssh -i ~/.ssh/created.pem Administrator@EC2-Public-IP
```

{% endcode %}

Now let's run this keyboard combination command Ctrl + Shift + E this will open the file explorer window where your web site files are on the EC2 instance. Click the "Open Folder" blue bar. It will try and send you to C:\Users\Administrator change to:

```bash
C:\imetpub\wwwroot
```

This is going to allow you to have direct access to the files on your EC2 instances. CommandBox is preloaded so you can create any views, handlers and things of that nature.


# Overview

## Azure Virtual Machine

What is an Azure Virtual Machine? As its name say, It is a simple virtual machine running in Microsoft Azure Cloud. Azure Virtual Machines (Azure VM) is Infrastructure as a Service for computing, this gives you more control over your cloud resources. With this service you can pay as you go or annualy reservation. But if you want more detailed information about this service, you can look at [this](https://learn.microsoft.com/en-us/azure/virtual-machines/overview).

## Setup you Microsoft Azure Subscription

For deploying this Virtual Machine you need a Microsoft Subscription, if not have one follow this [link](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account) to get 200 USD of credits.

## Azure Microsoft

Azure Microsoft is the place where you can find our Ortus BoxLang Cloud Servers, you can deploy from here and see the differents plans to use them. You are able to deploy a simple tiny server of high performance server, if you already have a Subscription, login with you Microsoft Account and look at our BoxLang Virtual Machines offers at this URL <https://azuremarketplace.microsoft.com/en-us/marketplace/apps?page=1\\&search=BoxLang>

![](/files/3A8l3nYhfS68znqxd6Vn)


# Ubuntu Based Images

Create an Azure Virtual Machine from an Ortus BoxLang with CommandBox (Ubuntu Server 24.04 LTS) Virtual Machine (Azure VM). We have created several based Ubuntu based images.

|   | Images                  | Status               |
| - | ----------------------- | -------------------- |
|   | BoxLang MiniServer      | :white\_check\_mark: |
|   | BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Ubuntu based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Ubuntu 24.04 LTS based, you can follow this [link](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/canonical.ubuntu-24_04-lts?tab=overview) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**   | **Description**                                      |
| ------------------------ | ------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`    | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox` | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`            | BoxLang version installed and to be used for BoxLang |

## Default site

For every Linux based BoxLang Cloud Server a Systemd daemon is used to get up and running a Web Server on well know HTTP port 80/TCP. Depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start a custom site or application, you can update this daemon service if need it, or just only place your custom site or application under `/web/boxlang-site/wwwroot` directory.

| Server                  | Red Hat like                                                                                           | Debian like                                                                                            | Daemon name        |
| ----------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------ |
| BoxLang MiniServer      | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | boxlang-miniserver |
| BoxLang with CommandBox | `/bin/box server start serverConfigFile=server.json`                                                   | `/usr/local/bin/box server start serverConfigFile=server.json`                                         | coldbox-site       |

{% hint style="info" %}
If you only place your custom site under `/web/boxlang-site/wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This Azure Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need a Microsoft Subscription, if not have one follow this [link](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account) to get 200 USD of credits.

In Azure Marketplace you find this Virtual Machine offer as [**BoxLang MiniServer with CommandBox and NGINX Ubuntu 24.04**](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ortus.boxlang-miniserver-ubuntu?tab=Overview) or look for **Ortus Solutions, Corp** to look for out full catalog.

## Deploy BoxLang MiniServer with CommandBox on Ubuntu 24.04 from Azure Marketplace

* In the overview product click on **create** button to start deployment proccess

![BoxLang MiniServer with CommandBox on Ubuntu 24.04 overview](/files/eNbrlPNfko4B6MXfkZML)

* In **Basics** tab select your Azure Subscription, resource group and region where Virtual Machine reside. Also, you set here Name, Availability zone, Size, Username and your desired method to login of your Virtual Machine.

![Basic configuration of your Virtual Machine](/files/wxD82tXXKA944bEB1SUV)

* **Disks** tab let you set up additional managed disk for your Virtual Machine, We recommend to add one additional data disk to store your data. If you change a different size for disk read [How expand your partition size](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/expand-disks) documentation.

![Disks configuration of your Virtual Machine](/files/kWBSruCfC3236g9dDcRx)

* In **Networking** you set up Virtual Network, Subnet, Public IP and Network Security (this can be default or make a custom by you). If Virtual Machine size selected is compatible you can enable Accelerated networking. Also if you plan to deploy this Virtual Machine behind a Load Balancer you can config that from here.

![Networking configuration of your Virtual Machine](/files/QbtfVykv50a8pS3XEoMp)

* **Management** tab let you configure Identity for your Virtual Machine, Auto-shutdown, backups and Guest OS update. Currently we are working to support Microsoft Entra ID authentication, but if want to enable out of the box, follow this [link](https://learn.microsoft.com/en-us/entra/identity/devices/howto-vm-sign-in-azure-ad-linux).

![Management configuration of your Virtual Machine](/files/H2VvloHqz8uzCSIKFcbm)

* In **Monitoring** tab you can Alerts, Boot diagnostics and Health monitoring for your Virtual Machine.

![Monitoring configuration of your Virtual Machine](/files/NQt571wRk5om3CxLTlmu)

* In **Adavance** you can add Extensions, Application or Custom scripts with cloud-init and configuration related to where is located physically your Virtual Machine.

![Adavance configuration of your Virtual Machine](/files/OVVhKhM0wU4FhaEJzcvn)

* **Tags** tab let you tagging your virtual machine and dependent resources.

![Tag configuration of your Virtual Machine](/files/7FgriGc4WBQV1T1LTO6V)

* **Review + create** tab let you see all your configurations and alerts you if any of them need review or change, if not, click on **create** to deploy your **BoxLang with CommandBox Ubuntu 24.04** Virtual Machine.

![Review and create configuration of your Virtual Machine](/files/6Pk7TnS5bECEID24iSc6)


# Changelog

## Version 1.5.0

### Changed

* Bump BoxLang version to 1.5.0+41
* Systemd daemon for manage BoxLang MiniServer process is now `boxlang-site`

### Added

* startBoxLangSite.sh script is now on charge to start|stop BoxLang MiniServer process through boxlang-site Systemd daemon
  * It checks if there is custom site under `/web/boxlang-site/wwwroot` placed by users and if there is a server.json file, if not start default ColdBox Application under `/web/boxlang-site/default`

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0

## Version 1.1.0

### Added

* BoxLang MiniServer now support URL Rewrites

### Removed

* Nginx Reverse Proxy

## Version 0.3.0

* Initial Release


# BoxLang with CommandBox

This Azure Virtual Machine create a runnging ColdBox Site using BoxLang as CFML Engine for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need a Microsoft Subscription, if not have one follow this [link](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account) to get 200 USD of credits.

In Azure Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox Ubuntu 24.04**](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ortus.boxlang-commanbox-server-ubuntu-2404?tab=Overview) or look for **Ortus Solutions, Corp** to look for out full catalog.

## Deploy BoxLang with CommandBox Ubuntu 24.04 from Azure Marketplace

* In the overview product click on **create** button to start deployment proccess

![BoxLang with CommandBox on Ubuntu 24.04 overview](/files/ed4VCoXWhkWpummlG94I)

* In **Basics** tab select your Azure Subscription, resource group and region where Virtual Machine reside. Also, you set here Name, Availability zone, Size, Username and your desired method to login of your Virtual Machine.

![Basic configuration of your Virtual Machine](/files/WablaE63krwie4uOrNKa)

* **Disks** tab let you set up additional managed disk for your Virtual Machine, We recommend to add one additional data disk to store your data. If you change a different size for disk read [How expand your partition size](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/expand-disks) documentation.

![Disks configuration of your Virtual Machine](/files/WS4gPdwOvJNvm65mK7lg)

* In **Networking** you set up Virtual Network, Subnet, Public IP and Network Security (this can be default or make a custom by you). If Virtual Machine size selected is compatible you can enable Accelerated networking. Also if you plan to deploy this Virtual Machine behind a Load Balancer you can config that from here.

![Networking configuration of your Virtual Machine](/files/lDxfHIRyeqorXmpN5WUs)

* **Management** tab let you configure Identity for your Virtual Machine, Auto-shutdown, backups and Guest OS update. Currently we are working to support Microsoft Entra ID authentication, but if want to enable out of the box, follow this [link](https://learn.microsoft.com/en-us/entra/identity/devices/howto-vm-sign-in-azure-ad-linux).

![Management configuration of your Virtual Machine](/files/f6d8ByNKyn7eALKQ5mzn)

* In **Monitoring** tab you can Alerts, Boot diagnostics and Health monitoring for your Virtual Machine.

![Monitoring configuration of your Virtual Machine](/files/xzuGt9ClDx1zpXYYXtl1)

* In **Adavance** you can add Extensions, Application or Custom scripts with cloud-init and configuration related to where is located physically your Virtual Machine.

![Adavance configuration of your Virtual Machine](/files/FpmYYcbJuieQDoneMAWF)

* **Tags** tab let you tagging your virtual machine and dependent resources.

![Tag configuration of your Virtual Machine](/files/q3E3XHPhKKtj1retLGbb)

* **Review + create** tab let you see all your configurations and alerts you if any of them need review or change, if not, click on **create** to deploy your **BoxLang with CommandBox Ubuntu 24.04** Virtual Machine.

![Review and create configuration of your Virtual Machine](/files/FZRnEyBgKMpDBrKxzVmQ)


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Red Hat Based Images

Create a Azure Virtual Machine from an Ortus BoxLang MiniServer (Red Hat 8) Virtual Machine (Azure Virtual Machine). We have created several Red Hat based images.

|   | Images                  | Status               |
| - | ----------------------- | -------------------- |
|   | BoxLang MiniServer      | :white\_check\_mark: |
|   | BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Re Hat based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Red Hat 8 based, you can follow this [link](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/redhat.rh-rhel?tab=Overview) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**    | **Description**                                      |
| ------------------------ | -------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`     | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox`  | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`             | BoxLang version installed and to be used for BoxLang |
| BVM\_HOME                | `/usr/local/boxlang` | BoxLang Version Manager home                         |

## Default site

For every Linux based BoxLang Cloud Server a Systemd daemon is used to get up and running a Web Server on well know HTTP port 80/TCP. Depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start a custom site or application, you can update this daemon service if need it, or just only place your custom site or application under `/web/boxlang-site/wwwroot` directory.

| Server                  | Red Hat like                                                                                           | Debian like                                                                                            | Daemon name        |
| ----------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------ |
| BoxLang MiniServer      | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | boxlang-miniserver |
| BoxLang with CommandBox | `/bin/box server start serverConfigFile=server.json`                                                   | `/usr/local/bin/box server start serverConfigFile=server.json`                                         | coldbox-site       |

{% hint style="info" %}
If you only place your custom site under `/web/boxlang-site/wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang MiniServer for RedHat**](/microsoft/redhat-based-images/boxlang-miniserver) or look for **Ortus Solutions, Corp** to look for out full catalog.


# Changelog

## Version 1.5.0

### Changed

* Bump BoxLang version to 1.5.0+41
* Systemd daemon for manage BoxLang MiniServer process is now `boxlang-site`

### Added

* startBoxLangSite.sh script is now on charge to start|stop BoxLang MiniServer process through boxlang-site Systemd daemon
  * It checks if there is custom site under `/web/boxlang-site/wwwroot` placed by users and if there is a server.json file, if not start default ColdBox Application under `/web/boxlang-site/default`

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0

## Version 1.1.0

### Added

* BoxLang MiniServer now support URL Rewrites

### Removed

* Nginx Reverse Proxy

## Version 0.3.0

* Initial Release


# BoxLang with CommandBox

This Virtual Machine create a runnging ColdBox Site using BoxLang as server with bx-compat-cfml module using CommandBox for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for RedHat**](/microsoft/redhat-based-images/boxlang-with-commandbox) or look for **Ortus Solutions, Corp** to look for out full catalog.


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Windows Based Images

Create an Azure Virtual Machine from an Ortus BoxLang with CommandBox (Windows Server 2019) Virtual Machine (Azure VM). We have created several based Windows based images.

| Images                  | Status               |
| ----------------------- | -------------------- |
| BoxLang MiniServer      | :white\_check\_mark: |
| BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Windows based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang + CommandBox**              |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Windows Server 2019 based, you can follow this [link](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoftwindowsserver.windowsserver?tab=Overview) to know more about base software running.

## Environment variables

| **Variable**             | **Default value** | **Description**                                      |
| ------------------------ | ----------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `C:\boxlangHome`  | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `C:\CommandBox`   | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`          | BoxLang version installed and to be used for BoxLang |

## Default site

For every Windows based BoxLang Cloud Server a scheduled task is used to get up and running a Web Server on well know HTTP port 80/TCP. You can find this scheduled task as name **"Start ColdBox Sample Application"**, depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start your any custom site, you can update this task if need it, or just only place your custom site under `C:\inetpub\wwwroot` folder

| Server                  | Command execution                                                                                                  | Scheduled task name              |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| BoxLang MiniServer      | `C:\boxlang\bin\boxlang-miniserver.bat --host 0.0.0.0 --port 80 --webroot C:\inetpub\wwwroot --rewrites index.cfm` | Start ColdBox Sample Application |
| BoxLang with CommandBox | `C:\box\box.exe -commandbox_home=C:/CommandBox server start serverConfigFile="C:\inetpub\wwwroot\server.json"`     | Start ColdBox Sample Application |

{% hint style="info" %}
If you only place your custom site under `C:\inetpub\wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This Azure Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need a Microsoft Subscription, if not have one follow this [link](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account) to get 200 USD of credits.

In Azure Marketplace you find this Virtual Machine offer as [**BoxLang MiniServer for Windows**](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ortus.boxlang-miniserver-windows?tab=Overview) or look for **Ortus Solutions, Corp** to look for out full catalog.

## Deploy BoxLang MiniServer for Windows from Azure Marketplace

* In the overview product click on **create** button to start deployment proccess

![BoxLang MiniServer for Windows overview](/files/21rkA2aia6h3UPnLCqSb)

* In **Basics** tab select your Azure Subscription, resource group and region where Virtual Machine reside. Also, you set here Name, Availability zone, Size, Username and your desired method to login of your Virtual Machine.

![Basic configuration of your Virtual Machine](/files/MukkHSswjtBv86Xuuaxn)

* **Disks** tab let you set up additional managed disk for your Virtual Machine, We recommend to add one additional data disk to store your data. If you change a different size for disk read [How expand your partition size](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/expand-disks) documentation.

![Disks configuration of your Virtual Machine](/files/jeoZvHMsL8hdY9UWpprd)

* In **Networking** you set up Virtual Network, Subnet, Public IP and Network Security (this can be default or make a custom by you). If Virtual Machine size selected is compatible you can enable Accelerated networking. Also if you plan to deploy this Virtual Machine behind a Load Balancer you can config that from here.

![Networking configuration of your Virtual Machine](/files/LHPlKN19K2iL2rNuT5u3)

* **Management** tab let you configure Identity for your Virtual Machine, Auto-shutdown, backups and Guest OS update. Some features are available only for certain Virtual Machines size, if you want to review more detailed documentation about features availability follow this [link](https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview?tabs=breakdownseries%2Cgeneralsizelist%2Ccomputesizelist%2Cmemorysizelist%2Cstoragesizelist%2Cgpusizelist%2Cfpgasizelist%2Chpcsizelist).

![Management configuration of your Virtual Machine](/files/kyhBm7vQoVO85iB8mcSu)

* In **Monitoring** tab you can Alerts, Boot diagnostics and Health monitoring for your Virtual Machine.

![Monitoring configuration of your Virtual Machine](/files/Db3L8LUwFzNTbA4HPKrS)

* In **Adavance** you can add Extensions, Application or Custom scripts with cloud-init and configuration related to where is located physically your Virtual Machine.

![Adavance configuration of your Virtual Machine](/files/JXkxQjHifkVt9y97Kunp)

* **Tags** tab let you tagging your virtual machine and dependent resources.

![Tag configuration of your Virtual Machine](/files/DIJnqtpJ2bjyE7rfTSab)

* **Review + create** tab let you see all your configurations and alerts you if any of them need review or change, if not, click on **create** to deploy your **BoxLang with CommandBox Ubuntu 24.04** Virtual Machine.

![Review and create configuration of your Virtual Machine](/files/z0kujMY1vJ3dR9D3bb13)


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0

## Version 1.1.0

### Added

* BoxLang MiniServer now support URL Rewrites

### Removed

* Nginx Reverse Proxy

## Version 0.3.0

* Initial Release


# BoxLang with CommandBox

This Azure Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need a Microsoft Subscription, if not have one follow this [link](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account) to get 200 USD of credits.

In Azure Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for Windows**](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ortus.boxlang-miniserver-windows?tab=Overview) or look for **Ortus Solutions, Corp** to look for out full catalog.

## Deploy BoxLang with CommandBox for Windows from Azure Marketplace

* In the overview product click on **create** button to start deployment proccess

![BoxLang with CommandBox for Windows overview](/files/n6DMqWn13TyWUuV2kUXv)

* In **Basics** tab select your Azure Subscription, resource group and region where Virtual Machine reside. Also, you set here Name, Availability zone, Size, Username and your desired method to login of your Virtual Machine.

![Basic configuration of your Virtual Machine](/files/KGt2WTeqRVmQDTxgFW1n)

* **Disks** tab let you set up additional managed disk for your Virtual Machine, We recommend to add one additional data disk to store your data. If you change a different size for disk read [How expand your partition size](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/expand-disks) documentation.

![Disks configuration of your Virtual Machine](/files/Zw9EQIiAmGXm8wQHg13H)

* In **Networking** you set up Virtual Network, Subnet, Public IP and Network Security (this can be default or make a custom by you). If Virtual Machine size selected is compatible you can enable Accelerated networking. Also if you plan to deploy this Virtual Machine behind a Load Balancer you can config that from here.

![Networking configuration of your Virtual Machine](/files/RwiSdOvflmd7ifRvyfiE)

* **Management** tab let you configure Identity for your Virtual Machine, Auto-shutdown, backups and Guest OS update. Some features are available only for certain Virtual Machines size, if you want to review more detailed documentation about features availability follow this [link](https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview?tabs=breakdownseries%2Cgeneralsizelist%2Ccomputesizelist%2Cmemorysizelist%2Cstoragesizelist%2Cgpusizelist%2Cfpgasizelist%2Chpcsizelist).

![Management configuration of your Virtual Machine](/files/BamJGoz0lwFBg1OlpsMS)

* In **Monitoring** tab you can Alerts, Boot diagnostics and Health monitoring for your Virtual Machine.

![Monitoring configuration of your Virtual Machine](/files/3INA7q6UWJp8Qi5hwkWa)

* In **Adavance** you can add Extensions, Application or Custom scripts with cloud-init and configuration related to where is located physically your Virtual Machine.

![Adavance configuration of your Virtual Machine](/files/3hdMPnP0hohYOSfSPOyx)

* **Tags** tab let you tagging your virtual machine and dependent resources.

![Tag configuration of your Virtual Machine](/files/upzCWJbYwbfERBP5BUnd)

* **Review + create** tab let you see all your configurations and alerts you if any of them need review or change, if not, click on **create** to deploy your **BoxLang with CommandBox Ubuntu 24.04** Virtual Machine.

![Review and create configuration of your Virtual Machine](/files/zF7BEPvJgp2Fq5fTvgcw)


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Overview

Now, you can deploy your BoxLang or CFML based application on Google Cloud Platform. For deploying this Virtual Machines you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.


# Ubuntu Based Images

Create a Google Cloud Virtual Machine from an Ortus BoxLang MiniServer (Ubuntu 24.04 LTS) Virtual Machine (Google Compute Engine). We have created several Ubuntu based images.

|   | Images                  | Status               |
| - | ----------------------- | -------------------- |
|   | BoxLang MiniServer      | :white\_check\_mark: |
|   | BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Ubuntu based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Ubuntu 8 based, you can follow this [link](https://cloud.google.com/compute/docs/images/os-details#ubuntu_lts) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**    | **Description**                                      |
| ------------------------ | -------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`     | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox`  | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`             | BoxLang version installed and to be used for BoxLang |
| BVM\_HOME                | `/usr/local/boxlang` | BoxLang Version Manager home                         |

## Default site

For every Linux based BoxLang Cloud Server a Systemd daemon is used to get up and running a Web Server on well know HTTP port 80/TCP. Depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start a custom site or application, you can update this daemon service if need it, or just only place your custom site or application under `/web/boxlang-site/wwwroot` directory.

| Server                  | Red Hat like                                                                                           | Debian like                                                                                            | Daemon name        |
| ----------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------ |
| BoxLang MiniServer      | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | boxlang-miniserver |
| BoxLang with CommandBox | `/bin/box server start serverConfigFile=server.json`                                                   | `/usr/local/bin/box server start serverConfigFile=server.json`                                         | coldbox-site       |

{% hint style="info" %}
If you only place your custom site under `/web/boxlang-site/wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

## Requirements

* To be subscribed to Virtual Machine offer
* Project Editor or Compute Admin roles in Google Cloud project
* A Service Account with `Cloud Infrastructure Manager Agent` `Compute Admin` and `Service Account User` roles

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for Ubuntu**](https://console.cloud.google.com/marketplace/product/ortussolutions-public/boxlang-miniserver-ubuntu?hl=en\&inv=1\&invt=Ab30zA) or look for **Ortus Solutions, Corp** to look for out full catalog.

Accept Terms and agreements to subscribe to Virtual Machine offer

<div align="center"><img src="/files/6mjCSbi6PFVdNI11Y4z2" alt="Accept terms and agreements"></div>

Deployment config: Set up your deployment with a name, use an existent service account or create a new one for deploying and select the Zone where you want to deploy your virtual machine

<div align="center"><img src="/files/R5FH9CwXZg7elZy9EFhf" alt="Setup deployment name and service account"></div>

Machine type: Select Virtual Machine type and size for your Boot disk

<div align="center"><img src="/files/UScKecHX7PPouCqRScz1" alt="Setup Virtual Machine type"></div>

Networking: Select Network, Subnetwork and External IP configuration for your Virtual Machine

<div align="center"><img src="/files/DZ1575cB5PEfpFjHL1m3" alt="Setup Virtual Networking Config"></div>

Finally select open ports to be available from internet

<div align="center"><img src="/files/U0gRNUSDERSXSMciarTq" alt="Setup Virtual Networking Config"></div>

Once your Virtual Machine is deployed, you can view it from Google Compute Engine console. To connect through SSH, click in SSH button a side of your Virtual Machine. You can copy Private and Public IP to connect you at HTTP (80) port.

<div align="center"><img src="/files/qy6pr3sXcTqWzSQ2EB0r" alt="Google Compute Overview"></div>

When connect through SSH using web console a new window is opened asking for authorize to load your Google Cloud user's SSH keys into virtual machine

| Asking for Authorization                                        | SSH Connected Window                                            |
| --------------------------------------------------------------- | --------------------------------------------------------------- |
| ![Setup Virtual Networking Config](/files/obL4AoaOagmLgBC7GUi4) | ![Setup Virtual Networking Config](/files/YG31RqyPkKxfGHgVRVam) |

If you want to load your own SSH keys or connect to your Virtual Machone with differents SSH clients, follow this [link](https://cloud.google.com/compute/docs/connect/standard-ssh) for more information about it.


# Changelog

## Version 1.5.0

### Changed

* Bump BoxLang version to 1.5.0+41
* Systemd daemon for manage BoxLang MiniServer process is now `boxlang-site`

### Added

* startBoxLangSite.sh script is now on charge to start|stop BoxLang MiniServer process through boxlang-site Systemd daemon
  * It checks if there is custom site under `/web/boxlang-site/wwwroot` placed by users and if there is a server.json file, if not start default ColdBox Application under `/web/boxlang-site/default`

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# BoxLang with CommandBox

This Virtual Machine create a runnging ColdBox Site using BoxLang as server with bx-compat-cfml module using CommandBox for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

## Requirements

* To be subscribed to Virtual Machine offer
* Project Editor or Compute Admin roles in Google Cloud project
* A Service Account with `Cloud Infrastructure Manager Agent` `Compute Admin` and `Service Account User` roles

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for Ubuntu**](https://console.cloud.google.com/marketplace/product/ortussolutions-public/boxlang-with-commandbox-ubuntu?hl=en\&inv=1\&invt=Ab30zA) or look for **Ortus Solutions, Corp** to look for out full catalog.

Accept Terms and agreements to subscribe to Virtual Machine offer

<div align="center"><img src="/files/6mjCSbi6PFVdNI11Y4z2" alt="Accept terms and agreements"></div>

Deployment config: Set up your deployment with a name, use an existent service account or create a new one for deploying and select the Zone where you want to deploy your virtual machine

<div align="center"><img src="/files/R5FH9CwXZg7elZy9EFhf" alt="Setup deployment name and service account"></div>

Machine type: Select Virtual Machine type and size for your Boot disk

<div align="center"><img src="/files/UScKecHX7PPouCqRScz1" alt="Setup Virtual Machine type"></div>

Networking: Select Network, Subnetwork and External IP configuration for your Virtual Machine

<div align="center"><img src="/files/DZ1575cB5PEfpFjHL1m3" alt="Setup Virtual Networking Config"></div>

Finally select open ports to be available from internet

<div align="center"><img src="/files/U0gRNUSDERSXSMciarTq" alt="Setup Virtual Networking Config"></div>

Once your Virtual Machine is deployed, you can view it from Google Compute Engine console. To connect through SSH, click in SSH button a side of your Virtual Machine. You can copy Private and Public IP to connect you at HTTP (80) port.

<div align="center"><img src="/files/qy6pr3sXcTqWzSQ2EB0r" alt="Google Compute Overview"></div>

When connect through SSH using web console a new window is opened asking for authorize to load your Google Cloud user's SSH keys into virtual machine

| Asking for Authorization                                        | SSH Connected Window                                            |
| --------------------------------------------------------------- | --------------------------------------------------------------- |
| ![Setup Virtual Networking Config](/files/obL4AoaOagmLgBC7GUi4) | ![Setup Virtual Networking Config](/files/YG31RqyPkKxfGHgVRVam) |

If you want to load your own SSH keys or connect to your Virtual Machone with differents SSH clients, follow this [link](https://cloud.google.com/compute/docs/connect/standard-ssh) for more information about it.


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Red Hat Based Images

Create a Google Cloud Virtual Machine from an Ortus BoxLang MiniServer (RedHat 8) Virtual Machine (Google Compute Engine). We have created several RedHat based images.

|   | Images                  | Status               |
| - | ----------------------- | -------------------- |
|   | BoxLang MiniServer      | :white\_check\_mark: |
|   | BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Red Hat based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Red Hat 8 based, you can follow this [link](https://cloud.google.com/compute/docs/images/os-details#red_hat_enterprise_linux_rhel) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**    | **Description**                                      |
| ------------------------ | -------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`     | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox`  | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`             | BoxLang version installed and to be used for BoxLang |
| BVM\_HOME                | `/usr/local/boxlang` | BoxLang Version Manager home                         |

## Default site

For every Linux based BoxLang Cloud Server a Systemd daemon is used to get up and running a Web Server on well know HTTP port 80/TCP. Depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start a custom site or application, you can update this daemon service if need it, or just only place your custom site or application under `/web/boxlang-site/wwwroot` directory.

| Server                  | Red Hat like                                                                                           | Debian like                                                                                            | Daemon name        |
| ----------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------ |
| BoxLang MiniServer      | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | `boxlang-miniserver --host 0.0.0.0 --port 80 --webroot /web/boxlang-site/wwwroot --rewrites index.cfm` | boxlang-miniserver |
| BoxLang with CommandBox | `/bin/box server start serverConfigFile=server.json`                                                   | `/usr/local/bin/box server start serverConfigFile=server.json`                                         | coldbox-site       |

{% hint style="info" %}
If you only place your custom site under `/web/boxlang-site/wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

## Requirements

* To be subscribed to Virtual Machine offer
* Project Editor or Compute Admin roles in Google Cloud project
* A Service Account with `Cloud Infrastructure Manager Agent` `Compute Admin` and `Service Account User` roles

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang MiniServer for RedHat**](https://console.cloud.google.com/marketplace/product/ortussolutions-public/boxlang-miniserver-redhat?hl=en\&inv=1\&invt=Ab30zA) or look for **Ortus Solutions, Corp** to look for out full catalog.

Accept Terms and agreements to subscribe to Virtual Machine offer

<div align="center"><img src="/files/6mjCSbi6PFVdNI11Y4z2" alt="Accept terms and agreements"></div>

Deployment config: Set up your deployment with a name, use an existent service account or create a new one for deploying and select the Zone where you want to deploy your virtual machine

<div align="center"><img src="/files/R5FH9CwXZg7elZy9EFhf" alt="Setup deployment name and service account"></div>

Machine type: Select Virtual Machine type and size for your Boot disk

<div align="center"><img src="/files/UScKecHX7PPouCqRScz1" alt="Setup Virtual Machine type"></div>

Networking: Select Network, Subnetwork and External IP configuration for your Virtual Machine

<div align="center"><img src="/files/DZ1575cB5PEfpFjHL1m3" alt="Setup Virtual Networking Config"></div>

Finally select open ports to be available from internet

<div align="center"><img src="/files/U0gRNUSDERSXSMciarTq" alt="Setup Virtual Networking Config"></div>

Once your Virtual Machine is deployed, you can view it from Google Compute Engine console. To connect through SSH, click in SSH button a side of your Virtual Machine. You can copy Private and Public IP to connect you at HTTP (80) port.

<div align="center"><img src="/files/qy6pr3sXcTqWzSQ2EB0r" alt="Google Compute Overview"></div>

When connect through SSH using web console a new window is opened asking for authorize to load your Google Cloud user's SSH keys into virtual machine

| Asking for Authorization                                        | SSH Connected Window                                            |
| --------------------------------------------------------------- | --------------------------------------------------------------- |
| ![Setup Virtual Networking Config](/files/obL4AoaOagmLgBC7GUi4) | ![Setup Virtual Networking Config](/files/YG31RqyPkKxfGHgVRVam) |

If you want to load your own SSH keys or connect to your Virtual Machone with differents SSH clients, follow this [link](https://cloud.google.com/compute/docs/connect/standard-ssh) for more information about it.


# Changelog

## Version 1.5.0

### Changed

* Bump BoxLang version to 1.5.0+41
* Systemd daemon for manage BoxLang MiniServer process is now `boxlang-site`

### Added

* startBoxLangSite.sh script is now on charge to start|stop BoxLang MiniServer process through boxlang-site Systemd daemon
  * It checks if there is custom site under `/web/boxlang-site/wwwroot` placed by users and if there is a server.json file, if not start default ColdBox Application under `/web/boxlang-site/default`

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# BoxLang with CommandBox

This Virtual Machine create a runnging ColdBox Site using BoxLang as server with bx-compat-cfml module using CommandBox for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

## Requirements

* To be subscribed to Virtual Machine offer
* Project Editor or Compute Admin roles in Google Cloud project
* A Service Account with `Cloud Infrastructure Manager Agent` `Compute Admin` and `Service Account User` roles

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for RedHat**](https://console.cloud.google.com/marketplace/product/ortussolutions-public/boxlang-with-commandbox-redhat?hl=en\&inv=1\&invt=Ab30zA) or look for **Ortus Solutions, Corp** to look for out full catalog.

Accept Terms and agreements to subscribe to Virtual Machine offer

<div align="center"><img src="/files/6mjCSbi6PFVdNI11Y4z2" alt="Accept terms and agreements"></div>

Deployment config: Set up your deployment with a name, use an existent service account or create a new one for deploying and select the Zone where you want to deploy your virtual machine

<div align="center"><img src="/files/R5FH9CwXZg7elZy9EFhf" alt="Setup deployment name and service account"></div>

Machine type: Select Virtual Machine type and size for your Boot disk

<div align="center"><img src="/files/UScKecHX7PPouCqRScz1" alt="Setup Virtual Machine type"></div>

Networking: Select Network, Subnetwork and External IP configuration for your Virtual Machine

<div align="center"><img src="/files/DZ1575cB5PEfpFjHL1m3" alt="Setup Virtual Networking Config"></div>

Finally select open ports to be available from internet

<div align="center"><img src="/files/U0gRNUSDERSXSMciarTq" alt="Setup Virtual Networking Config"></div>

Once your Virtual Machine is deployed, you can view it from Google Compute Engine console. To connect through SSH, click in SSH button a side of your Virtual Machine. You can copy Private and Public IP to connect you at HTTP (80) port.

<div align="center"><img src="/files/qy6pr3sXcTqWzSQ2EB0r" alt="Google Compute Overview"></div>

When connect through SSH using web console a new window is opened asking for authorize to load your Google Cloud user's SSH keys into virtual machine

| Asking for Authorization                                        | SSH Connected Window                                            |
| --------------------------------------------------------------- | --------------------------------------------------------------- |
| ![Setup Virtual Networking Config](/files/obL4AoaOagmLgBC7GUi4) | ![Setup Virtual Networking Config](/files/YG31RqyPkKxfGHgVRVam) |

If you want to load your own SSH keys or connect to your Virtual Machone with differents SSH clients, follow this [link](https://cloud.google.com/compute/docs/connect/standard-ssh) for more information about it.


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

### Removed

* `/web/coldbox-site/wwwroot` directory was moved to `/web/boxlang-site/wwwroot`

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Windows Based Images

Create a Google Cloud Virtual Machine from an Ortus BoxLang MiniServer (Windows 2019) Virtual Machine (Google Compute Engine). We have created several Windows based images.

|   | Images                  | Status               |
| - | ----------------------- | -------------------- |
|   | BoxLang MiniServer      | :white\_check\_mark: |
|   | BoxLang with CommandBox | :white\_check\_mark: |

## Software and tools installed matrix

On every Windows based Cloud Server you will find software or tools to achieve best experience with our solutions. This software include:

| **Tool name**                     | **Version installed** | **BoxLang MiniServer**             | **BoxLang with CommandBox**           |
| --------------------------------- | --------------------- | ---------------------------------- | ------------------------------------- |
| CommandBox                        | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |
| BoxLang runtime                   | latest                | :white\_check\_mark:(As OS binary) | :white\_check\_mark:(Into CommandBox) |
| BoxLang MiniServer (As OS binary) | latest                | :white\_check\_mark:               | :x:                                   |
| ColdBox Application               | latest                | :white\_check\_mark:               | :white\_check\_mark:                  |

Due these Cloud Servers are Windows 2019 based, you can follow this [link](https://cloud.google.com/compute/docs/images/os-details#windows_server) to know more about base software running.

## Environment variables

| **Variable**             | **Default value**    | **Description**                                      |
| ------------------------ | -------------------- | ---------------------------------------------------- |
| BOXLANG\_HOME            | `/root/.boxlang`     | Directory where BoxLang place configs and modules    |
| COMMANDBOX\_HOME         | `/root/.commandbox`  | Directory where CommandBox place configs and modules |
| BOXLANG\_TARGET\_VERSION | `latest`             | BoxLang version installed and to be used for BoxLang |
| BVM\_HOME                | `/usr/local/boxlang` | BoxLang Version Manager home                         |

## Default site

For every Windows based BoxLang Cloud Server a scheduled task is used to get up and running a Web Server on well know HTTP port 80/TCP. You can find this scheduled task as name **"Start ColdBox Sample Application"**, depending of the server flavor this can be started using BoxLang MiniServer or CommandBox. If you want to start your any custom site, you can update this task if need it, or just only place your custom site under `C:\inetpub\wwwroot` folder

| Server                  | Command execution                                                                                                  | Scheduled task name              |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------- |
| BoxLang MiniServer      | `C:\boxlang\bin\boxlang-miniserver.bat --host 0.0.0.0 --port 80 --webroot C:\inetpub\wwwroot --rewrites index.cfm` | Start ColdBox Sample Application |
| BoxLang with CommandBox | `C:\box\box.exe -commandbox_home=C:/CommandBox server start serverConfigFile="C:\inetpub\wwwroot\server.json"`     | Start ColdBox Sample Application |

{% hint style="info" %}
If you only place your custom site under `C:\inetpub\wwwroot` remember to delete their content before in order to remove the sample ColdBox Application
{% endhint %}


# BoxLang MiniServer

This Virtual Machine create a runnging ColdBox Site using BoxLang with bx-compat-cfml module for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

## Requirements

* To be subscribed to Virtual Machine offer
* Project Editor or Compute Admin roles in Google Cloud project
* A Service Account with `Cloud Infrastructure Manager Agent` `Compute Admin` and `Service Account User` roles

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for Windows**](https://console.cloud.google.com/marketplace/product/ortussolutions-public/boxlang-miniserver-windows?hl=en\&inv=1\&invt=Ab30zA) or look for **Ortus Solutions, Corp** to look for out full catalog.

Accept Terms and agreements to subscribe to Virtual Machine offer

<div align="center"><img src="/files/6mjCSbi6PFVdNI11Y4z2" alt="Accept terms and agreements"></div>

Deployment config: Set up your deployment with a name, use an existent service account or create a new one for deploying and select the Zone where you want to deploy your virtual machine

<div align="center"><img src="/files/R5FH9CwXZg7elZy9EFhf" alt="Setup deployment name and service account"></div>

Machine type: Select Virtual Machine type and size for your Boot disk

<div align="center"><img src="/files/UScKecHX7PPouCqRScz1" alt="Setup Virtual Machine type"></div>

Networking: Select Network, Subnetwork and External IP configuration for your Virtual Machine

<div align="center"><img src="/files/DZ1575cB5PEfpFjHL1m3" alt="Setup Virtual Networking Config"></div>

Finally select open ports to be available from internet

<div align="center"><img src="/files/U0gRNUSDERSXSMciarTq" alt="Setup Virtual Networking Config"></div>

Once your Virtual Machine is deployed, you can view it from Google Compute Engine console. To connect through SSH, click in SSH button a side of your Virtual Machine. You can copy Private and Public IP to connect you at HTTP (80) port.

<div align="center"><img src="/files/qy6pr3sXcTqWzSQ2EB0r" alt="Google Compute Overview"></div>

When connect through SSH using web console a new window is opened asking for authorize to load your Google Cloud user's SSH keys into virtual machine

| Asking for Authorization                                        | SSH Connected Window                                            |
| --------------------------------------------------------------- | --------------------------------------------------------------- |
| ![Setup Virtual Networking Config](/files/obL4AoaOagmLgBC7GUi4) | ![Setup Virtual Networking Config](/files/YG31RqyPkKxfGHgVRVam) |

If you want to load your own SSH keys or connect to your Virtual Machone with differents SSH clients, follow this [link](https://cloud.google.com/compute/docs/connect/standard-ssh) for more information about it.


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# BoxLang with CommandBox

This Virtual Machine create a runnging ColdBox Site using BoxLang as server with bx-compat-cfml module using CommandBox for you. If you do not want a ColdBox site we will show you how to remove it and have your own site. For deploying this Virtual Machine you need to enable Google Compute API and have a project with billing enabled, if not have one follow this [link](https://cloud.google.com/?hl=en) also, you can get 300 USD of credits.

## Requirements

* To be subscribed to Virtual Machine offer
* Project Editor or Compute Admin roles in Google Cloud project
* A Service Account with `Cloud Infrastructure Manager Agent` `Compute Admin` and `Service Account User` roles

In Google Cloud Marketplace you find this Virtual Machine offer as [**BoxLang with CommandBox for Windows**](https://console.cloud.google.com/marketplace/product/ortussolutions-public/boxlang-with-commandbox-windows?hl=en\&inv=1\&invt=Ab30zA) or look for **Ortus Solutions, Corp** to look for out full catalog.

Accept Terms and agreements to subscribe to Virtual Machine offer

<div align="center"><img src="/files/6mjCSbi6PFVdNI11Y4z2" alt="Accept terms and agreements"></div>

Deployment config: Set up your deployment with a name, use an existent service account or create a new one for deploying and select the Zone where you want to deploy your virtual machine

<div align="center"><img src="/files/R5FH9CwXZg7elZy9EFhf" alt="Setup deployment name and service account"></div>

Machine type: Select Virtual Machine type and size for your Boot disk

<div align="center"><img src="/files/UScKecHX7PPouCqRScz1" alt="Setup Virtual Machine type"></div>

Networking: Select Network, Subnetwork and External IP configuration for your Virtual Machine

<div align="center"><img src="/files/DZ1575cB5PEfpFjHL1m3" alt="Setup Virtual Networking Config"></div>

Finally select open ports to be available from internet

<div align="center"><img src="/files/U0gRNUSDERSXSMciarTq" alt="Setup Virtual Networking Config"></div>

Once your Virtual Machine is deployed, you can view it from Google Compute Engine console. To connect through SSH, click in SSH button a side of your Virtual Machine. You can copy Private and Public IP to connect you at HTTP (80) port.

<div align="center"><img src="/files/qy6pr3sXcTqWzSQ2EB0r" alt="Google Compute Overview"></div>

When connect through SSH using web console a new window is opened asking for authorize to load your Google Cloud user's SSH keys into virtual machine

| Asking for Authorization                                        | SSH Connected Window                                            |
| --------------------------------------------------------------- | --------------------------------------------------------------- |
| ![Setup Virtual Networking Config](/files/obL4AoaOagmLgBC7GUi4) | ![Setup Virtual Networking Config](/files/YG31RqyPkKxfGHgVRVam) |

If you want to load your own SSH keys or connect to your Virtual Machone with differents SSH clients, follow this [link](https://cloud.google.com/compute/docs/connect/standard-ssh) for more information about it.


# Changelog

## Version 1.4.0

### Added

* Bump BoxLang version to 1.4.0

## Version 1.3.0

### Added

* BoxLang update to 1.3.0


# Coming Soon..


