Photo by Nick Morrison / Unsplash

Ghost博客系统之初体验

Tech 技术
/ 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…

标签

JerryZ

大道至简,行者无疆!