北邮人导航是一个开源的网址导航项目,基于 Jekyll 和 Fomantic UI Web 框架,可以部署于 GitHub Pages 上。

项目地址:https://github.com/BYR-Navi/BYR-Navi

示例地址:https://byr-navi.com/

本文说明一下在 Docker 里安装的方法,这类开源项目所需的环境什么都有,个人还是比较建议在虚拟机或 Docker 里跑,也省的费劲搭建环境了, 直接拉个现成的用。

预先提示:

如果是使用 Docker 安装,并且要配置统计站的话,建议先新建一个新的网络,并在创建容器时把 Ruby,Matomo 和 MySQL 这几个容器的 IP 固定配置,便于互访。

本文开工的时候没注意到后面还需要多个容器联动这一点,但也懒得改了,自己配置时需要注意。

程序运行需要 Ruby 与 Jekyll 环境,所以直接先拉取一个 Ruby 镜像,我这里选择 2.6 版:

docker pull ruby:2.6

然后创建容器,注意把 4000 端口映射出来,其他参数自己随意:

docker run -dit --restart=always -p 4000:4000 --name=byr ruby:2.6

创建完之后进入容器:

docker exec -it byr bash

由于容器里的系统都是高度精简的版本,因此先来升级一下,我拉取的镜像是基于 Debian 系统作为底包的,所以这里运行:

apt-get update

然后安装 vim 编辑器,后面需要用到:

apt-get -y install vim

接着在容器里安装 Jekyll 等:

gem install jekyll bundler

拉取项目:

git clone https://github.com/BYR-Navi/BYR-Navi.git

进入项目目录:

cd BYR-Navi

编辑项目 gem 文件:

vi Gemfile

然后把文件第一行的源地址,由 https://rubygems.org 改成 https://gems.ruby-china.com,然后保存退出即可。

修改这个的主要原因是默认的官方源地址在国内访问速度实在过于感人,国外机子的话这个无需修改。

开始安装所需依赖:

bundle install

创建站点:

bundle exec jekyll serve -H 0.0.0.0 -P 4000 --detach 

注意后面一定要指定参数,jekyll 默认绑定了 127.0.0.1 的地址,导致不加参数直接运行的话,是无法访问项目的。

-H 表示绑定到本机 IP

-P 表示指定端口,根据自己需求修改 

--detach 表示后台运行

#调试时可不加后台运行参数,这样直接 Ctrl+C 就能关闭进程

如上图所示就是运行成功了,同时也会提示如果需要结束运行时对应的 pid,去防火墙放行一下 4000 端口,访问 IP+4000 端口即可看到网站:

如果需要修改首页标题这类,可以编辑网站根目录下的_config.yml 文件,效果如下图:

网址的话则是修改_data 目录下的 links.yml,还有各种页面相关信息也是修改此目录下其他文件即可。

页面的今日访客和当前在线等统计数据需要显示的话,还额外需要安装 Matomo 和 MySQL,Matomo 本身又依赖 PHP 和 Nginx,总体麻烦还消耗更多资源,个人使用的话感觉没多大必要安装,这里还是提一下。

分别拉取 Matomo 和 MySQL 镜像:

docker pull crazymax/matomo

docker pull mysql:5.6 

注意 Matomo 不能拉取官方的镜像,官方镜像里没有 Nginx,无法直接运行,所以这里使用第三方配置好的。

然后创建 Matomo 容器,把容器里 data 目录和 8000 端口映射出来:

docker run --restart=always -d --name matomo -p 8000:8000 -v /matomo/data:/data crazymax/matomo

再创建 MySQL 容器,3306 端口和对应目录也映射出来,用户名/数据库名这类按自己需求修改:

docker run --restart=always --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=lishuma -e MYSQL_DATABASE=matomo -e MYSQL_USER=matomo -e MYSQL_PASSWORD=matomo -v /matomo/mysql:/var/lib/mysql mysql:5.6

防火墙放行 8000 和 3306 端口,然后访问 IP+8000 端口即可看到 Matomo 界面:

一路下一步,数据库信息按照自己设定的填写即可,注意服务器地址填写外部物理机的 IP,比如我这里是 192.168.1.119:

接着设定管理员密码之类即可,不再多说,然后添加站点里填写对应地址时区等,我这里没绑定域名,就直接写 IP 地址了:

网站地址直接写 IP 有个问题就是程序会提示不安全,需要去根目录下的/matomo/data 文件夹,也就是容器里映射出来的目录,修改 config.ini.php,添加一行:

enable_trusted_host_check=0

然后登陆后台,可以先把语言改成中文,然后左侧的平台菜单里获取自己的 API。网站菜单里选择管理,查看网站 ID,一般第一个网站默认 ID 就是 1。

知道了 ID 和 API 后,返回到网站主程序目录下的_data 目录,修改其中的 analytics.yml。

url 改成统计站的地址,domains 填写导航站的地址,比如我这里主站点为 4000 端口,统计站为 8000 端口,就如下图填写:

统计站的通用设置里还需要设置一下跨域资源共享,填上导航站的地址,保存退出即可:

整个流程到这里就完成了,导航站刷新首页后即可看到当前访客数和在线人数等数据了:

其他剩下的就不赘述了,首页其他修改基本都是依葫芦画瓢的事,没什么难度。

骁龙 8cx Gen3 的 Windows 11 on ARM 体验

老早之前写了苹果 M1 虚拟机和初代骁龙 8cx 跑 Win11 ARM 版的体验,转眼都过去一年多了,现在来给这系列再续一笔。 最近为了体验下 8cx Gen3,买了台华...

阅读全文

Xbox One S 更换固态硬盘流程

记录一下给 Xbox One S 换硬盘的过程,虽然手头现在有 XSX 和 XSS 了,但 X1S 作为我第一台游戏机,还是陪我度过了几年美好时光的,所以如今固态硬盘一路下...

阅读全文

无线宝一代 64G 加速版编程器刷 Padavan

前年底买的一代京东无线宝挂到现在基本也没啥收益了,之前一天还能有个四五毛捞点电费,现在收益又挨了几轮刀后基本惨不忍睹了,白嫖那么多流量一个月到头来...

阅读全文

5 条评论

  1. 宝塔 Docker 部署的 BYR-Navi 为什么不能重启?
    我在 docker 管理器充重启了 Byr,就 GG 了!
    博主遇到过这种情况吗?

    1. 我自己机子上宝塔的 docker 管理器一直存在 bug,所以没用过,建议 ssh 直接用 docker 命令重启

    1. 按文章里配置的话应该是都没问题的,不知道你具体什么情况了。个人使用的话统计没什么用,装不装都一样。