katon
katon copied to clipboard
Scenario: already existing webserver
I want to ask about this scenario: I have already existing webserver at localhost:3000. I start it manually from command line. I don't want to change this. Is there a way to simply create a .ka domain for that webserver and server it's requests exactly as they are from the new .ka domain? The webserver serves dynamic, generated content. To say it the other way I don't want Katon to launch the process(es) or watch filesystem.
It would be a really nice simplification if katon would allow cli command like: katon link foofoo.ka localhost:3000 katon link barbar.ka localhost:3001 No process starting, no folders, no watching etc.
Hi,
It's not possible for the moment to do that with Katon. However you can achieve it using Pow proxy or something like Dnsmask.
To understand better your need, may I ask what kind of server are you using? And why don't you want katon to start it for you?
Various. Usually either Node's Express, but inside my dev stack that I don't want to change now (i start express from gulpfile), or something in Clojure, which works differently than node apps (for example I can't restart it this way because of slow JVM start).
Ok, that's interesting. I'm not decided yet if this feature will be implemented or not.
However, I'd like to make it easier to work with katon and other technology.
There's also another thing, katon watches the filesystem only for program started with the command node. So this means that katon link 'gulp server' or katon link other_command only starts the process and that's all. I'm not sure if it's clear in the README.
I'm not a Clojure expert, but when your code changes does Clojure reloads it or do you have to stop it using ctrl-c?
In Clojure it is totally different. You basically code against "live" virtual machine that is running in the background and by sending commands to it you change its state. There are many reasons why it works like that and they are not important for our discussion because even if it would work the "old" way it still takes about 15-20 seconds to load Clojure standard library to the JVM. So all the stuff there almost never works by restarting the process. Usually all this "management" stuff is directly in the app you are programming.
However, the bottom line is not that it is needed for Clojure, but that combining various unrelated features together is great UNTIL one (or more) of the parts doesn't fit one's scenario. By splitting the features into separately usable components it may be require more work to set it up upfront, but in the end it is more flexible and scalable with project's complexity.