Ghost博客系统之初体验

Code 代码
/ ghost
2019年2月1日 ~

如果你只是想安安静静写点东西,可以选择Ghost;如果你想自动动手折腾,也可以选择Ghost。相比老大哥WP,Ghost可谓是短小精干。

使用Ghost之前,折腾过Wordpress和Hugo。

Wordpress功能的确强大,但太复杂,想安安静静记录点东西,却整出一堆插件,闪瞎我的眼。最致命的是原始不支持markdown,而插件实现效果不尽人意。

Hugo用的人不太多,利用脚本生成静态网站,可在github等代码托管网站上托管,不需要自建服务器。但问题同样明显,如果想随时随地写点东西,发布就很头痛了,需要自己做些自动化工具。

最终选择了Ghost,优点特性可查官网。最吸引我的3点:

  • 原生主题就可以满足大部分博客需求;
  • 天然支持markdown;
  • 有不错的扩展性。

Ghost是基于nodejs,自然需要自建服务器。最简单的安装方式是使用docker-compose,ghost官方镜像传送门

虽然是个人博客,HTTPS基本上是标配了。参考了之前Wordpress的搭建方式,选取docker-compose-letsencrypt-nginx-proxy-companion作为证书获取服务(github地址传送)。

仿造docker-wordpress-letsencrypt,制作了docker-ghost-letsencryptgithub地址传送)。

使用方式非常简单,只需要敲几个命令,当然,前提是主机安装了docker。


# 创建一个博客目录
mkdir blog

cd blog

# 将两个git拉下来
git clone https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion
git clone https://github.com/goodideal/docker-ghost-letsencrypt

# 进入docker-compose-letsencrypt-nginx-proxy-companion并启动容器
cd docker-compose-letsencrypt-nginx-proxy-companion
docker-compose up -d

# 进入docker-ghost-letsencrypt,配置环境变量,启动服务
cd docker-ghost-letsencrypt
cp .env.sample .env
vi .env # 根据你的需要修改,保存

docker-compose up -d

.env.sample

# .env file to set up your ghost site

#
# Network name
# 
# Your container app must use a network conencted to your webproxy 
# https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion
#
NETWORK=webproxy

#
# Database Container configuration
# We recommend MySQL or MariaDB - please update docker-compose file if needed.
#
CONTAINER_DB_NAME=db

# Path to store your database
#DB_PATH=/path/to/your/local/database/folder
DB_PATH=./../data/db

# Root password for your database
MYSQL_ROOT_PASSWORD=root_password

# Database name, user and password for your ghost
MYSQL_DATABASE=database_name
MYSQL_USER=user_name
MYSQL_PASSWORD=user_password

#
# ghost Container configuration
#
CONTAINER_GHOST_NAME=ghost

# Max Log File Size
LOGGING_OPTIONS_MAX_SIZE=200k

# Path to store your ghost files
GHOST_CONTENT=./../data/site/ghost-content

# Your domain (or domains)
DOMAINS=domain.com,www.domain.com

# Your email for Let's Encrypt register
LETSENCRYPT_EMAIL=your_email@domain.com

大功告成…enjoy…

标签

Jerry

大道至简,行者无疆。

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.