
说起族谱,向来自带神秘色彩,自从结婚以后,每年春节都要和老爸回村祭祖,从小不在村子里呆,对邻里间的亲缘关系也是一头雾水,每次回村前都要先理一理。我们村的族人多来源于先祖几兄弟的一脉,小时候就常听别人讲我们村子人比较团结,小偷进了村,都要抖一抖。原来都是有血缘关系的。越来越对自己家的族谱感兴趣。不过至今还没有机会看过族谱。
正好今天看到族谱这个项目:webtrees,感觉比较有意思,部署好之后,同组宗亲可以很方便的看到族谱了,厘清族人之间的辈分关系。避免见面喊不出称谓的尴尬。
webtrees 是一套免费、开源的在线家谱管理系统,可以用来维护家族谱系。把它部署在NAS上,族人可以通过浏览器查看自己家的族谱,不存在把族谱数据放在第三方平台,会有数据泄露的风险。
下图是部署后的效果。

一、族谱webtrees初体验
先来体验下webtrees这个项目,在威联通NAS部署好之后,在浏览器中输入NAS的ip+8077可以访问到族谱。

需要创建家族的第一人,及宗族的开基始祖。另外在【家庭信息】中还需要添加配偶信息。后续才能添加后代

接着再去创建子女的信息。

接着再去往下创建,需要回到祖先二代的页面,重复上面的操作就行。

接续添加子女。

可以通过树状图,清晰明了的看到族人之间的关系。

这个项目功能比较强大,我只是简单的进行体验。
接下来聊一聊如何在NAS中部署。
二、NAS部署
本次演示的机器是威联通NAS。
进入NAS后,打开ContainerStaion,将下方的代码粘贴进去。
version: "3.8"services:webtrees-db:image: docker.1ms.run/mariadb:10.11container_name: webtrees-dbrestart: unless-stoppedenvironment:MYSQL_ROOT_PASSWORD: "qnap1234"MYSQL_DATABASE: "c"MYSQL_USER: "webtrees"MYSQL_PASSWORD: "qnap1234"TZ: "Asia/Shanghai"volumes:- /share/Container/webtrees/db:/var/lib/mysqlnetworks:- webtrees-netwebtrees:image: ghcr.io/nathanvaughn/webtrees:2.1.27container_name: webtreesrestart: unless-stoppeddepends_on:- webtrees-dbports:- "8077:80"environment:PRETTY_URLS: "false"HTTPS: "false"HTTPS_REDIRECT: "false"LANG: "zh-CN"PHP_MEMORY_LIMIT: "1024M"PHP_MAX_EXECUTION_TIME: "90"PHP_POST_MAX_SIZE: "50M"PHP_UPLOAD_MAX_FILE_SIZE: "50M"PUID: "33"PGID: "33"TZ: "Asia/Shanghai"volumes:- /share/Container/webtrees/data:/var/www/webtrees/datanetworks:- webtrees-netnetworks:webtrees-net:driver: bridge

代码中 搭配了数据库webtrees-db,所以这个项目安装得比较久,需要大家耐心等待。

容器部署成功后,在浏览器中输入NAS的ip+端口号可以访问该项目,接下来需要我们手动安装数据库。根据指引,点击下一步。

选择【MySQL/MariaDB】,继续点击下一步。

按照图中内容进行填写,这里数据库的账号和密码,在上面的代码中。

接着注册账号。

最后就开始创建家谱了。

三、账号登录问题
部署过程相对简单,就是容器安装的过程稍微长一些。我在体验过程的时候,发现我注册的账号和密码忘记了,重新用邮箱注册时,发现邮箱根本收不到信息。
这个时候不要慌,在容器中找到webtrees,点击执行

然后输入下方命令
php -r 'echo password_hash("Qnap@123456", PASSWORD_DEFAULT), PHP_EOL;'

这时一会得到一串字符,复制下来备用。
$2y$10$xxxxxxxxxxxxxxxxxxxxxxx
接着,再去打开webtrees-db,点击【执行】。

执行
mariadb -uwebtrees -p webtreesm,然后输入数据库的密码。

接着执行下面的SQL,需要把$2y$10$。。。。这里换成上面复制的的一长串字符。
UPDATE wt_user
SET password = '$2y$10$这里换成你刚才生成的完整哈希'
WHERE user_name = 'qnap';

最后重启webtrees 容器就可以啦,登录项目,账号:qnap,密码:Qnap@123456
我在很久之前就在尝试部署族谱的项目,一直没成功过,这个项目是可以成功落地的,内置的功能也很丰富,感兴趣的朋友可以尝试下。
夜雨聆风