部署网站



有多种方式可以用来部署 VeriPress 站点,具体使用哪种,取决于你的使用环境和使用习惯。

静态部署

生成静态页面

通过 veripress generate 命令,可以在 VeriPress 实例的 _deploy 目录中生成网站的所有静态文件、页面。如果 _deploy 目录已存在且不为空,则会首先清除该目录中的非隐藏文件,或者说非 . 开头的文件(因为在 Windows 上这些并不一定是隐藏文件)。

generate 命令还会提示你输入一个「application root」,这个也就是网站的子目录路径,例如,如果你的网站打算跑在 http://example.com/blog/,则这里你需要填 /blog/,而如果跑在 http://example.com/,则这里保持默认的 /

部署到 GitHub Pages

生成了静态页面之后你可以在各种地方部署,很多人会将静态页面部署在 GitHub Pages,因此 VeriPress 在命令行界面中加入了命令来简化这个操作。

首先你需要在 GitHub 创建一个仓库用来存放页面,假设你的 GitHub 账号是 username,则可以创建一个名为 username.github.io 的仓库,这个仓库将可以通过 https://username.github.io/ 直接访问,而如果创建其它名称的仓库,假设 my-blog,则可以通过 https://username.github.io/my-blog/ 访问(这种情况下,你就需要使用 /my-blog/ 作为生成静态页面时的「application root」)

然后运行下面命令(这里假设你已经在系统中生成 SSH key 并添加到 GitHub,如果没有,请参考 Connecting to GitHub with SSH):

$ veripress setup-github-pages
 Please enter your GitHub repo name, e.g. "someone/the-repo": username/blog
 Please enter your name (for git config): User Name
 Please enter your email (for git config): username@example.com
 Initialized empty Git repository in /root/a/_deploy/.git/
$ veripress deploy

即可将前面生成的静态页面部署到 GitHub 仓库。之后你可能还需要在 GitHub 仓库的「Settings」中,将 GitHub Pages 的「Source」设置为「master branch」。

如果 deploy 命令不能符合你的需求,你也可以自己使用 git 命令来操作,效果是一样的。

动态部署

serve 命令

动态部署也就是直接运行 Python web app。默认提供了 serve 命令来进行动态部署,使用方式如下:

$ veripress serve --host 0.0.0.0 --port 8000

不加参数的情况下默认监听 127.0.0.1:8080

这个命令会首先尝试使用 gevent.wsgi 包的 WSGIServer 来运行,如果你系统中没有安装 gevent,则会使用 Flask app 的 run 方法。后者是用在开发环境的方法,不应该实际应用中使用,所以如果你打算使用 serve 命令部署,则应该先安装 gevent:

$ pip install gevent

使用其它 WSGI 服务器

VeriPress 主 app 对象在 veripress 包中,由于基于 Flask,这个 app 对象直接是一个 WSGI app,所以你可以使用任何可以部署 WSGI app 的服务器来部署 VeriPress 实例,例如使用 Gunicorn(需要在 VeriPress 实例目录中执行,或设置 VERIPRESS_INSTANCE_PATH 环境变量):

$ gunicorn -b 0.0.0.0:8000 veripress:app

其它更多部署方法请参考 Flask 官方文档的 Deployment Options

缓存

动态部署时 VeriPress 可以使用缓存来加快页面的访问,具体的配置方法请参考 配置文件