我是如何在coding搭建ghost博客

What?

搭建之前我们首先需要知道coding是什么,ghost又是什么鬼。

Coding:coding.net 是一个面向开发者的云端开发平台,提供git代码托管,免费的运行演示空间,代码质量分析,在线Web IDE,项目管理,开发协作,悬赏众包,冒泡社交等功能,简单来说就是给我们一个开发项目所需要的在线开发环境。

Ghost:Ghost 是基于 Node.js 的开源博客平台,由前 WordPress UI 部门主管 John O’Nolan 和 WordPress 高级工程师(女) Hannah Wolfe 创立,目的是为了给用户提供一种更加纯粹的内容写作与发布平台。

Why?

为什么要一个个人博客,为什么写博客,关于这个的讨论网上有太多了。具体参见刘未鹏的为什么你应该(从现在开始就)写博客

为什么要在coding上面搭建博客了,因为coding给我们一个免费的平台。让我们可以快速,方便的就搭建起自己的博客。让我们知道拥有一个个人博客站点如此简单(PS:虽然中间我也有遇到一些问题,不过都解决了,所以写下来避免你们走弯路了)。

各种好处参见:想静静?想停停?还是来写写博客吧!

还有一点就是有了博客并没有什么卵用,关键是你要写呀,要写呀,要写呀

为什么不用Wordpress了,因为我想用Ghost就这么简单。

注:如果需要使用自定义的域名需要使用coding香港的主机,不然只能使用coding提供的二级域名,这个需要注意。

How?

重点来了,之前都是铺垫,如何搭建才是重点呀!

1. 下载ghost

由于coding的文件系统在每次项目重启之后就自动清空了,所以文件不能存放在本地的文件系统。我们可以使用七牛云,又拍云等各种云来存放图片。所以就没用从github上面下载源码了,而是使用了ghost中文网提供的集成好了各种云的源码,下载地址http://www.ghostchina.com/download/

2 .为ghost添加代码高亮

作为一个程序员的博客,怎么能少得了代码高亮。嫌ghost自带的不好看,我就使用Prism给Ghost添加代码高亮。

Prism用法很简单,到官网获取JavaScript和CSS文件,可以根据自己需求定制化,然后引用到网站页面里就行。将下载到的文件分别上传到casper-zh主题的content/themes/casper-zh/assets/css和content/themes/casper-zh/assets/js文件夹,然后修改主题里的default.hbs。

在</head>前插入    

<link rel="stylesheet" type="text/css" href="{{asset 'css/prism.css'}}" />    

在</body>之前插入

<script type="text/javascript" src="{{asset "js/prism.js"}}"></script>  

这样主题就有代码高亮了。

3 .修改数据库和七牛的配置

修改数据库与七牛的配置 我们部署在coding上面,当然使用coding提供的数据库了。 首先我们修改数据库的配置,找到config.js,添加如下代码,首先定义两个全局变量

var coding_services = JSON.parse(process.env.VCAP_SERVICES);  
var coding_application = JSON.parse(process.env.VCAP_APPLICATION);

注:这里的变量引用的是coding演示里面定义的环境变量,用于获取数据库的配置信息, 下面的开启服务会说明如何定义。

然后修改production配置

production: {  
        url: 'http://' + coding_application.application_uris[0],
        mail: {
            transport: 'SMTP',
            options: {
                service: 'Mailgun',
                auth: {
                user: 'postmaster@sandbox0745f20b166744b5ab71b77b7cf7b8ff.mailgun.org',
                pass: 'a28a3971e3efe00d117ef466cd039ebc'
                },
            },
        },
        database: {
            client: 'mysql',
            connection: {
                host     : coding_services.mysql[0].credentials.hostname, //输入数据库地址
                user     : coding_services.mysql[0].credentials.username, //输入数据库用户
                password : coding_services.mysql[0].credentials.password, //输入你的 MySQL 密码
                database : coding_services.mysql[0].credentials.name, //输入数据库名称
                charset  : 'utf8'
            },
            dubug: false,
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '0.0.0.0',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: process.env.VCAP_APP_PORT || 3000,
        },

        storage: {
            provider: 'qiniu',
            bucketname: 'bbear', //这里是七牛云的目录名
            ACCESS_KEY: '填写自己的', //这里填入七牛云的ak
            SECRET_KEY: '填写自己的', //这里填入七牛云的sk
            root: '/image/', //这里是文件目录
            prefix: 'http://7xnovl.com1.z0.glb.clouddn.com' //访问前缀
        }
        /*fileStorage: false*/

    }
3 .上传代码到coding

从coding上面新建一个项目,clone到本地,然后将ghost源码解压放到clone下来的文件夹里面,然后commit,push提交到coding。当然还有其他方法,不管你使用什么方法,你只要能把代码弄上来就可以。

4 .开启服务
  • 进入演示 -> 开始检测 -> 勾选已阅读,点开启功能 - 设置访问域名(关于自定义域名后面有介绍),点保存
  • 进入服务管理 -> 添加服务 -> 选择Mysql并勾选绑定创建后的服务到此项目(可选)
  • 进入 环境变量 -> 名称一栏填入 NODE_ENV ,值一栏填入 production -> 点击 添加
  • 再回到演示 -> 在部署版本中填入master,点一键部署,然后就等待运行完就可以了。
5 .自定义域名

大家都想有一个自己的域名来访问自己的博客,下面就介绍一下如何自定义域名。

  1. 之前也说了部署在coidng的香港机房才可以自定义域名,所以这个是一个前提条件

  2. 在演示项目哪里选择自定义域名,填写自己的域名

  3. 域名解析设置,我使用的是阿里云解析
    CNAME @ 默认 api.codingapp.com
    CNAME www 默认 api.codingapp.com

CNAME记录:
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录 www :
将域名解析为www.example.com,填写www; @ : 将域名解析为example.com(不带www),填写@或者不填写;

如果以上你嫌太麻烦了,你可以fork我的代码,添加环境变量,修改七牛云的配置,关联mysql数据库,然后就可以愉快的跑起来了。

bbear

继续阅读此作者的更多文章