Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

0.3.1 back-end errors in browser log, rewritten: godmodel godsocket g…

…odcontrol watchit watchcopy and app file loading
  • Loading branch information...
commit a0a6abd0963f8ed81dea2e6ef561c0c5b81fd153 1 parent 6833260
@haraldrudell authored
View
1  ChangeLog
@@ -1,3 +1,4 @@
+2013-01-25 0.350 Node God as four processes, rotates log on size and time, License, ChangeLog
2013-01-20 0.3.0 Node God as four processes, rotates log on size and time, License, ChangeLog
2013-01-14 0.2.3 one-line top-level files, nodegodweb api rewrote godmodel, apprunner 0.2.2
2013-01-12 0.2.2 refactored perioder, rotatedlogger with rename-retry
View
2  package.json
@@ -12,7 +12,7 @@
"tools",
"operations"
],
- "version": "0.3.0",
+ "version": "0.3.1",
"contributors": [
{
"name": "Harald Rudell",
View
131 readme.md
@@ -1,33 +1,37 @@
-# Node God
-
-Node God manages node applications, restarts them on crash and produces a shared log.
-
-![alt Nodegod Screen Shot](https://raw.github.com/haraldrudell/nodegod/master/test/images/nodegod.png)
-
-# Benefits
-
-1. **Monitor** a handful of apps on a handful of servers as you work on them
-2. **Immediate glance**: the top bar goes red if any app is in crash state or the connection is lost
-3. **Focus** on your current app by scrolling it into view
-4. **No command line.** Ever.
-
-# Features
-
-1. Launch and **lifecycle management** of any number of apps
-2. **Browser interface** supporting remote machines over ssh tunnel
-3. Websocket communication for **real-time** updates
-4. Command queue and application state and transitions for **run/stop/debug**.
-5. **Restarts** apps automatically until crash within 3 seconds.
-6. If app state is crashed, **file watchers** are still active so that a relaunch attempt is made on file update.
-7. File watchers restart the app after a 1 second idle time, so that all file writes have time to complete.
-8. Ability to reload app configurations as apps are added.
-9. If Node God crashes, it will relaunch managed apps on restart so that they again become managed.
-10. USRSIG2 signal for **graceful shutdown**, implemented by [App Runner](https://github.com/haraldrudell/apprunner)
-11. Aggregation of stdout from many apps to a **common log**.
-12. Fetch of port and url from the app so **direct link** can be displayed in the ui.
-
-# Run as demo
-
+<!doctype html>
+<title>Node God</title>
+
+
+<h1>Node God</h1>
+<p>Node God manages node applications, restarts them on crash and produces a shared log.</p>
+<img src=https://raw.github.com/haraldrudell/nodegod/master/test/images/nodegod.png alt="Nodegod Screen Shot" />
+<p>&copy; <strong><a href=http://www.haraldrudell.com>Harald Rudell</a></strong> wrote Node God for node in May, 2012. MIT License</p>
+<h1>Benefits</h1>
+<ol>
+<li><strong>Monitor</strong> a handful of apps on a handful of servers as you work on them</li>
+<li><strong>Immediate glance</strong>: the top bar goes red if any app is in crash state or the connection is lost</li>
+<li><strong>Focus</strong> on your current app by scrolling it into view
+<li><strong>No command line.</strong> Ever.</li>
+</ol>
+<h1>Features</h1>
+<ol>
+<li>Launch and **lifecycle management** of any number of apps</li>
+<li><strong>Browser interface</strong> supporting remote machines over ssh tunnel</li>
+<li>Websocket communication for <strong>real-time</strong> updates</li>
+<li>Command queue and application state and transitions for <strong>run/stop/debug</strong>.</li>
+<li><strong>Restarts</strong> apps automatically until crash within 3 seconds.</li>
+<li>If app state is crashed, <strong>file watchers</strong> are still active so that a relaunch attempt is made on file update.</li>
+<li>File watchers restart the app after a 1 second idle time, so that all file writes have time to complete.</li>
+<li>Ability to reload app configurations as apps are added.</li>
+<li>If Node God crashes, it will relaunch managed apps on restart so that they again become managed.</li>
+<li>USRSIG2 signal for <strong>graceful shutdown</strong>, implemented by <a href=https://github.com/haraldrudell/apprunner>App Runner</a></li>
+<li>Aggregation of stdout from many apps to a <strong>common log</strong>.</li>
+<li>Fetch of port and url from the app so <strong>direct link</strong> can be displayed in the ui.</li>
+</ol>
+<p><strong>Node God</strong> is robustly written as four detached processes carefully designed to stay running indefinitely. These processes will stay running until you power of your machine.</p>
+
+
+<h1>Run as demo</h1>
```js
nodegod$ node app
@@ -39,32 +43,36 @@ Application Node God on node v0.6.14 available on port 1111 in development mode
127.0.0.1
```
-opens a browser window that monitors an app that exits every 10 seconds.
+<p>opens a browser window that monitors an app that exits every 10 seconds.</p>
+
-# Configuration Files
+<h1>Configuration Files</h1>
-## nodegod.json
-Node God itself is configured using a json file that provides port number, a session secret and the location of other json files containing application configurations. The paths searched for nodegod.json are:
-* $HOME/apps
-* $HOME
-* Node God's launch folder, where app.js is located
+<h2>nodegod.json</h2>
+<p>Node God itself is configured using a json file that provides port number, a session secret and the location of other json files containing application configurations. The paths searched for nodegod.json are:</p>
+<ul>
+<li>$HOME/apps</li>
+<li>$HOME</li>
+<li>Node God's launch folder, where app.js is located</li>
+</ul>
```js
{
"appFiles": "/home/foxyboy/apps/apps.json",
}
```
-* PORT: optional number: the port for Node God, defaults to env.PORT or 1111
-* appFiles: optional string or array of strings: filenames to search for app configurations.
- * if strings are not fully qualified paths, the folder where nodegod.json was found or node god's app folder are searched
- * default: apps.json in either the noegod.json folder or nodegod's app folder
-* sessionSecret: optional string, has a default value
-* defaultFolder: a parent folder for deployed apps, default the parent folder of where nodegod's app.js is located
-
-Note: pids are stored in a file at $HOME/tmp or the global temp folder
-
-## Configuring files for monitored apps
-
+<ul>
+<li>PORT: optional number: the port for Node God, defaults to env.PORT or 1111</li>
+<li>appFiles: optional string or array of strings: filenames to search for app configurations.<ul>
+ <li>if strings are not fully qualified paths, the folder where nodegod.json was found or node god's app folder are searched</li>
+ <li>default: apps.json in either the noegod.json folder or nodegod's app folder</li></ul></li>
+<li>sessionSecret: optional string, has a default value</li>
+<li>defaultFolder: a parent folder for deployed apps, default the parent folder of where nodegod's app.js is located</li>
+</ul>
+<p>Note: pids are stored in a file at $HOME/tmp or the global temp folder</p>
+
+
+<h2>Configuring files for monitored apps</h2>
```js
{
"Node.js #3": {
@@ -78,19 +86,14 @@ Note: pids are stored in a file at $HOME/tmp or the global temp folder
}
}
```
-
-* Key: the name of this app
-* id: optional string: the identifier (computer-friendly string) used for this app. default is derived from the app name, for "Node.js #3" here it would be "nodejs3"
-* state: optional string: the initial state of the app: run/stop/debug, default run
-* folder: optional path: the folder where the app is deployed. Default is a sibling folder to nodegod, ie. the parent folder of nodegod with id appended.
-* start: optional string or array of strings: parameters to the node executable, default app.js in the app's folder
-* watchFiles: optional string or array of Strings: filenames and folders to watch. If any file changes the app is restarted
-* launchBrowser: optional string: url for which a browser window is launched once
-
-# Notes
-
-(c) [Harald Rudell](http://www.haraldrudell.com) wrote this for node in June, 2012
-
-No warranty expressed or implied. Use at your own risk.
-
-Please suggest better ways, new features, and possible difficulties on [github](https://github.com/haraldrudell/nodegod)
+<ul>
+<li>Key: the name of this app</li>
+<li>id: optional string: the identifier (computer-friendly string) used for this app. default is derived from the app name, for "Node.js #3" here it would be "nodejs3"<li>
+<li>state: optional string: the initial state of the app: run/stop/debug, default run<li>
+<li>folder: optional path: the folder where the app is deployed. Default is a sibling folder to nodegod, ie. the parent folder of nodegod with id appended.<li>
+<li>start: optional string or array of strings: parameters to the node executable, default app.js in the app's folder<li>
+<li>watchFiles: optional string or array of Strings: filenames and folders to watch. If any file changes the app is restarted<li>
+<li>launchBrowser: optional string: url for which a browser window is launched once<li>
+</ul>
+<p>&copy; <strong><a href=http://www.haraldrudell.com>Harald Rudell</a></strong> wrote Node God for node in May, 2012. MIT License</p>
+</html>
View
2  test/test-appentity.js
@@ -8,7 +8,7 @@ var assert = require('mochawrapper')
exports['AppEntity'] = {
'Exports': function () {
- assert.exportsTest(appentity, 2)
+ assert.exportsTest(appentity, 1)
},
'TODO': function () {
},
View
4 test/test-appstate.js → test/test-applink.js
@@ -1,14 +1,14 @@
// test-appstate.js
// © Harald Rudell 2012 MIT License
-var appstate = require('../lib/appstate')
+var applink = require('../lib/applink')
// https://github.com/haraldrudell/mochawrapper
var assert = require('mochawrapper')
exports['AppState'] = {
'Exports': function () {
- assert.exportsTest(appstate, 1)
+ assert.exportsTest(applink, 1)
},
'TODO': function () {
},
View
15 test/test-getfilenames.js
@@ -1,15 +0,0 @@
-// test-getfilenames.js
-// © Harald Rudell 2013 MIT License
-
-var getfilenames = require('../lib/getfilenames')
-
-// https://github.com/haraldrudell/mochawrapper
-var assert = require('mochawrapper')
-
-exports['GetFilenames'] = {
- 'Exports': function () {
- assert.exportsTest(getfilenames, 1)
- },
- 'TODO': function () {
- },
-}
View
2  test/test-godmodel.js
@@ -8,7 +8,7 @@ var assert = require('mochawrapper')
exports['GodModel'] = {
'Exports': function () {
- assert.exportsTest(godmodel, 4)
+ assert.exportsTest(godmodel, 1)
},
'TODO': function () {
},
Please sign in to comment.
Something went wrong with that request. Please try again.