Ghost博客系统之初体验
如果你只是想安安静静写点东西,可以选择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-letsencrypt
(github地址传送)。
使用方式非常简单,只需要敲几个命令,当然,前提是主机安装了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…