On a general quest to find free tier deployment op...
# cfml-general
b
On a general quest to find free tier deployment options and curious if anyone has experience with render.com
Unnecessary details: My high school daughter has joined Girls Who Code and wants to make some projects on BoxLang, which is cool, but her classmates all have experience with stuff like Node which has these crazy super simple deployment options where they can shove little test sites right out to places like Render which auto-deploys, handles DNS, etc, and is all free.
It's hard to find some equivalent easy solutions for CF/BoxLang!!
I made a simple build pack for Heroku last night, which works well, but was disappointed to find Heroku no longer has a hobby tier šŸ˜•
I tried my hand at creating a build pack for Render, but found their documentation incredibly difficult to find in regards to • any language outside of their small set of supported languages • custom java apps • anything involving Docker
ChatGTP wasted a couple hours of my time with 100% incorrect information, lol eye roll
Was thinking perhaps someone here had used Render and understood more about their confusing concepts of "blueprints" and how to set up a
render.yml
file to create a re-usable base repository (build pack) to be able to deploy there easily.
Or suggestions on other hosting options with free tiers is welcome. Render seems to be a pretty popular one though.
I guess I could also mention here, I did get a web service deployed using our miniserver docker container on Render using this Git repo as an example https://boxlang-service.onrender.com/ but I was trying to create a re-usable blue print and somehow it just deployed it as a site, lol. Render's site makes very little sense to me šŸ™‚
t
Not familiar with Render, but perhaps https://fly.io/ is another alternative? I've seen others use it for quick deploys, but not sure how involved it may be for something like a BoxLang app, but they do support Docker files apparently and have a free tier.
b
Cool, I'll check that one out
All I need is JDK 21 and our 10 Meg boxlang miniserver jar to spin up a site, so any option that just lets me run a shell script should work
p
These look like the types of services that it would be awesome if Adobe/Lucee/Ortus provided support for... Help increase CFML visibility a good bit, I'd think.
šŸ‘ 2
d
Brad, my article on the ortus blog is still up. Does this help? https://www.ortussolutions.com/blog/launching-your-boxlang-miniserver
šŸ‘šŸ¼ 1
b
What?? yes!
lol, I didn't realize we had that article!
I think I recall us publishing it, but had totally forgot it was about render
d
Sweetness!
b
interesting-- you used a custom docker file-- I was hoping to avoid that
Is that a requirement?
And does it have to live in my project?
The thing I really like about Heroku is the totaly separation between • my build pack • my actual app I want to deploy
d
Easiest way to deploy boxland to Render.com and avoid costs.
Free tier is what I was after.
b
So, for example, here's my heroku build pack https://github.com/ortus-boxlang/heroku-boxlang-miniserver and here's the app I deployed on it https://github.com/bdw429s/boxlang-heroku-demo You'll notice there's no heroku specific files in the actual git repo for the app itself.
Heroku let's me deploy a dyno where I choose • the app to deploy • the build back to use and those are separate concepts
I couldn't figure out how to deploy on render last night without having to litter junk in my app repo, which means more boilerplate required to use it
So I can basically deploy ANY app on heroku without any special setup in that app's repo
Does Render allow for this? Where I can create a separate build pack that's re-usable
That's what I thought their "blueprint" feature was, but it's confusing as heck, has crap docs, and when I created a "blueprint", it just deployed the darn thing as an actual web service, which was NOT what I wanted at all
I also notice your blog post has a custom setup to auto-deploy changes. Heroku will do this automatically when commits come into the tracked branch. Is this not automatic with Render?
I spent so much time on Google and the Render docs last night trying to get answers to these questions, and just kept coming up empty handed.
d
Render supports these types of apps. Which means you configure your app in Render and tell render which commands to run to build your app. Since boxlang is not supported the ONLY way is to use a prebuilt docker image. • Express (Node.js) • Django (Python) • Ruby on Rails • Gin (Go) • Rocket (Rust) • Phoenix (Elixir) • Laravel (PHP)
So the answer is no.
b
Well, that's a big crap, lol
Heroku doesn't support BoxLang either
d
lol
b
but I can still make a reusable buildpack!
I expected the same from render
REnder doesn't seem to have the concept of the reusable buildpack
Either that, or I'm just not finding it
I still can't figure out how the heck blueprints are supposed to work
d
That is kinda nice of Heroku. How much does it cost?
b
well, they had a free hobby tier for yeras
now, the cheapest tier is like 7 dollars a month
.010 cents an hour or something
or you can do a dev tier that's like a base of 5 dollars a month and spins up/down
šŸ‘šŸ¾ 1
d
Yes I remember now. The dev tier is $5. not bad. Your heroku example is nice for youngters learning. The Render.com way is nice because its free. Im also thinking of teaching from young teenagers to code and I want them to have their website up and running for free. So I will have to setup the build process for them.
b
well yeah, my high school daughter isn't going to even have a credit card to spin up apps to just play with!
Heroku doesn't even let you create an app without a credit card on file
My daughters friends, on the other hand, have all sorts of sweet Node.js apps deployed permanently on Render at no cost and a very low barrier to entry which is super sweet
t
Noticing fly.io also gatekeeps deploying an app without credit card info first. That's unfortunate.
šŸ‘ 1
😢 1
d
Totally get it.
b
It's not the worst thing in the world to have some render config files in the root of her BoxLang apps, but it's just more complication and boilerplate to require that in every example project she wants to deploy
What I REALLY want from Render is the buildpack concept like Heroku where you just combine the app and the buildpack and it deploys it easy peasy without needing to build docker images, etc
d
The app types they support are called templates. So maybe if they just allow users to specify a custom template with some documented requirements we can do boxlang.
b
Well, if you can figure out how the heck to do that...
d
lol
b
In heroku, you can do it ALL from the web UI
Render seems to have no such features
when you deploy a new web service, there are no options whatsoever to point to a template/blueprint/buildpack/whatever
These are the only things you can choose basically
And if you choose Docker, you MUST have a stupid dockerfile in the root of the app repo-- a step I really wanted to avoid
I was really surprised when searching Google and the Render docs, just for deploying a generic Java or even spring boot (similar fat-jar based workflow) there was basically zero information and zero examples out there
Even Heroku (favored by the Ruby community) has a ton of pre-built stuff for Java and JVM langauges
d
True.
m
Hey Brad, Not sure if they gate-keep it w/ cc too, but google cloud has some free options: https://cloud.google.com/free/ Cloudrun is rad. You can also get a tiny compute engine running for free. I've run ACF there. Boxxy should run fine? Maybe? You do need to push a docker image to have cloudrun work, but its all scriptable and I bet you could easily write an automated solution.
g
@Daniel Mejia if you haven't already, this would be a great topic to submit to next year's ITB. šŸ˜‰ https://docs.google.com/forms/d/e/1FAIpQLSey2AsWchrQpiGVEZjod15EH8NbO4ZRJgJcJv-_POqZyzxpiA/viewform
b
Cool, thanks for the additional idea šŸ‘
When I see how darn easy Python, Node, etc is to just spin up and run freaking anywhere, it makes me appreciate how badly CF is missing this for the average student to just dip their feet into
šŸ‘šŸ¾ 1
šŸ‘ 2
When I live in enterprise deployments all day long, it's easy to forget about the hobby use cases
ā˜ļø 2
ā˜šŸ¾ 1
Getting some BoxLang love on REPL.it is also on my list
šŸ‘šŸ¾ 1
šŸ‘ 2
šŸ‘ 2
My daughter is in a high school computer science curriculum and so far 100% of their Python coding has been on REPL.it. She doesn't even know how to install Python, but it doesn't matter, because all their assignments are done in a web browser.
ā¤ļø 1
g
I'm just giddy to see someone ask @bdw429s if he checked out the information he was looking for on the Ortus website. šŸ™ƒ
šŸ˜‚ 1
😜 1
r
Brad, You might do the community a huge favor if you added BoxLang to repl.it From what I am seeing in the docs any language compiling to Java can be added. I am not quite following the Java code examples but pretty sure you might better understand it.
b
Yeah, it's really just a matter of having the time šŸ™‚
b
Copy code
@bdw429s :"My daughter is in a high school computer science curriculum and so far 100% of their Python coding has been on <http://REPL.it|REPL.it>. She doesn't even know how to install Python, but it doesn't matter, because all their assignments are done in a web browser."
A revelation, the shape of things to come in software education!
q
For my classroom projects, if you are looking for free, AWS Lightsail (container deploy of Lucee) fits the bill really nicely. Post on github, build containers on Docker Hub, and deploy on AWS Lightsail free-tier. Good for the first year. If you want longer-term free, substitute Oracle for Lightsail. Azure for students gives $200 in credits each year which is good for about 10 months worth of container hosting. Google also has a free tier as well (but a lot more limited)
b
I actually looked at LightSail but didn't think they had a free tier. Maybe I was looking in the wrong place.
q
Looks like they reduced the Lightsail free-tier to three months, but it's still there (even for containers) : https://aws.amazon.com/lightsail/pricing
I personally really like lightsail for container deployments. It is so dead-simple.