Not sure what to call it, but a combined solution for starting servers/logging/consoles/development would be really nice. Here’s our situation:
- Mongo database driven by a
- Scala/Akka backend server controlled by a
- Ruby/Rails front-end client using a
- PostgreSQL database
- All connecting to Memcached and
- Passing info via Redis
Now, in development, the low-level way to work on this is to spin up a large number of console windows. Start the Mongo database, start the backend service, start the Redis server, start the Rails client- all in different windows to pull the logs– or at least pipe their logs somewhere and tail them. Then, optionally, open any console you want, such as a Rails console and Redis console if working on the front-end.
*The question is this: Is there a solution that will do all of this in a nice way? Possibly a combination of Bash, nice logging with something like Log.io, and Terminals, *
And yes, I know I can script it all up myself:
- I’d rather work on my project directly right now, so may get to it eventually
- Someone who was dedicated to doing it right might actually make something nice, that does things I hadn’t considered.
Foreman
Not 100% what I was looking for, but pretty darn close. Still not sure if it’s designed for non-Ruby applications, like starting an Akka server or Mongo db instance, but those can be done through rake tasks and amount to the same thing.
There’s another piece of software called Upstart (here’s a tutorial) that apparently works well with Foreman, and ensures that processes don’t die on you unexpectedly.
This all seems like a decent way to get all the servers spun up and logs dumping smartly. It doesn’t give you an automated popup of Textmate in the directory, but that’s pretty minor.