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...
- 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)
Install Redis...
Visit url ==> http://redis.io/download
Install Node.js...
Visit url ==> http://node.js
As you're a G33K and have no GUI :
$ git clone --recursive git@github.com:G33kLabs/Node.VaSH.git
$ cd Node.VaSH
$ npm update
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 name, Brand & copyright in footer
site_name: 'JS> Node',
brand: "JS> Node",
copyright: "© G33K Labs | 2012",
// -> Production env base url (used for rss feed and permanent links)
website: 'http://www.js2node.com',
// -> Development env base url (used when dev flag is enabled in app config)
local: 'http://local.js2node.com:10000',
// -> 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
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}}",
// -> Navbar menus
menus: ['Home', 'Nodejs', 'jQuery', 'Redis.io', 'Snippets', 'Contact'],
// -> Widget loaded
widgets: ['aboutme', 'mostviewed', 'github', 'disqus', 'blogroll', 'archives', 'lazyload', {
id: 'analytics',
code: 'Enter here your google analytics code'
}],
// -> 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'
]
},
// -> 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 => "provider"_"userid"
admins: ['twitter_244561106', 'facebook_582526084'],
author: 'email@domain.com',
authors: {
'email@domain.com': {
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'
}
}
}
}
$ node app.js
Open your browser and enter the url configured (you can see that in logs) :
20:45:18 [*] 1 | WebServer STARTED : http://localhost:10000/