如何独立部署 FarBox

操作系统 Ubuntu 18.04

这是建议的操作系统,其它的 Linux 操作系统,基本逻辑一样,具体的自己探索。

服务器初始化并安装 Docker

sudo apt-get update && sudo apt-get install -y python-pip  && sudo apt-get install -y docker.io

注意: 安装 Docker,由于 Docker 的安装步骤也可能动态变化,具体的可以参考 Docker 官方的安装文档。

部署 FarBox (FarBox Bucket)

sudo docker pull hepochen/farbox_bucket:latest                                         
sudo pip install xserver
sudo xserver_package deploy farbox memcache=200mb && sudo xserver start farbox

执行下面命令,可以在服务器重启的时候,自动启动 FarBox 对应的服务:

xserver install_start

另外,可以执行下面的命令,每隔 2 分钟会检测 FarBox 的服务容器是否失败了需要重启:

xserver install_live

注: xserver 是我另外写的一套处理服务器端部署相关逻辑的小软件。

此时,FarBox 已经处于运行的状态了,访问 http://你的服务器IP 即可进行 Web 端的首次安装;当然前提是服务的 80 和 443 端口应该是开放的状态。

注意:

  1. memcache 是 FarBox 运行需要的基本缓存服务,如果服务器内存比较有限,可以把上面 Demo 中的 200mb 调整更小一些。
  2. Web 端如果提示 no template for index, 表示网站还没有模板,需要自己在 Dashboard 内选一个模板先。

在 Web 端初始化第一个 Bucket 之后,可能需要重启服务 (如果 Web 端数据正常则不需要处理):

sudo docker exec -it farbox bash
supervisorctl restart all

数据存储的位置

  • /data/farbox_ssdb: 主数据库
  • /data/farbox_es: Elasticsearch 索引数据
  • /data/farbox: 核心 Web 服务的数据
  • /data/log/farbox: 日志文件
  • /home/run/farbox: FarBox 的环境配置文件

注意: 如果你需要重新安装 FarBox,或许你需要尝试先移除 /data/farbox_ssdb,当然是具体情况而定。

邮件通知与其它配置

部署好之后,可以自行登录后台进行配置,第一个创建的 Bucket 会被认为是管理员。
如果需要邮件通知 (包括评论的回复),需要自行配置 Ses ID、Ses Key、Ses Sender,这些是基于 Amazon AWS SES 提供的,需要自行申请和对应。

后续的版本更新

登录后台,找到 Install Python Package, 将从 farbox@pypi.org 上获得对应版本的 FarBox 的文件路径,复制、粘贴并提交,就可以了。
但请慎重操作,新的 FarBox Bucket 的版本未必一定会和你当前运行的版本兼容。

有疑问?

服务端相关的技术知识,扩展开来非常复杂,FarBox 的部署基本来说,就是 Ubuntu + Docker + Supervisor,其它的比如 SSDB、Memecache、Nginx 等都已经内嵌到 Docker 的容器内了。

如果有疑问,请 Google;如果找不到答案,说明不适合自行部署……

Comments
Write a Comment
  • wellsleep reply

    Hi Hepo,

    独立部署单个 bucket 一切正常,很方便,非常感谢。

    只是如果想建立两个 farbox 2.0 的 bucket,是需要把 docker 容器再建一份,同时运行两个容器?还是单个容器内可以控制多个 bucket?

    比如:

    在 IP 为 1.2.3.4 的 VPS 建立了一个 farbox 容器,现在访问 http://1.2.3.4/ 可以成功访问到站点。访问 http://1.2.3.4/admin 可以访问管理后台。按照手册,在自定义域名的 DNS 设置 A 跳转和 TXT 就可以访问到这个 bucket。

    如果我现在想在 1.2.3.4 的 VPS 建立两个 bucket,第二个 bucket 应该如何建立呢?在 http://1.2.3.4/admin 里好像没有找到通过 GUI 建立第二个 bucket 的地方...而如果建立第二个容器,VPS 本地的端口映射应该会冲突吧?

    谢谢,

    • wellsleep reply

      @wellsleep 我好像懂了... 直接部署出来的是一个 admin 账户,它来生成邀请,增加 user 账户,每个 user 的 bucket 是一个独立的站点……

      我就觉得如果要一个容器只能建一个 blog 也太傻了...

      • 秋阳 reply

        @wellsleep 是这个道理,直接用邀请码新注册就是新的用户和站点

  • wellsleep reply

    顺便再 PS 一下,xserver 一定要用 pip2 来装……

  • reply

    @Hepo 独立部署升级后新建的网站绑定域名时txt记录值不显示是怎么回事呢?之前是有的。

    • @渡 我也遇到了,多刷新几次就好

      • reply

        @琛苏 解决了,要登录新建的网站。我是几个网站搞混了没有登录。

  • wellsleep reply

    Hi Hepo,

    又来反馈问题了...

    目前无法收到评论的邮件提醒,在此之前在后台页面已经设置好了邮箱。在后台没看到设置 SMTP 的地方,所以是不是 docker 内部有自己的邮件服务?

    我用的是第一版发布的 docker,需要更新吗?

    谢谢,

  • 1. 文中提到邮件配置相关参数未找到配置入口,dashboard中配置邮箱后,评论无通知

    2. 载入template的模板无效,后台web.log中报 render_template_for_farbox_bucket_with_context> failed with NotFound,使用内置的主题无问题

  • jzan reply

    xserver 使用80和443部署端口,难道没考虑过服务器上不止一个web服务吗?能否部署成其他的端口呢?

  • reply

    不知道是不是我部署的有问题 照着部署都是成功的

    最后也是进入/admin界面 但是直接输入ip 想进入网站 报的

    404 Not Found

    no bucket found

    想问一下 需要怎么进入界面呢?是ip/index? 还是 ip/__index? 好像没有地方有说啊

  • 要是能够有docker部署细节就好了,xserver好像出不少问题