前一段VPS到期了,续费重启之后发现我的Ghost博客系统起不来了,想升级到最新5.0,一看还需要配套升级Nodejs和MySQL。
我是一个特别怕麻烦的人,想着干脆看看有没有新的方案,更轻量级的,让知识记录和分享更没有负担的方案。网上搜了一圈,感觉拿Docsify做个博客网站不错,静态页面,没有数据库依赖,可以最小化维护成本。
(相关资料图)
Docsify自己定位是一个文档网站系统,不过,用来做一个简单的博客系统是绰绰有余的。
准备工作
- 域名:可以是使用Godaddy,或者Namesilo,后者比较便宜一点,普通的域名(不是.com或者.org那些)大约10刀一年,支持支付宝。国内的域名提供商也可以,不过据说要审批,我没用过。
- VPS:可以使用Vultr等,最低配的VPS大约50刀一年,支持支付宝。
- Markdown:需要具备基本的Markdown知识(或者HTML知识)。
Docsify安装与配置
添加新用户
adduser docsifymgr # add a new userusermod -aG sudo docsifymgr # add the new user to the sudo listsu - docsifymgr # switch to the new user
使用nvm安装nodejs
查看nvm github.
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash # get and install nvm, need to open a new session before we can use nvm commandnvm install 16.20.0 # install nodejs 16.20.0nvm ls # list all installed nodejs versionsnvm use 16.20.0 # use this to switch the version (if you have mutliple versions installed)
在实际使用中发现use只对当前session有效,在新开的session就失效了,这个可以通过设置默认版本来解决此问题:
nvm alias default 16.20.0
其他可能用到的nvm命令:
nvm uninstall 18.16.0
安装docsify
npm i docsify-cli -g # 安装docsifydocsify init ./docs # 初始化一个目录,这个目录不需要事先创建
可以通过以下命令,启动web服务器,可以通过http://ip:3030进行访问,方便测试:
docsify serve docs -p 3030 # 如果不指定端口的话,则使用随机端口。另外,1024一下的端口由于需要root权限,这里无法通过-p无法指定。
一些简单的配置
修改docs/index.html文件中的如下部分,设置loadSidebar为true,同时在docs下添加_sidebar.md,以显示左侧的导航栏。设置coverpage为true,同时在docs下添加_coverpage.md,以显示网站首页封面。
window.$docsify = { name: "", repo: "", loadSidebar: true, coverpage: true}
Docsify还提供了其他不少的配置,后续有时间再研究。
Nginx安装与配置
NNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。它的主要角色是两个:HTTP服务器、反向代理。
安装
sudo apt updatesudo apt install nginxnginx -v # output: nginx version: nginx/1.14.0 (Ubuntu)
防火墙设置
# 设置防火墙,允许nginx的所有访问:sudo ufw allow "Nginx Full"# 检查防火墙当前允许的应用程序:sudo ufw app list# 输出结果需要类似如下:Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
查看并关闭
sudo systemctl status nginx # 查看状态sudo systemctl stop nginx #关闭# 如果是使用nginx命令直接启动的,那么可以使用下面的命令查看或关闭。不过比较推荐的方式是使用systemctlps aux|grep nginx # 查看是否有活跃的nginx进程存在sudo nginx -s stop # 关闭nginx,注意需要-s
卸载
# 如果已经安装了,并且先卸载,使用以下命令:sudo apt purge nginx nginx-common nginx-coresudo apt remove nginx nginx-common nginx-core# 检查相关的目录是否已经被删除:ls -l /etc/nginx/ /usr/share/nginx/
配置
默认安装模式下,Nginx的所有配置文件位于/etc/nginx
,我们要改动的是/etc/nginx/sites-available/default
,它的默认内容:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; }}
由于通过 docsify serve 命令可以启动一个本地web服务器,一开始我定式思维了,直接给配了一个反向代理,就是修改上述内容中的location部分:
location / { proxy_pass http://127.0.0.1:3030; # 注意此处需要有分号}
后来想起来,docs下都是静态页面,可以直接使用nginx作为web服务器,省得我去维护Nodejs进程的存活。修改上述文件内容:
server { listen 80; server_name www.memaddr.xyz; location / { alias /home/docsifymgr/docs/; index index.html; }}
配置域名
配置域名比较简单,已Namesilo为例,登录Namesilo之后,找到自己的域名,点击「DNS设置」,就是小小蓝色地球图标,并在里面添加两条「A记录」。更新「A记录」之后,一般需要等待几分钟甚至半小时左右,才能生效。
发布文章
发布文章只需要在docs目录下新增.md文件,同时更新_sidebar.md就可以了,不会的Markdown的可以上网查查,基本上可以10分钟速成。最后,我的博客地址:MemAddr(同时欢迎关注公众号「后厂村思维导图馆」,可自动获得ChatGPT访问地址(本人自己搭建的跳板,可免费使用))
关键词: