marathon

zero config node.js app server

View the Project on GitHub davewasmer/marathon

it's like pow, but for node

Marathon manages your Node.js application servers to get you up and running quickly. No more starting and stopping servers in your development environment. No more managing application port numbers. No more http://localhost:3000. Just a straightforward web interface, and clean, simple URLs.

screenshot of Marathon

installation

$ npm install marathon -g

During installation, you'll need to answer a couple quick questions about how you want your files setup. After that, it's free and clear. Marathon will automatically start in the background each time you start your computer.

usage

By default, Marathon will inspect ~/.marathon for projects to run (this can be changed during installation).

For each folder inside ~/.marathon, Marathon will check to see if a package.json exists, and if it has a scripts.start property. If so, Marathon will run the start command.

pretty urls

You can see live projects at a pretty URL. Just take the folder name, and add .dev (or whatever TLD you chose during installation). For example, for a project with a folder named my-express-app, you could reach that server at my-express-app.dev.

manage your apps

To manage your running applications, check out marathon.dev. From there you can:

logs

Output from each server is sent to a log file (by default, in ~/.marathon/logs). If you want to see the output of your server in realtime, just run:

$ tail -f ~/.marathon/logs/my-project-name.log

why sudo?

The installation script will ask you for your password while it sets up the local DNS forwarding. If you are concerned about what is happening under the hood, feel free to check out the install script source - it isn't very long, and should be straightforward.

Essentially, to get the pretty URLs you see, Marathon does three things:

Contributions

Contributions are more than welcome! Fork it and pull it. You know the drill.

License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.