Open aantron opened 9 months ago
Looks like I opened a duplicate issue on my own repo... https://github.com/aantron/dream/issues/273
@aantron how about trying out Railway or Replit? Both of them provide a Nix-based approach, meaning that you have flexibility over choosing packages. Personally, I've struggled with using opam as I'm a beginner myself (you're forced to use only Nix and not the in-built package manager, I think?), but I've tried Replit with SvelteKit, and I think it's quite nice.
I'd be happy to add either one. Would you (or someone) be willing to create an initial PR? I would polish it afterwards (as we did with Fly.io by @dangdennis and as I've recently done to maintain our existing deployment examples). It would be a great help to me to not have to figure out each platform on its own from zero, but to have some initial instructions I could get started with.
I personally found Railway intriguing in the last few days. Haven't looked into Replit yet.
I made a template on railway for dream fwiw. https://railway.app/template/mxESzS
while railway created nixpacks, for unsupported languages, docker is still the way to go.
I made a template on railway for dream fwiw. https://railway.app/template/mxESzS
while railway created nixpacks, for unsupported languages, docker is still the way to go.
Great! What's the best way for us to present it in the Dream repo? As a link? As an example within the Dream repo?
I think I can write a minimalistic example based on this.
Railway does seem to lack a free plan. The issue here is not money (Dream already pays much more to host dream.as). I don't think I can justify the time cost of managing an extra entanglement for a hosting platform at this point.
@aantron fair point. I think I remember why I deleted my account immediately. At least from a beginner's PoV, they would prefer a free hosting service. Perhaps Replit would be a fair place to write a few tutorials? What would be a example tutorial you'd recommend me to try out?
Edit: Looks like OCaml already exists, and the example, although not a Dream project, can be swapped easily with the example.
We'd probably wantt just the simplest "Hello, world!" type of example, like the Heroku one:
let () =
Dream.run ~interface:"0.0.0.0" ~port:80
@@ Dream.logger
@@ Dream.router [
Dream.get "/" (fun _ -> Dream.html "Dream running in Reeplit!");
]
As I understand it, it's no longer possible to deploy to Heroku for free, which complicates maintenance with the need to be on a paid plan. I also suspect that Heroku is much less popular as a result of this. So, I'm inclined to remove the Heroku example, as it probably won't be updated. It can still be found in the repo history if anyone needs it.