CrazyAirhead

疯狂的傻瓜,傻瓜也疯狂——傻方能执著,疯狂才专注!

0%

概述

你可以在ZeroNet上发布静态和动态的网站。
虽然ZeroNet不能运行像PHP或者Ruby这样的脚本语言,你可以通过ZeroNet的API(叫做ZeroFrame),和JavaScript(或者CoffeScript)及内置的SQL数据库来创建动态网站。

ZeroChat教程

在这个教程中,我们会通过不到100行的代码创建一个P2P的,去中心化,无服务器的聊天站点

基于对微服务架构的理解,整理出来以下几下微服务相关的基础概念。

  • 授权认证服务
  • 服务注册和发现
  • 配置服务
  • 服务网关
  • 调用链监控
  • 限流熔断
  • 指标监控
  • 健康检查与告警
  • 日志监控
  • 其他

参考

(一个可供中小团队参考的微服务架构技术栈)[https://www.infoq.cn/article/china-microservice-technique]
(微服务基础架构的 5 个关键问题)[https://www.infoq.cn/article/btx6geZA_qwmyr07LbOb]

推荐

(JSkillCloud)[http://jskillcloud.com/]

最简单的方式:使用页面

  • 在ZeroHello站点时,点击左边栏的“⋮ ”>”创建新的空站点”菜单
  • 你会跳转到一个只有你可以修改的全新站点
    You can find and modify your site’s content in data/[yoursiteaddress] directory
  • 你可以在data/[你的地址]目录找到和修改你的站点内容
    After the modifications open your site, drag the topright “0” button to left, then press sign and publish buttons on the bottom
  • 当你修改好你的站点后,拖动右上的”0”按钮到左边,然后点击底部的签名和发布按钮。

    手动方式:使用命令行

  1. 创建站点结构
  • 如果ZeroNet在运行需要关闭
  • 进入ZeroNet的安装目录,然后运行:
    1
    2
    3
    4
    5
    6
    7
    8
    $ zeronet.py siteCreate
    ...
    - Site private key: 23DKQpzxhbVBrAtvLEc2uvk7DZweh4qL3fn3jpM3LgHDczMK2TtYUq
    - Site address: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
    ...
    - Site created!
    $ zeronet.py
    ...
  • 这样会创建你的站点的初始文件
    data/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2

    注意:使用bundle版本的Windows的用户需要进入ZeroBudle/ZeroNet目录,然后执行"../Python/python.exe" zeronet.py siteCreate

  1. 创建/修改站点
  • 更新data/[your site address key]目录下的网站文件(比如:13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2)
  • 当你的站点准备好时运行:
    1
    2
    3
    $ zeronet.py siteSign 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
    - Signing site: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2...
    Private key (input hidden):
  • 输入你创建网站时的私钥。这一步会对所有的文件进行签名,所以节点可以验证网站所有者的身份
  1. 发布网站更新
  • 为了通知节点你修改了站点内容,你需要运行如下命令:
    1
    2
    3
    4
    5
    $ zeronet.py sitePublish 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
    ...
    Site:13DNDk..bhC2 Publishing to 3/10 peers...
    Site:13DNDk..bhC2 Successfuly published to 3 peers
    - Serving files....
  • 这样就好了,你已经成功的将你的修改签名和发布出去了。
  • 你的站点可以通过这个网址访问:
    http://localhost:43110/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2

ZeroHello

ZeroNet的主页

  • 列出所有添加的站点:名称,节点数,修改时间
  • 站点操作:更新,暂停,继续,删除
  • 克隆站点转换成你的博客或者论坛
  • 一键更新

    地址:1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D
    源码

ZeroBorad

消息公告示例

  • 通过授权码动态生成用户
  • 实时消息更新

工作原理

  • 你发送消息给站点所有者的机器人
  • 机器人修改message.json文件,然后签名并发布给其他节点
  • 如果网站的更新到达你的客户端,他就会显示在你的浏览器上。

    地址:1Gfey7wVXXg1rxk751TBTxLJwhddDNfcdp
    源码

ZeroBlog

个人博客示例

  • 内置内容编辑器
  • Markdown语法
  • 代码高亮
  • 只要网页就可以签名和发布网站

    工作原理?

  • 你可以通过页面修改data.json
  • 点击Sign & Publsh new conent按钮时会要求私钥(创建新站点时生成
  • 你的ZeroNet客户端签名新的,修改的文件并把文件发布到其他节点。
  • 只要还有一个节点是活动的,你的站点就可以访问。

    地址:1BLogC9LN4oPDcruNz3qo1ysa133E9AGg8
    或者blog.zeronetwork.bit
    源码

ZeroTalk

去中心化的,P2P论坛示例

  • 创建,修改,删除主题和消息
  • 主题和消息投票
  • 仅有一次和站点所有者的联系,就是在请求修改网站授权的时候。
  • 留言和内容修改直接会推送给其他节点
  • 只有你可以签名和修改你的文件。
  • 实时的消息显示

    工作原理

  • 要参与网站的互动,你需要从ZeroID提供者那里注册一个证书(一个加密签名)
  • 有了证书之后,你就可以发布内容(消息,主题,投票)给其他节点了。

    地址:1TaLkFrMwvbNsooF4ioKAY9EuxTBTjipT 或者talk.zeronetwork.bit

源码

ZeroMail

端到端加密,分布式,点对点消息站点。为了提高隐私安全使用了与比特消息类似的解决方案,这样就不会暴露收件人信息。

  • 使用ECISE用于私密传输,采用AES256进行消息编码。
  • 当你第一次访问网站的时候,你的公钥会添加到你的数据文件中,这样其他人就可以给你发消息了。
  • 每个人都尝试解密消息,这使得要找出消息接收人成为不可能,从而提高了隐私性。
  • 为了减少消息负载和加快消息解密速度,我们重用了AES密钥,但是每次都会生成一个新的IV。

    地址:1MaiL5gfBM1cyb4a8e3iiL8L5gXmoAJu27或者mail.zeronetwork.bit
    源码

ZeroChat

一个完整的网站用于演示如何使用ZeroNet在不到用不到时100行的代码创建一个server-less,SQL后台,实时更新的P2P聊天应用。

ZeroMe

去中心化的,类Twitter的P2P社交网络。

  • 在ZeroMe的用户注册表中存储用户信息
  • 将发布和留言存储在叫Hub的MergeSite中
  • 通过选择文件来上传图片。
  • 实时显示活动订阅

    地址:1MeFqFfFFGQfa1J3gJyYYUvb5Lksczq7nH
    源码

ReactionGIFs

选择文件示例,视频文件只有浏览器请求时才会下载。

地址1Gif7PqWTzVWDQ42Mo7np3zXmGAo3DXc7h
源码

安装ZeroNet

  • 下载ZeroNet安装包:Microsoft Windows,Apple macOS, Linux 64bit,Linux 32bit
  • 解压
  • 运行 ZeroNet.exe (win), ZeroNet(.app)(macOS), ZeroNet.sh(linux)

    Debian Linux手动安装

  • sudo apt-get update
  • sudo apt-get install msgpack-python python-gevent
  • wget https://github.com/HelloZeroNet/ZeroNet/archive/master.tar.gz
  • tar xvpfz master.tar.gz
  • cd ZeroNet-Master
  • 运行python zeronet.py
  • 浏览器中打开http://127.0.0.1:43110

Vagrant

  • vagrant up
  • 访问VMvagrant sh
  • cd /vagrant
  • 运行python zeronet.py --ui_ip 0.0.0.0
  • 浏览器中打开http://127.0.0.1:43110

Docker

  • docker run -d -v <local_data_folder>:/root/data -p 15441:15441 -p 43110:43110 nofish/zeronet
  • 这个Docker镜像包含了Tor代理,默认是关闭的。注意有些节点不允许在你运行Tor。如果你需要开启,将环境变量ENABLE_TOR设置为true(默认是false)。比如:
    docker run -d -e "ENABLE_TOR=true" -v <local_data_folder>:/root/data -p 15441:15441 -p 127.0.0.1:43110:43110 nofish/zeronet
  • 浏览器中打开http://127.0.0.1:43110

Virtualenv

  • virtualenv env
  • source env/bin/activate
  • pip install msgpack-python gevent
  • python zeronet.py
  • 浏览器中打开http://127.0.0.1:43110

我需要开放端口么?

这个是可选的,如果你只是浏览和使用ZeroNet,你可以不需要开放端口。如果你要创建一个站点,强烈推荐你要开放一个端口。
ZeroNet在启动时会尝试用UPnP来打开一个端口,如果失败了,你需要手动开启:

  • 通过http://192.168.1.1或者 http://192.168.0.1来访问你的路由器页面。
  • 查找开启UPnP支持的类似选项,然后重启ZeroNet。
    如果还是不起作用,查看端口转发章节。不同的路由器各有不同。转发端口是15441。

ZeroNet是匿名的么?

ZeroNet没有比BitTorrent提供更多的匿名性,但随着节点的增加,隐私(找到评论或站点所有者)会变得严峻。
ZeroNet在匿名网络中也做了一些工作:你可以使用Tor网络轻松的隐藏你的IP。

在Tor浏览器中如何使用ZeroNet?

推荐使用Tor浏览器来使用ZeroNet:

  • 启动Tor Browser
  • 打开abaut:perferences#advanced
  • 点击设置
  • 在不需要代理的输入框中填入127.0.0.1
  • 在浏览器中打开http://127.0.0.1:43110
    如果你看到的是空白页面,点击工具栏上的无脚本按钮,选择临时允许所有页面,重新加载页面。

在ZeroNet中如何使用Tor?

如果你希望隐藏你的IP,安装ZeroNet的最新版本然后点南Tor>每个连接都启动Tor。

在Windows上Tor和ZeroNet是打包在一起的,ZeroNet在第一次运行的时启尝试下载和解压Tor。如果因为某些情况安装失败了,可以根据core\tools\tor\manual_install.txt的说明来安装。

其他操作系统根据安装说明进行安装,修改你的torrc的配置文件,把# ControlPort 9051#去掉,然后重启你的Tor服务和ZeroNet。

提示:你可以通过ZeroNet的状态页来验证你的IP。
提示:如果你连接时发生错误,请检查你是否安装了最新版本的Tor(需要0.2.7.5以上版本)

Linux系统中ZeroNet如何使用Tor?

更新最新版本的Tor(我们需要0.2.7.5+版本),执行这些操作。以Debian为例:

1
echo 'deb http://deb.torproject.org/torproject.org jessie main'>> /etc/apt/sources.list.d/tor.list
1
gpg --keyserver keys.gnupg.net --recv 886DDD89
1
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
1
apt-get update
1
apt-get install tor

修改配置文件开启控制协议:

1
mcedit /etc/tor/torrc

删除ControlPort 9051CookieAuthentication 1(大概在57行)的#字符。

1
/etc/init.d/tor restart

通过usermod -a -G debian-tor [yourlinuxuser]来授权访问cookie。(如果不是使用Debian通过ls -al /var/run/tor/control.authcookie的查看文件的用户组)。
注销/登录来使修改生效。

提示:可以通过echo 'PROTOCALINFO' | nc 127.0.0.1 9051来验证Tor是否正常运行。
提示:你可以不修改Tor的配置,仅通过zeronet.py --tor disabe --proxy 127.0.0.1:9050 --disable_udp来使用Tor,但这样你会失去与其他.onion地址通话的能力。

能否使用一个配置文件?

你可以把选项配置在zeronet.conf文件中。比如:

1
2
3
4
5
6
[global]
data_dir = my-data-dir
log_dir = my-log-dir
ui_restrict =
1.2.3.4
2.3.4.5

使用zeronet.py --help命令查看所有的选项。

如果ISP和政府屏蔽了Tor如何使它工作?

ZeroNet暂时未包含Tor pluggable transports。访问Tor网络的最简单的方法就是使用Tor浏览器。修改它的配置开启可拨插传输,然后修改ZeroNet的配置,使用Tor浏览器代理和控制端口。
通过--tor_controller 127.0.0.1:9151 --tor-proxy 127.0.0.1:9150来启动ZeroNet或者在zeronet.conf中添加如下参数:

1
2
3
[global]
tor_controller = 127.0.0.1:9151
tor_proxy = 127.0.0.1:9150

不同机器可以使用相同用户名么?

可以,只要你把data/user.json文件拷贝到时你的新机器就可以了。

如何创建一个“特殊”的网站地址?

通过vanitygen来生成。一旦你生成了你的key,创建data/你的key目录。在这个目录下放一些文件。
然后访问http://127.0.0.1:43110/你的key/.将0按钮拖到左边,然后用侧边栏来注册你的网站。

如何注册一个.bit的域名。

你可以通过Namacoin来注册一个.bit域名。通过GUI客户端或者命令行接口来管理你的域名。
一旦你注册完成,你需需增加一个zeronet节点来记录它。比如:

1
2
3
4
5
6
7
8
9
{
...
"zeronet": {
"": "1EU1tbG9oC1A8jz2ouVwGZyQ5asrNsE4Vr",
"blog": "1BLogC9LN4oPDcruNz3qo1ysa133E9AGg8",
"talk": "1TaLk3zM7ZRskJvrh3ZNCDVGXvkJusPKQ"
},
...
}

“”是顶级域名,其他的是子域名。

提示:你可以通过shapeshift.io来购买比特币或者其他加密货币的Namecoin。
提示:一些可以注册.bit域名的站点:domaincoin.net, peername.com, dotbit.me
提示:你可以在namecha.in中验证你的域名。比如:zeorid.bit
提示:在域名中只能使用小写字母,数字和-。
提示:要让ZeroHello显示你的域名而不是比特币网址,你需要在content.json中增加domain键.比如:

1
2
3
4
5
6
7
{
"address": "1BLogC9LN4oPDcruNz3qo1ysa133E9AGg8",
"background-color": "white",
"cloneable": true,
"description": "Blogging platform Demo",
"domain": "Blog.ZeroNetwork.bit",
}

我是否可以通过生成的网站地址/私钥来接收比特币支付?

是的,这个地址是一个标准的比特币地址。私钥也是WIF格式的,因此你可以把它导到大部分的客户端里。

提示:建议不要在你的网站地址中放太多钱,因为每次更新你的网站的时候就需要使用你的私钥。

当有人托管恶意内容时会发生什么?

Zeronet的网站是沙箱化的,他们的拥有权限和你在互联网上访问的其他站点一样。你可以完全控制托管理的内容。如果你发现可疑内容,你随时都可以停止托管。

能否通过远程的方式来安装ZeroNet?

有什么方式可以跟踪ZeroNet使用的带宽?

ZeroNet的侧边栏会展示发送和接收的字节(将0按钮拖到左边打开侧边栏)。

提示:所有连接的统计http://127.0.0.1:43110/Stats

当两个人用相同的key来更新网站时会发生什么?

每个content.json是有时间戳的,所有的客户端只接收最新的那个。

ZeroNet是否使用了比特币的区块链?

没有,Zeronet只是使用了比特币的加密算法用于网站地址和内容签名和验证。用户的标识是基于比特币的BIP32格式

Namecoin的区块链用于域名注册。

ZeroNet是否只支持HTML和CSS的网站?

ZeroNet is built for dynamic, real-time updated websites, but you can serve any kind of files using it. (VCS repositories, your own thin-client, database, etc.)

ZeroNet用于构建动态和实时更新的站,或者任何的文件类型(VCS仓库,瘦客户端,数据库等等)

如何创建一个ZeroNet网站?

操作说明

运行的原理是什么?

  • 当你打开一个新的站点,需要访问者在BitTorrent网络的IP地址。
  • 首先下载content.json文件,这个文件包含了所有的文件名,散列和网站所有者的加密签名。
  • 通过网站地址和文件中的网站所有者的签名来验证下载的content.json文件。
  • 下载其他文件(html,css,js……)并通过content.json中的SHA512散列值进行验证。
  • 你会托管所有你访问过的网站。
  • 如果网站的所有者(拥有网站私钥的人)修改了网站,然后他签名一个新的content.json并发布到各个节点。当节点验证了content.json的真实性(通过签名),下载修改的文件并发布给其他节点。
    更多信息:ZeroNet简单网站介绍ZeroNet工作原理幻灯片

ZeroNet是什么?

ZeroNet是使用比特币加密技术和BitTorrent网络协议构建的一个去中心化的无审查网络。

用户可以在ZeroNet上发布静态或者动态的站点。访问者可以决定是否成为服务节点。只要还有一个服务节点站点就会在线。

当站点的所有者更新站点的时候,所有服务的节点(以前的访问者)就会增量更新站点内容。

ZeroNet comes with a built-in SQL database. This makes content-heavy site development easy. The DB is also synced with hosting nodes with incremental updates.

ZeroNet自带内置数据库,这使得重内容的站点的开发更容易。数据库也会在节点增量更新。

为什么?

  • 我们相信开放的,自由的,无审查的网络。
  • 去中心化:只要一发布就无法删除。
  • 无单点故障:只要还有一个服务节点,内容就会一直在线。
  • 不法关闭:无处不在。内容会被访问者进行托管。
  • 高速:ZeroNet使用BitTorrent技术比中心化服务器快。
  • 离线访问:在没有互联网连接的情况下也可以浏览保存过的站点。
  • 安全:使用与比特币钱包相同的加密方法来保护内容所有权。

特性

  • 简单,零配置。
  • 基于BIP32的无密码授权,使用与比特币钱包相同的加密方法来保护你的账户。
  • 实时更新
  • 支持Namecoin的.bit域名
  • 数据库支持:更简单的站点开发和更快的页面加载速度。
  • 匿名:全面支持Tor网络,支持通过.onion隐藏服务相互连接,而不是通过IPv4地址。
  • TLS加密连接
  • 自动打开uPnP端口。
  • 插件和多用户 (开放式代理) 支持
  • 跨平台,支持任何浏览器和系统

原理

  • 在你运行ZeroNet后,你可以通过http://127.0.0.1:43110/{zeronet_site_address} (比如:http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D)来访问网站。
  • ZeroNet会通过BitTorrent网络来查找可用的节点,并下载需要的文件 (html, css, js…)。
  • 你会托管理每一个你访问过的网站。
  • 每个网站都有一个列表文件,存储了网站所有文件的SHA512哈希值和网站所有者的私钥生成的签名。
  • 如果站点的所有者 (拥有私钥的那个人) 修改了站点, 并且他/她签名了新的列表文件,然后推送给其他节点, 那么所有节点将会在验证列表的真实性(使用签名)后, 下载修改后的文件并推送给其他节点。

限制

  • 不支持大文件拆分
  • 文件传输未压缩
  • 不支持私有站点

赞助

Bitcoin: 1QDhxQ6PraUZa21ET5fYUCPgdrwBomnFgX

谢谢!

说明

主要是测试封面和图片的使用,图片内编辑使用OneNote,目前来看就是对代码的支持不够。

说明

主要是测试封面和图片的使用,图片内编辑使用OneNote,看着也不错。
需要注意创建同名的文件夹,或者使用hexo new命令

本文是自己在使用Github Pages和Hexo搭建个人博客时的一些经验记录和总结,并非手把手搭建的过程。

为什么

之前在博客大巴上是有写一些博客的,不过因为己写作能力的一些原因,实际上写的也不多,后面也基本上就断了。最近跳槽到一家互联网公司,语言也转了Java,又学习了一些Web知识,所以也就想多试一些东西。

选Github Pages呢,是因为自己在搜索一些资料时时常会到Github上,当时也不知道这是Github Pages,虽然有使用Github,是有点Out了。后面又机缘巧合的看到了一些使用Github Pages搭建个人博客的文章,也就来了兴趣。

GitHub Pages sites are subject to the following usage limits:

GitHub Pages source repositories have a recommended limit of 1GB .
Published GitHub Pages sites may be no larger than 1 GB.

GitHub Pages sites have a bandwidth limit of 100GB or 100,000 requests per month.

GitHub Pages sites have a limit of 10 builds per hour.

这些限制对我来说,都不是大问题,没有这么大的访问量。

创建Github Pages仓库

因为本身有使用过Github,所以直接从创建仓库开始,如果是完全的新手建议看这篇如何搭建一个独立博客——简明Github Pages与Hexo教程,我也基本上是参考这篇来搭建的。创建以<username>.github.io为名的仓库,对于我来说是enderjo.github.io。一开始看博文是没看懂,以为是用户名的仓库。后面也多搜了几篇,多看了几遍才明白,也可以直接看Configuring a publishing source for GitHub Pages
除了仓库名,也就没有什么特别的注意点了,从推荐的几个模板中选择一个模板。要不了几分钟,就可以使用https://enderjo.github.io来访问页面了。

注意如果用户名包含大小写时,需要按用户名的全部小写来创建仓库名。

绑定域名

在没有配置CNAME之前可以之接填写enderjo.github.io的域名,会自动解析。
对于Github来说,绑定域名是非常简单的。创建一个CNAME的文件,写上域名,上传就可以了。可以在blogsource放置该文件,生成发布时会被生成到pubic目录下,避免因hexo clean重新生成文件时引起域名不可解析问题。

1
l4qiang.me

域名解析

我是在阿里云买的l4qiang.me域名,也就可以使用阿里云的域名解析服务。
简要的说,就是自定义域名解析增加如下4条A记录中的一个就自动开启了。参考文档Managing a custom domain for your GitHub Pages site

  • 185.199.108.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.199.111.153

开启HTTPS

参考这里,[Securing your GitHub Pages site with HTTPS](https://docs.github.com/en/github/working-with-github-pages/securing-your-github-pages-site-with-https开启HTTPS。

以上已经能通过域名正常访问博客了。

使用Hexo

Github推荐使用的是Jekyll做为静态网站生成器,但是因为用的是Ruby,没怎么接触,就找到了Hexo做为替代。

安装Nodejs

下载Nodejs 6.7,默认安装就可以了。

安装hexo

1
2
3
4
5
npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server

Hexo配置

在blog的根目录可以看到Hexo配置文件_config.yml,基本上的配置都是修改这个文件。

需要修改内容如下,其他内容可以不修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Site
title: CrazyAirhead
subtitle: 疯狂的傻瓜,傻瓜也疯狂————傻方能执著,疯狂才专注!
description: 记录点滴,注重积累。
author: L4qiang
email: L4qiang@gmail.com
language: zh-CN
timezone:

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://l4qiang.me
root: /

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: gstyle

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/enderjo/enderjo.github.io.git
branch: master

选择模板与配置

根据选择的模板,修改配置。我选择了gstyle,下载后解压到themes文件夹下(一般文件名比较长,需重命名)。

需要修改Hexo_config.yml的内容有:

1
2
3
4
5
6
7
8
9
10
# add caption for iamges
image_caption:
enable: true
class_name:

prism_plugin:
mode: 'preprocess' # realtime/preprocess
theme: 'default'

active_nav: false

需要修改themes配置文件,在对应的模板目录下,也是_config.yml

修改评论

这里使用了多说,需要修改配置

1
2
3
4
5
6
7
8
duoshuo_shortname: enderjo
```

需要注册并[创建站点](http://duoshuo.com/create-site/),`duoshuo_shortname`中填写的就是多说站点的二级域名需要填写的部分。

因为多说停服务,所以这部分内容需要更新,暂时未更新。

### hexo基本操作

hexo help
Usage: hexo

Commands:
clean Removed generated files and cache.
config Get or set configurations.
deploy Deploy your website.
generate Generate static files.
help Get help on a command.
init Create a new Hexo folder.
list List the information of the site
migrate Migrate your site from other system to Hexo.
new Create a new post.
publish Moves a draft post from _drafts to _posts folder.
render Render files with renderer plugins.
server Start the server.
version Display version information.

Global Options:
–config Specify config file instead of using _config.yml
–cwd Specify the CWD
–debug Display all verbose messages in the terminal
–draft Display draft posts
–safe Disable all plugins and scripts
–silent Hide output on console

For more help, you can use ‘hexo help [command]’ for the detailed information
or you can check the docs: http://hexo.io/docs/

1
2
3
4

#### 写作
```bash
$ hexo new [layout] <title>

如果需要更好的进行写作的管理可以使用-p参数

1
$ hexo new -p zeronet/zernet-1 zeronet-1

分类

1
$ hexo new page categroies

在生成的index.md文件下增加type: categroies

标签

1
$ hexo new page tags

在生成的index.md文件下增加

1
2
type: tags
comments: false

测试

1
2
$ hexo server
$ hexo s

如果运行时浏览器无法打开,可能是默认端口(4000)被占用了,换个端口试试。

1
$ hexo s -p 5000

可以通过netstat -ano来查看占用端口的进程。本机是被Foxit Service给占用了,禁用该进程。

生成与发布

1
2
$ hexo generate --deploy
$ hexo deploy --generate

简写

1
2
$ hexo g -d
$ hexo d -g

生成发布时可能会出现找不到用户名的问题,可以修改git配置

1
git config --global credential.helper wincred

图床

使用了七牛的空间,使用qrsbox进行同步。

源码托管

使用了Gitee的私有库,Gitee个人开发者可免费创建 1000 个项目(不限公有、私有),提供最多5G的免费代码存储空间。这样将整个博客的源码按版本管理起来。

总结

对于使用Github Pages和Hexo搭建个人博客,整体配置下来是难度不会大,主要是因为有些东西没有接触过会多花一些时间来理解。另外就是一些博文不一定会有及时的更新,一些操作也是会不一样的,所有对自己来说,能找到原始出处的就尽量用原始内容。