itranswarp.js

Full-featured CMS including blog, wiki, discussion, etc. powered by Nodejs.

  • Owner: michaelliao/itranswarp.js
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

itranswarp.js

icon

A nodejs powered website containing blog, wiki, discuss and search engine.

Build Status

  • based on koa2 with ES7 async/await
  • OAuth2 integration (weibo, QQ, facebook, etc.)
  • SEO support
  • REST api
  • customized css with uikit2
  • fully tested (using mocha/chai)

Environment

Nodejs: >= 8.x

MySQL: 5.6 ~ 5.7

Memcache

Nginx

Configurations

You should make a copy of config_default.js to config_<NODE_ENV>.js, and override some of the settings you needed.

For example, if NODE_ENV=production, you need create config_production.js:

$ cp www/config_default.js www/config_production.js

You can safely remove any settings you do not changed.

Install packages

Run npm install to install all required packages:

$ npm install

Initialize database

Run node schema > init_db.sql to generate initial schema as well as administrator's email and password.

You will get init_db.sql file in current directory. Run this SQL script by:

$ mysql -u root -p < init_db.sql

NOTE: re-run this SQL file will remove all existing data.

Test

iTranswarp.js is fully tested. To run tests, make sure:

  • run MySQL in localhost and set root password as password.
  • run Memcache in localhost.

Then run:

$ mocha

Schema will be created in MySQL test database before run tests.

Run

All settings can be override by environments:

export NODE_ENV=development
export DOMAIN=local.liaoxuefeng.com
export DB_PASSWORD=xxx

Please check config_default.js for more settings.

Then run:

$ node start.js

You should able to see the home page in the browser with address http://localhost:2017/.

If you want to sign in to management console, go to http://localhost:2017/manage/signin, and sign in using the email and password you entered when running node schema.

Changelog

9 Dec 2018

Responsive navigation bar.

2.1 - 14 Oct 2017

  • collapsable tree view for wiki
  • AD support

Database schema update:

DROP TABLE `randoms`;

CREATE TABLE `randoms` (
  `id` varchar(50) NOT NULL,
  `name` varchar(50) NOT NULL,
  `value` varchar(50) NOT NULL,
  `expired_at` bigint(20) NOT NULL,
  `created_at` bigint(20) NOT NULL,
  `updated_at` bigint(20) NOT NULL,
  `version` bigint(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uni_rnd_value` (`value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `adslots` (
  `id` varchar(50) NOT NULL,
  `alias` varchar(50) NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` varchar(1000) NOT NULL,
  `price` bigint(20) NOT NULL,
  `width` bigint(20) NOT NULL,
  `height` bigint(20) NOT NULL,
  `num_slots` bigint(20) NOT NULL,
  `num_auto_fill` bigint(20) NOT NULL,
  `auto_fill` text NOT NULL,
  `created_at` bigint(20) NOT NULL,
  `updated_at` bigint(20) NOT NULL,
  `version` bigint(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uni_adslot_alias` (`alias`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `adperiods` (
  `id` varchar(50) NOT NULL,
  `user_id` varchar(50) NOT NULL,
  `adslot_id` varchar(50) NOT NULL,
  `display_order` bigint(20) NOT NULL,
  `start_at` varchar(10) NOT NULL,
  `end_at` varchar(10) NOT NULL,
  `created_at` bigint(20) NOT NULL,
  `updated_at` bigint(20) NOT NULL,
  `version` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `admaterials` (
  `id` varchar(50) NOT NULL,
  `user_id` varchar(50) NOT NULL,
  `adperiod_id` varchar(50) NOT NULL,
  `cover_id` varchar(50) NOT NULL,
  `weight` bigint(20) NOT NULL,
  `start_at` varchar(10) NOT NULL,
  `end_at` varchar(10) NOT NULL,
  `geo` varchar(100) NOT NULL,
  `keywords` varchar(100) NOT NULL,
  `url` varchar(1000) NOT NULL,
  `created_at` bigint(20) NOT NULL,
  `updated_at` bigint(20) NOT NULL,
  `version` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.0 - 15 Jul 2017

  • fully async/await support
  • markdown plugin support
  • based on koa 2.x

1.11 - 21 Jul 2015

  • support article, wiki, discuss.
  • based on koa 1.x

Main metrics

Overview
Name With Ownermichaelliao/itranswarp.js
Primary LanguageJavaScript
Program languageShell (Language Count: 4)
Platform
License:Apache License 2.0
所有者活动
Created At2014-02-10 00:35:42
Pushed At2019-02-22 08:34:40
Last Commit At2019-02-22 16:34:28
Release Count7
Last Release Name2.1.1 (Posted on )
First Release Name1.0 (Posted on )
用户参与
Stargazers Count1.4k
Watchers Count149
Fork Count698
Commits Count1.3k
Has Issues Enabled
Issues Count66
Issue Open Count15
Pull Requests Count1
Pull Requests Open Count0
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private