在信息化时代,传统的家谱记录方式(如纸质、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-data与db-data目录 - 可配置定时任务(如
cron)自动导出数据库和家谱 GEDCOM 文件 - 备份文件建议多地保存(本地硬盘、云盘、移动硬盘等)
示例手动备份命令:
tar -czf webtrees-backup-$(date +%F).tar.gz webtrees-data db-data
结语:构建一个可传承的家谱平台
Webtrees 是一套高度成熟且可扩展的家谱管理系统。借助 Docker 技术,可以在不影响宿主系统的前提下,快速部署一套功能完备、安全可控的家谱平台。它既适合家庭个人记录祖先血缘,也支持多人协作,共同维护整个家族的历史。
在长期传承家谱这一目标下,选择一个标准化、可备份、可迁移、开源透明的方案是必要的第一步。Webtrees 与 Docker 的组合,为此提供了一个近乎理想的解决方案。