首页 > 其他分享 >Docsify on VPS,搭建最简个人博客

Docsify on VPS,搭建最简个人博客

时间:2023-06-16 14:57:03浏览次数:50  
标签:index 最简 VPS docs sudo docsify nginx nvm Docsify

前一段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 user
usermod -aG sudo docsifymgr # add the new user to the sudo list
su - 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 command
nvm install 16.20.0 # install nodejs 16.20.0
nvm ls # list all installed nodejs versions
nvm 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 # 安装docsify
docsify 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 update
sudo apt install nginx
nginx -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命令直接启动的,那么可以使用下面的命令查看或关闭。不过比较推荐的方式是使用systemctl
ps aux|grep nginx # 查看是否有活跃的nginx进程存在
sudo nginx -s stop # 关闭nginx,注意需要-s

卸载
# 如果已经安装了,并且先卸载,使用以下命令:
sudo apt purge nginx nginx-common nginx-core
sudo 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访问地址(本人自己搭建的跳板,可免费使用))

标签:index,最简,VPS,docs,sudo,docsify,nginx,nvm,Docsify
From: https://www.cnblogs.com/morvenhuang/p/17485505.html

相关文章

  • 机器硬件监控,最简单的方案,没有之一
    之前新东方的老师分享了他们通过Telegraf、Loki、Nightingale等工具来监控机器硬件状态的方案,具备很强的灵活性、平台性。本文会介绍一个相对轻量的方式,只需要一个二进制+一个脚本即可搞定,给各位朋友提供一种新的选择。新东方的方案物理机可以通过带外开启SNMP,通过SNMP可......
  • jexcel_最简单的框架
    1. 固定数据的jexcel框架<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="test.aspx.cs"Inherits="web_page_ssc_test"%><!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><......
  • Python使用multiprocessing实现一个最简单的分布式作业调度系统
    介绍Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个机器的多个进程中,依靠网络通信。想到这,就在想是不是可以使用此模块来实现一个简单的作业调度系统。实现Job首先创建一个Job类,为......
  • 可能是最简单最通透的Comparable和Comparator接口返回值理解
    先说Comparator接口,这个理解了,下一个就理解了一、Comparator的用法(暂不考虑0,因为0不处理)返回-1,1交换不交换位置,如果撇开比较器的两个参数和jdk默认顺序来说,存粹是错误的接口如下:原文链接publicinterfaceComparator<T>{intcompare(To1,To2);}现提出如下......
  • .Net全网最简RabbitMQ操作【强烈推荐】
    【前言】本文自1年前的1.0版本推出以来,已被业界大量科技公司采用。同时也得到了.Net圈内多位大佬的关注+推荐,文章也被多家顶级.Net/C#公众号转载。现在更新到了7.0版本,更好的服务各位.Neter。 【正文】支持.Net/.NetCore/.NetFramework,可以部署在Docker,Windows,Linux,......
  • python Qt实现最简单的程序
    1、创建一个程序,实例一个对象2、让这个对象跑起来3、创建组件4、设置标题5、展示出来点击查看代码fromPySide2.QtWidgetsimportQApplication,QMessageBoxfromPySide2.QtUiToolsimportQUiLoaderif__name__=="__main__":app=QApplication(sys.argv)w......
  • 太卷了,史上最简单的监控系统 catpaw 简介
    指标监控的痛点当下比较流行的监控系统,比如Prometheus、Nightingale、VictoriaMetrics,都是基于数值型指标的监控系统,这类监控系统的痛点在于:告警的时候只能拿到异常值,以及有限的几个标签,难以拿到更详细的信息。比如HTTP探测监控,通常用监控值表示不同的错误:Success=......
  • 12_How to deploy Flask apps on Ubuntu VPS Using gunicorn and Ngnix
      地址:https://www.codewithharry.com/blogpost/flask-app-deploy-using-gunicorn-nginx/ HowtodeployflaskapponUbuntuVPSusingNginxandgunicornInthispost,wewillseehowtodeployflaskapplicationsusinggunicornWSGIserverandnginxasarev......
  • 8_How to install LEMP stack on Ubuntu VPS_
     地址:https://www.codewithharry.com/blogpost/lemp-stack-on-ubuntu-20/  HowtoinstallLEMPstack(Linux,Nginx,MySQL,PHP)onUbuntu20.04Inthistutorial,wewillinstalltheLEMPstackontheubuntu20basedserver.LEMPconsistsofLinux,Nginx(pr......
  • 通过redis学网络(1)-用go基于epoll实现最简单网络通信框架
    本系列主要是为了对redis的网络模型进行学习,我会用golang实现一个reactor网络模型,并实现对redis协议的解析。系列源码已经上传githubhttps://github.com/HobbyBear/tinyredis/tree/chapter1redis的网络模型是基于epoll实现的,所以这一节让我们先基于epoll,实现一个最简单的服......