Thank you for the update! Let me check the DigitalOcean deployment option.
Let me know how things go with the DigitalOcean deployment.
I made some progress with the Azure deployment but encountered a database migration issue.
So for now, I think DigitalOcean is your best bet.
As I explained you already, I was trying to deploy the Openboxes to Azure portal. However, I was not able to find a solution with the DigitalOcean deployment yet…
Understood. This week, I was working on a fix for the Deploy to Azure bug through the following ticket.
As of earlier today, the Deploy to Azure feature is now completing successfully.
Unfortunately, there’s a bug in the application that’s preventing it from starting. Hypotehtically, you could use the Deploy to Azure feature to create all of the Azure resources needed to run OpenBoxes and then just wait for us to fix the bug. But that might be a waste of money, so I’d recommend waiting.
I have created a bug ticket for that issue and will try to work on it next week. OBGM-626.pdf (95.3 KB)
As mentioned in an earlier reply, the Deploy to Azure feature will deploy a pre-release version (v0.9.0-SNAPSHOT) of OpenBoxes to Azure. This is a very buggy version of the application, so it is not recommended for production use. We are hoping to release v0.9.0 in the Autumn.
The Deploy to DigitalOcean feature will install a production-ready version (v0.8.20-hotfix1) of the application to DigitalOcean.
Here’s the Deploy to DigitalOcean button.
… along with a link with complete instructions on how to deploy OpenBoxes to a DigitalOcean droplet.
@jmiranda Thanks for your help. However, we need to deploy the Openboxes to Azure, but not DigitalOcean.
By the way, why can’t we use the production-ready version (v0.8.20-hotfix1) for Azure?
Hypothetically, you could. Someone with devops expertise just needs to modify a few of the dependencies in the script that gets executed on the Azure VM in order to create a production environment that is suitable for the v0.8.x release. And then someone else needs to test the heck out of the feature.
The original author of the Deploy to Azure button is no longer working on OpenBoxes so we don’t have anyone (other than myself) to support this feature. I can certainly investigate when I get a chance but I can’t promise anything at the moment given my capacity as a paid consultant.
A Little Backstory
The Deploy to Azure feature was part of a larger “Shelf Readiness” project funded by Digital Square in 2020.
The hope was that once the Deploy to Azure feature was working, we’d also be close to releasing OpenBoxes v0.9.0 (which would include a large migration from Grails 1 to Grails 3). I wanted to future-proof the Azure deployment process so we didn’t have to migrate the Deploy to Azure feature once we were done with v0.9.0.
Unfortunately, we didn’t anticipate how long it would take to get the Grails 3 migration funded. After a three-year hiatus, we finally restarted the project in May 2023 and we are hoping to be done in the Fall 2023.
As with everything open-source we either have to find funding for the work we want to do or find someone willing to work for free. I do a little of both, but priority usually goes to the work being funded.
By the way, if you just want to get the latest production-ready version (it looks like the latest unpublished version is v0.8.22-hotfix2) deployed to Azure I can do that without the Deploy to Azure feature.
Just schedule a call with me and we can work through the details.
And that goes for anyone looking to deploy OpenBoxes to their favorite platform. Until we can develop and support automated deployments to any of the flavor of the day IaaS platforms (e.g. AWS, Azure, DigitalOcean, GCP, Linode, RimuHosting, Vultr, etc) we are available to perform these deployments manually (for a nominal fee). Just schedule a call with me to discuss the details.
[unpaid-advertisement]
It just occurred to me that while I praise them daily viva voce, I don’t think I’ve ever mentioned RimuHosting on this website before. So let me take a moment to say that Rimu is by far my favorite hosting provider. And there’s no competition. I started using them in 2007 on the recommendation of a client of mine and I would 1000% recommend Rimu over any other hosting provider if you’re in the market for virtual machines or dedicated servers. The support alone is worth every penny and their VPSs are usually cheaper than any other provider.
[/unpaid-advertisement]
@jmiranda Thanks for the info. I’ve checked the details as you mentioned in above. I am still getting the same error. That’s odd.
@jmiranda Were you able to resolve the issue to deploy the Openboxes to Azure? Please let me know. Thanks so much!
Hey Ruben
I have made some progress
but the underlying bug has not been completely fixed yet.
And it probably won’t be fixed for the next few weeks as I have been (and will continue to be) on leave for most of August. I have limited availability this week, then I will be traveling again next week and won’t be back until the school year starts for the kids on September 5th.
While I have limited availability this week, that means I’ll only be working on paid projects.
I can’t promise any miracles but as I stated in a previous comment, if you don’t mind paying for the time to do the installation, then we can set up an OpenBoxes production environment in your Azure account with just a few hours of work.
If it’s urgent, I can try to free up some time this week to make that happen. If not, then I’ll let you know when/if I get it fixed after I return in September.
Justin
Hey Justin, thanks for getting back to me. Can we use the Azure CLI to deploy the Openboxes to Azure?
If so, just let me know how to do briefly. And also, we’re willing to pay you for the installation. Thanks so much!
Can we use the Azure CLI to deploy the Openboxes to Azure?
I have not personally used Azure CLI much, but I assume you could manually convert the ARM template JSON file (that is used by Deploy to Azure process) to az CLI commands.
Here’s a link to the ARM template we use.
Fwiw, I just decompiled the ARM JSON file to bicep (see attachment below) in case that’s useful.
openboxes-arm.bicep (7.7 KB)
If so, just let me know how to do briefly.
I assume the Deploy to Azure button is just using the az group and deployment commands. Maybe some others.
So if you wanted to do this yourself,
- Get the code by cloning our devops repository
git clone https://github.com/openboxes/openboxes-devops.git
- Then use the AZ CLI to create a resource group
az group create -l eastus -n MyResourceGroup
- And then do the deployment
az deployment group create --resource-group MyResourceGroup --template-file arm-template/openboxes-arm.json
- That should create all of the Azure resources (VM, IP, firewall rules, etc) needed to deploy OpenBoxes.
- This would be a good point to add my public key to the VM if you wanted assistance.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc5CgN3KkhMASQhIrh7y+D1Uu09M0vZKP7UAOVAUl5IIaIBpLcVFQW+Z2EtHgkgeSHLyaSLo6sW5EERQqhAwzgD9i3Y5ByUM2pTSZsW+q1oRAKksRxiq50imzlXstZRM4X5K13KFLWtJfbBkHxvTxtpStgaVmiZc81Ad/fer8bdamV13Rq+NHUp5YhJJQp4ipHCezdYRD57Dn49WW+7VnU+7+uNId1ayl6ROYk88ANa2tssNta/SiqtPxpF8atXYoD7sbAgaDKMMco3o+nsbRjXwozlmcyo+1O75rwA3OiU6TVj1SJCtyOJuzJnxOAtLAPwwOZXhpPKewwDkVdRcmj jcm62@columbia.edu
- Once the resources are provisioned, we can manually run through the setup script that installs OpenBoxes and its dependencies.
NOTE: I would hold off on this until we discuss your intentions (see questions in the next section) as you’ll need to modify the installation process depending on whether you want the latest stable version or a pre-release version). The script above installs the buggy pre-release version.
And also, we’re willing to pay you for the installation. Thanks so much!
Are you ok with the pre-release version (0.9.x) or do you want a stable production-ready release (0.8.22)? The pre-release (0.9.x) is going through a thorough testing procedure right now, so it’s buggy but more stable. It is nearing alpha but probably won’t be production-ready until December.
If you’re ok with the stable release, I think the best way forward would be to go through Steps 1 through 4 to create the infrastructure components needed. And then you just need to add my public key to the VM so I can jump on the server to deploy the application and fix any deployment issues.
@jmiranda Thanks for your reply.
By the way, I am not sure how to specify the Openboxes version in the ARM template. Please let me know.
Is there a way to specify the Openboxes version?
Hey @Todd_Palmer There’s no way to specify a different version when using the Deploy to Azure button. This deployment method only supports the latest development version of the software v0.9.x.
The tech stack for v0.9.x (alpha) was upgraded as part of our recent (on-going) migration project so you’ll need to stick with v0.9.x.
If you want to install a v0.8.x release just use the manual installation instructions. If you have any difficulties post them here and we can troubleshoot.
If you want to modify the ARM template you need to look at the ob-setup-vm.sh script. After the VM has been provisioned Azure will run through that script to install dependencies (Java, MySQL, Tomcat) and then deploy the latest build of the v0.9.x release.
So if you want to go down that path I can help figure out what needs to be changed in the script to install v0.8.x compatible build. I just won’t be able to do much more while I’m on leave (until sept 5).
Thanks for the response, we will update our build to v0.9x and then try to modify the ARM template and script.
Hey Justin, hope this message finds you well. How’s it coming along?
Hey Ruben
Thanks for the bump. The kids went back to school today so I’m officially back to work. I’ve got a ton of development work to catch up on but will try to make some time for DevOps tasks as well.
Did you make any progress with the instructions I posted a few weeks ago?
If not, it’ll probably be easier to manually install an instance of OB on Azure rather than trying to futz around with the ARM template IaC and Azure CLI.
So let’s jump on a call this week to discuss a strategy for the short term.
Justin
Hey Justin, thanks for getting back to me. Let me know when you’re free.