a simple command-line http server with web-framework and cms


First, install MongoDB and Memcached and run both

Yode-server also requires node.js version 0.10 and above

Also we need Imagemagick for operations above images

mkdir yode
cd yode
npm install yode-server
npm start yode-server

The installer creates www directory. Or you can choose another name during installation. This is where your projects to be placed. In www/localhost you’ll find a sample project.

All backend files are located in www/localhost/modules,

all static files (css, images, browser-js) are in www/localhost/static,

html-templates are in www/localhost/view

Each new project requires separate directory inside www. The name of project directory must be same as host name. For example: if your project hostname is www.example.com the path should be www/www.example.com


npm start yode-server


node server

starts all virtual hosts located in project directory. If you need to start only one of them, specify it:

node server -p www.example.com

run yode-server as daemon:

node daemon

Admin panel default access (don't forget to add the port number in case it's not 80):

login: yeti
pass: 111111
// file: www/localhost/modules/hello.js 
// the pattern of a yode-module 
// object "server" contents connections to mongodb, memcached and has more useful properties  
exports.Plugin = function(server) {
    this.server = server;
exports.Plugin.prototype.helloWorld = function(reqcallbackauth) {
    callback('Hello World!')

in the browser http://localhost/hello:helloWorld/

// file: www/localhost/modules/models/hello.js 
exports.Plugin = function(server) {
    this.server = server;
// as in the previous example but an object has passed to the callback. 
exports.Plugin.prototype.getHello = function(reqcallbackauth) {
    callback({text: 'Hello World!'})
file: www/localhost/view/hello.tpl
uses jqtpl engine 
// file: www/localhost/modules/hellomvc.js 
exports.Plugin = function(server) {
    this.server = server;
exports.Plugin.prototype.helloWorld = function(reqcallbackauth) {
    var me = this
    me.server.getModel('models.hello').getHello(req, function(datae) {
        me.server.tpl('hello.tpl', data, function(code) {

See the result: http://localhost/hellomvc:helloWorld/

You can also use the model as REST-service in external apps: http://localhost/models.hello:getHello/

  1. Log into admin interface: http://localhost/admin/ (yeti:111111)
  2. Go to Start -> Site tools -> Pages
  3. Click (+) icon
  4. Enter page name
  5. Select template
  6. Click [Add] - button (in right-bottom panel Page blocks)
  7. Enter hellomvc:helloWorld to field Content type
  8. Save

Now you can see your "Hello World" on the new page (the path is in the second column of pages tree in admin-panel)