开源宠物健康护理追踪器EinVault

简介

什么是 EinVault ?

EinVault 是一个专为 homelabs 设计的开源的宠物健康和护理追踪器。它可以帮助用户记录宠物的健康档案、每日活动、护理日程,所有数据都保存在本地硬件上,不依赖云服务,无需注册外部账号。

主要特点

  • 宠物档案:支持记录品种、简介、兽医信息、紧急联系人和头像照片
  • 每日日记 :为每只宠物创建日记条目,支持心情追踪和每日最多 5 张照片
  • 健康追踪:记录就诊、疫苗接种、药物、程序和体重历史
  • 活动日志:追踪散步、餐食、排泄、零食、玩耍和美容记录
  • 提醒功能 :支持 recurring 和一次性提醒,覆盖药物、疫苗、美容等场景
  • 护理轮班 :安排工作轮班并导出为 iCalendar.ics)格式
  • 角色权限:管理员管理应用,成员跟踪健康,护理人员记录活动
  • 自包含部署 :单 Docker 容器 + SQLite 数据库,无外部依赖
  • 多语言支持:英语、德语、西班牙语、法语、意大利语和葡萄牙语
  • 响应式 UI:支持桌面和移动端,暗色和亮色主题

应用场景

  • 家庭宠物管理:为家中宠物建立完整的健康档案和日常记录
  • 多宠物家庭:同时管理多只宠物的健康和活动
  • 宠物寄养:护理人员可以记录宠物日常情况
  • 兽医记录:保存就诊历史和疫苗接种记录
  • 轮班看护:家庭成员轮流照顾宠物时共享信息

EinVault 是一个功能全面的宠物健康和护理管理工具,适合有宠物且希望本地管理宠物数据的用户。

安装

在群晖上以 Docker 方式安装。

该镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行部署

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 新建文件夹 einvault 和 子目录
mkdir -p /volume1/docker/einvault/data

# 进入 einvault 目录
cd /volume1/docker/einvault

# 修改目录权限
chmod a+rw data

# 运行容器
docker run -d \
  --name=EinVault \
  --restart=unless-stopped \
  -p 3608:3000 \
  -v $(pwd)/data:/data \
  -e ORIGIN=http://192.168.0.197:3608 \
  -e TZ=Asia/Shanghai \
  -e NODE_ENV=production \
  -e DATABASE_URL=/data/einvault.db \
  -e BODY_SIZE_LIMIT=10M \
  -e UPLOAD_MAX_MB=10 \
  -e user=1000:1000 \
  ghcr.io/davefatkin/einvault:latest

关于环境变量的说明

可变 说明
ORIGIN http://群晖IP:端口 必填,公共访问地址,用于 CSRF 保护
TZ Asia/Shanghai 时区设置,确保日期和时间正确显示
NODE_ENV production 生产环境模式
DATABASE_URL /data/einvault.db 数据库路径
BODY_SIZE_LIMIT 10M 请求体大小限制
UPLOAD_MAX_MB 10 上传文件大小限制(MB
user 1000:1000 容器运行的用户 UID:GID

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
services:
  einvault:
    image: ghcr.io/davefatkin/einvault:latest
    container_name: einvault
    restart: unless-stopped

    # Option A (default): host-level proxy (Nginx, Caddy, Traefik on the host)
    ports:
      - '3608:3000'

    # Option B: Docker-network proxy (Traefik, Caddy running in Docker)
    # Comment out ports above and uncomment below, then add your proxy labels/config.
    # expose:
    #   - "3000"
    # networks:
    #   - proxy

    volumes:
      - ./data:/data

    user: '1000:1000'

    environment:
      # Your public URL --- must match the address you access EinVault from.
      # Used for CSRF protection; the app will reject form submissions without it.
      ORIGIN: http://192.168.0.197:3608

      NODE_ENV: production
      DATABASE_URL: /data/einvault.db
      BODY_SIZE_LIMIT: 10M
      UPLOAD_MAX_MB: 10

      # Set to your local timezone so dates and times display correctly.
      # Defaults to UTC if omitted. Example: America/New_York, Europe/London
      # TZ: America/New_York

    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    read_only: true
    tmpfs:
      - /tmp:mode=1777,size=64m

    deploy:
      resources:
        limits:
        #  cpus: '0.5'
          memory: 256M
        reservations:
          memory: 64M

    healthcheck:
      test: ['CMD', 'wget', '-qO-', 'http://127.0.0.1:3000/api/health']
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 15s

# Uncomment if using Option B
# networks:
#   proxy:
#     external: true

然后通过 SSH 登录到您的群晖,执行下面的命令:

bash 复制代码
# 新建文件夹 einvault 和 子目录
mkdir -p /volume1/docker/einvault/data

# 进入 einvault 目录
cd /volume1/docker/einvault

# 修改目录权限
chmod a+rw data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:3608 ,第一次要创建账号

底部支持多语言切换,但是没有中文;

添加你的宠物

  • Name:名字
  • Breed:品种
  • Sex:性别
  • Date of birth:出生日期
  • Weight unit:重量单位
  • Microchip number:芯片编号
  • Bio / notes:简介 / 注释

添加完成后的主界面,左侧菜单

  • Dashboard:仪表板
  • Journal:每日日记,每个宠物的记录,带情绪追踪,每天最多 5 张照片
  • Health:健康追踪,包括兽医就诊、疫苗接种、用药、手术及体重历史
  • Reminders:提醒,包括药物、疫苗接种、美容等的反复和一次性提醒

如果你有多只宠物,可以在 Settings 中点 Add Companion 添加

注意事项

  1. 数据备份 :数据保存在 ./data 目录,定期备份该目录即可
  2. ORIGIN 设置 :必须与实际访问地址一致,否则会导致 CSRF 验证失败
  3. 端口占用 :确保本地端口 3608 未被其他服务占用
  4. HTTPS 访问 :如需 HTTPS 访问,需要配置反向代理(Caddy/Nginx/Traefik

参考文档

EinVault: A private, self-hosted companion health and care tracker

地址:https://github.com/davefatkin/EinVault

相关推荐
@土豆2 小时前
基于Docker部署Squid正向代理文档
运维·docker·容器
林润庚2 小时前
win 安装openclaw (docker镜像模式),解决18789访问失败问题
docker·openclaw·龙虾
我就是全世界4 小时前
开源脚本破解Claude Code金色传说宠物:1%概率闪光龙,三步暴力刷出
人工智能·宠物·claudecode
小江的记录本5 小时前
【Swagger】Swagger系统性知识体系全方位结构化总结
java·前端·后端·python·mysql·spring·docker
正经教主5 小时前
【docker基础】第二课:安装、配置与基础命令
docker·容器·eureka
@土豆5 小时前
【混合云组网实战】Docker部署内网互通服务,实现本地网段访问公有云VPC私网
运维·docker·容器
Keep Running *6 小时前
Docker_学习笔记
笔记·学习·docker
正经教主7 小时前
【docker基础】第三课:镜像管理与Dockerfile基础
运维·docker·容器
loriloy7 小时前
Docker 部署 Docmost 详细教程
docker·docmost