个人健康档案管理工具MediKeep
简介
什么是 MediKeep?
MediKeep是一个开源的个人健康档案管理工具,基于React前端和FastAPI后端构建。它可以帮助用户集中管理个人医疗记录、追踪用药情况、生成健康报告,并与医疗机构共享数据。
主要特点
- 病历管理:集中存储和管理个人医疗记录,包括诊断、检查报告、处方等
- 用药追踪:记录和管理所有药物信息,包括剂量、服药时间和用药计划
- 报告生成:内置报告构建器,支持自定义健康报告并导出与医疗机构共享
- 数据备份:支持通过管理后台或
CLI工具进行数据备份与恢复 - SSO 支持:可选集成
Google、GitHub等SSO登录(OIDC也支持) - 开源免费:基于自定义协议开源,可免费使用和部署
应用场景
- 个人健康记录管理:将分散在各处的病历、检查报告、处方等集中数字化管理
- 用药提醒与追踪:记录家庭成员的用药情况,方便按时服药和管理药品库存
- 就医资料准备:生成结构化的健康报告,快速提供给医生参考
- 家庭健康管理:一个账号管理全家人的健康档案

总的来说,MediKeep 是一个功能完整的个人健康档案管理平台,适合希望数字化管理自己和家人医疗记录的用户。
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest版本对应为v0.58.0;

docker-compose 安装
MediKeep 采用多容器架构,包含 PostgreSQL 数据库和 FastAPI 应用服务。由于镜像托管在 ghcr.io,建议通过 docker-compose 进行部署。
1. 创建目录
在 docker 文件夹中创建一个新文件夹 medikeep 及子目录,并进入目录:
1 | # 新建文件夹 medikeep 和 子目录 |
2. docker-compose.yml
可以从 GitHub 下载官方配置文件自己修改
1 | curl -sO https://raw.githubusercontent.com/afairgiant/MediKeep/main/docker/docker-compose.yml |
也可以直接保存老苏修改后的 docker-compose.yml
1 | services: |
3. 启动容器
1 | # 将 docker-compose.yml 放入当前目录 |

docker-compose.yml 环境变量配置说明:
postgres容器
| 环境变量 | 值/来源 | 描述 |
|---|---|---|
POSTGRES_DB |
medical_records |
数据库名称 |
POSTGRES_USER |
medapp |
数据库用户 |
POSTGRES_PASSWORD |
medikeep |
数据库密码 |
medical-records-app容器
| 环境变量 | 值/来源 | 描述 |
|---|---|---|
DB_HOST |
postgres | 数据库主机 |
DB_PORT |
5432 | 数据库端口 |
DB_NAME |
medical_records | 数据库名称 |
DB_USER |
medapp | 数据库用户 |
DB_PASSWORD |
medikeep | 数据库密码 |
SECRET_KEY |
rR9EbERNMGXTB9PrdRx2qwZbxjvLZHco | 应用密钥 |
TZ |
Asia/Shanghai | 时区设置 |
LOG_LEVEL |
INFO | 日志级别 |
PUID |
${PUID} | 用户ID(可选,bind mount用) |
PGID |
${PGID} | 进程组ID(可选,bind mount用) |
ENABLE_SSL |
${ENABLE_SSL:-false} | SSL启用(注释中,可选) |
SSO_ENABLED |
‘false’ | SSO功能开关 |
SSO_PROVIDER_TYPE |
${SSO_PROVIDER_TYPE:-oidc} | SSO提供商类型(可选) |
SSO_CLIENT_ID |
${SSO_CLIENT_ID:-} | SSO客户端ID(可选) |
SSO_CLIENT_SECRET |
${SSO_CLIENT_SECRET:-} | SSO客户端密钥(可选) |
SSO_ISSUER_URL |
${SSO_ISSUER_URL:-} | SSO发行者URL(可选) |
SSO_REDIRECT_URI |
${SSO_REDIRECT_URI:-} | SSO重定向URI(可选) |
SSO_ALLOWED_DOMAINS |
${SSO_ALLOWED_DOMAINS:-[]} | SSO允许域名(可选) |
更多的环境变量,可以参考官方的文档:https://github.com/afairgiant/MediKeep/blob/main/docs/developer-guide/04-deployment.md
运行
容器启动后,在浏览器中访问 http://<群晖IP>:8015 即可进入 Web 界面

首次使用登录信息:
- 用户名:
admin - 密码:
admin123
首次登录后务必修改默认密码。可以通过设置 ADMIN_DEFAULT_PASSWORD 环境变量来自定义初始管理员密码。
也可以自己创建一个账号

登录之后的主界面

虽然支持多语言,可惜没有中文,就这个一条,估计已经劝退了绝大多数人了

注意事项
- 首次部署必须修改密码:
admin123是默认密码,存在安全隐患,生产环境务必立即修改。 - 数据库密码:务必使用强密码,并妥善保管。密码中特殊字符需要正确转义。
- 端口占用:确保本地端口
8015(可自定义)未被占用。可用netstat -tunlp | grep 8015检查。 - 数据备份:定期通过管理后台或
CLI进行备份,备份文件存储在/app/backups,建议映射到外部存储。 - SSO 配置:如果启用
SSO,请仔细阅读 SSO 快速入门指南,目前官方支持Google和GitHub。 - 时区设置:建议将
TZ设置为Asia/Shanghai,确保日志和计划任务时间正确。 - 升级注意:镜像名已从旧的
personal-medical-records-keeper更名为medikeep,旧配置需要更新镜像名。
参考文档
afairgiant/MediKeep: Your personal health record keeper - built with React frontend and FastAPI backend
地址:https://github.com/afairgiant/MediKeepMediKeep Docker Image
地址:https://github.com/afairgiant/MediKeep/pkgs/container/medikeepMediKeep Wiki - User Guide, Admin Guide, Developer Guide
地址:https://github.com/afairgiant/MediKeep/wiki