在信息化时代,传统的家谱记录方式(如纸质、Excel 文档)逐渐暴露出诸多问题:数据不结构化、难以查询、共享不便、易丢失。为了实现家谱数据的长期存储、结构化管理以及代际传承,选择一个稳定、开源、可自托管的家谱管理系统显得尤为重要。

为什么选择 Webtrees?

Webtrees 是一款专为家谱管理设计的开源应用,具备以下优势:

  • 专为家谱而生:支持完整的血缘结构、婚姻关系、家族事件等数据。
  • 支持 GEDCOM 标准:家谱行业通用格式,便于迁移和长期保存。
  • 自托管 + 隐私控制:所有数据掌握在自己手中,适合对隐私要求较高的用户。
  • 可协作管理:家族成员可通过账户共同维护同一个谱系。
  • 功能丰富:自动生成谱系图、支持多媒体、提供搜索、时间线、地点地图等可视化工具。
  • 社区活跃、维护持续:项目历史超过十年,更新稳定,安全可控。

这些特性使得 Webtrees 成为构建“可传承家谱系统”的理想选择。

Docker 化部署:零污染、易迁移、长期运行

为了避免在主系统中安装 PHP、数据库等依赖,Webtrees 可以通过 Docker 容器快速部署。此方法可实现环境隔离、版本控制、轻松备份,是当前最推荐的部署方式。

项目结构说明

建议在主目录下创建如下结构:

webtrees/
├── docker-compose.yml
├── webtrees-data/ # 存储 Webtrees 配置、媒体文件
└── db-data/ # 存储 MariaDB 数据库数据

docker-compose.yml 示例

version: '3.8'

services:
webtrees:
image: webtrees/webtrees:latest
ports:
- "8080:80"
volumes:
- ./webtrees-data:/var/www/html/data
environment:
- WT_DB_HOST=db
- WT_DB_PORT=3306
- WT_DB_NAME=webtrees
- WT_DB_USER=webtrees
- WT_DB_PASSWORD=secretpassword
depends_on:
- db

db:
image: mariadb:10.6
restart: always
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=webtrees
- MYSQL_USER=webtrees
- MYSQL_PASSWORD=secretpassword
volumes:
- ./db-data:/var/lib/mysql

启动服务后,Webtrees 将通过 http://localhost:8080 对外提供访问,MariaDB 数据库存储全部数据。

启动步骤

docker-compose.yml 文件所在目录执行:

docker-compose up -d

浏览器访问:http://localhost:8080,即可进入安装向导。

安装过程中需填写数据库连接信息,与 docker-compose 中配置保持一致,例如数据库主机为 db,用户名为 webtrees,密码为 secretpassword

完成后可创建管理员账户,开始家谱的管理与构建。

数据持久化与备份建议

为了实现家谱数据的长期保留与可迁移,建议采用如下备份策略:

  • 定期打包备份 webtrees-datadb-data 目录
  • 可配置定时任务(如 cron)自动导出数据库和家谱 GEDCOM 文件
  • 备份文件建议多地保存(本地硬盘、云盘、移动硬盘等)

示例手动备份命令:

tar -czf webtrees-backup-$(date +%F).tar.gz webtrees-data db-data

结语:构建一个可传承的家谱平台

Webtrees 是一套高度成熟且可扩展的家谱管理系统。借助 Docker 技术,可以在不影响宿主系统的前提下,快速部署一套功能完备、安全可控的家谱平台。它既适合家庭个人记录祖先血缘,也支持多人协作,共同维护整个家族的历史。

在长期传承家谱这一目标下,选择一个标准化、可备份、可迁移、开源透明的方案是必要的第一步。Webtrees 与 Docker 的组合,为此提供了一个近乎理想的解决方案。

Leave a Reply

Your email address will not be published. Required fields are marked *