Skip to content

VaSh is a content manager aka a blog engine powered by node.js and Redis. All is driven by memory cache (static content + database) so it's really really... really fast !

Notifications You must be signed in to change notification settings

elkhawajah/Node.VaSH

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.VaSH [ALPHA]

Description

You have a dedicated server and want to try one of the most faster blog in the world ? Try it :)

VaSh is a content manager aka a blog engine powered by node.js and Redis. All is driven by memory cache (static content + database) so it's really really... really fast !

Including a cluster architecture, VaSh is also highly scalable and can host multi blogs. As well as others blogs, it includes templates, widgets, internationalization, and auto translate features.

Finally, it offers Single Sign On login system to help users to log them with auth providers (facebook, google, yahoo, openid, twitter, linkedin...) Once connected, users can publish comments, talk...

Features

  • Scalable
  • Load balancing
  • Very very fast
  • Multi platform
  • Widgets (twitter, analytics...)
  • SSO (Login with facebook, twitter, google...)
  • Comments
  • Templates (in beta)
  • Live chat (in beta)
  • Internationalization (in beta)
  • Auto translate (in beta)

Requirements

Install Redis...
Visit url ==> http://redis.io/download

Install Node.js...
Visit url ==> http://node.js

Installation

As you're a G33K and have no GUI :

$ git clone --recursive [email protected]:G33kLabs/Node.VaSH.git
$ cd Node.VaSH
$ npm update

Configure it

An automated installer is planified in beta version, but for moment, you've to customize your blog with editing a config file with a text editor : sites/default/config.js

Site informations

// -> Site name, Brand & copyright in footer
site_name: 'JS> Node',
brand: "JS> Node",
copyright: "© G33K Labs | 2012",

Main website url

// -> Production env base url (used for rss feed and permanent links)
website: 'http://www.js2node.com',

Dev website url

// -> Development env base url (used when dev flag is enabled in app config)
local: 'http://local.js2node.com:10000',

Alias hostnames

// -> Alias responding to this config, will answer to 
// - http://local.js2node.com/ 
// - http://www.js2node.com/ 
// - http://localhost/
aliases: ['local.js2node.com', 'www.js2node.com', 'localhost'],

Default SEO tags

// -> Default SEO
title: "JS> Node",
title_sufix: " | G33K",
desc: "A developer blog about js, node.js and other modern tools",
desc_category: "Discover all articles about {{cat}}{{#page_count}} - Page{{page_count}}{{/page_count}}",

Menus in navbar (should be dynamic in beta version)

// -> Navbar menus
menus: ['Home', 'Nodejs', 'jQuery', 'Redis.io', 'Snippets', 'Contact'],

Activate widgets

// -> Widget loaded
widgets: ['aboutme', 'mostviewed', 'github', 'disqus', 'blogroll', 'archives', 'lazyload', {
	id: 'analytics',
	code: 'Enter here your google analytics code'
}],

Assets to package in one file and load

// -> Assets loaded and packed
assets: {
    css: [
        '/common/vendors/bootstrap/bootstrap.css', 
        '/common/vendors/markdown/highlight.monokai.css',
        '/assets/css/app.css'
    ],
    js: [
        '/common/vendors/jquery.min.js', 
        '/common/vendors/async.min.js', 
        '/common/vendors/date.min.js', 
        '/common/vendors/mustache.min.js', 
        '/common/vendors/underscore.min.js', 
        '/common/vendors/backbone.min.js', 
        '/common/vendors/bootstrap/bootstrap.js', 
        '/common/vendors/jquery.lazyload.min.js', 
        '/common/vendors/humanized_time_span.js', 
        '/common/vendors/jquery.oembed.min.js',
        '/common/vendors/jquery.social/jquery.fb.js',
        '/common/vendors/jquery.social/jquery.gplus.js',
        '/common/vendors/jquery.social/jquery.twitter.js',
        '/common/vendors/VaSH.toolkit.js/vash.toolkit.js', 
        '/assets/js/app.js'
    ]
},

SSO providers for login

// -> Single Sign On allowed providers
providers: {
    facebook: {
        infos: {
            clientID: 'type yours',
            clientSecret: 'type yours'
        },
        opts: {
            perms: {scope: 'email'}
        }
    },
    twitter: {
        infos: {
            consumerKey: 'type yours',
            consumerSecret: 'type yours'
        } 
    },
    github: {
        infos: {
            clientID: 'type yours',
            clientSecret: 'type yours'
        }
    }
},

Define admins

// -> Define admins => "provider"_"userid"
admins: ['twitter_244561106', 'facebook_582526084'],

Define users

author: '[email protected]',
authors: {
    '[email protected]': {
        pseudo: 'G33K',
        name: 'Guillaume DE LA RUE',
        avatar: 'https://profiles.google.com/s2/photos/profile/115555146160120072472',
        profile: 'https://plus.google.com/115555146160120072472/posts',

		// -> Used in 'About Me' widget
        city: 'Paris',
        country: 'France',
        job: 'Consultant / Développeur',
        employer: 'G33kLabs',
        social: {
            twitter: {
                provider: 'Twitter',
                id: '244561106',
                pseudo: '@G33kLabs',
                profile: 'https://twitter.com/G33kLabs',
                classname: 'color_fluoblue'
            },
            github: {
                provider: 'Github',
                pseudo: '@G33kLabs',
                profile: 'https://github.com/G33kLabs',
                classname: 'color_greenlight'
            },
            google: {
                provider: 'Google+',
                id: '115555146160120072472',
                pseudo: '@G33k',
                profile: 'https://plus.google.com/115555146160120072472/',
                classname: 'color_yellow'
            }
        }
    }
}

Run it

$ node app.js

Test it

Open your browser and enter the url configured (you can see that in logs) :

20:45:18 [*] 1 | WebServer STARTED : http://localhost:10000/

Credits

About

VaSh is a content manager aka a blog engine powered by node.js and Redis. All is driven by memory cache (static content + database) so it's really really... really fast !

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published