什么是 HortusFox ?
HortusFox
是一个自托管的协作植物管理系统,您可以在自己的环境中使用它来管理所有的植物。您可以添加植物,并附带各种详细信息和照片,并将它们分配到环境中的位置。系统提供了一个仪表板,显示所有重要的概览信息。该系统还具有警告系统,以指示哪些植物需要特殊关注,还包括用户身份验证、任务、库存管理、协作聊天和用户所采取的操作历史记录。该系统支持协作管理,因此您可以与多个用户共同管理您的植物。
这是国外一位程序员为女朋友开发的,用于记录她家里 100
多株植物的情况
软件特点:
- 管理植物并将其分配到位置
- 包括植物的许多详细信息,以及标签系统和照片上传功能
- 任务功能:跟踪植物养育所需的任务
- 库存管理系统:跟踪与植物相关的库存
- 搜索功能:搜索文本标记或植物
ID
- 植物历史记录:跟踪已经消失的植物
- 群组聊天:交流重要的与植物相关的信息
- 管理员仪表盘:管理系统、用户、位置和媒体
- 用户仪表盘:查看位置和其他重要信息
你可以先去官方演示站点进行体验:https://www.hortusfox.com/demo
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
官方提供了 Dockerfile
文件,但没找到镜像,所以需要自己编一下,对应的软件版本为 v1.6
构建镜像和容器运行的基本命令如下👇
# 下载代码
git clone https://github.com/danielbrendel/hortusfox-web.git# 进入目录
cd hortusfox-web# 构建镜像
docker build -t wbsu2003/hortusfox-web:v1 .# 运行容器
docker-compose up -d
安装
在群晖上以 Docker 方式安装。
需要注意的是,群晖内核版本太低会遇到下面的错误,这个
AH00141
已经遇到多次了,老苏除了换机器,也没找到其他的办法;
Function not implemented: AH00141: Could not initialize random number generator
在注册表中搜索 hortusfox
,选择第二个 wbsu2003/hortusfox
,版本选择 latest
。
涉及到前、后端两个容器,所以采用
docker-compose
安装更简单一些
请将下面的内容保存为 docker-compose.yml
文件
version: '3.8'services:app:image: wbsu2003/hortusfox-webcontainer_name: hortusfox-webports:- "3094:80"environment:APP_DEBUG: "true"DB_HOST: dbDB_PORT: 3306DB_DATABASE: hortusfoxDB_USERNAME: hortusfoxDB_PASSWORD: passwordDB_CHARSET: "utf8mb4"HORTUSFOX_ADMIN: wbsu2003@gmail.comHORTUSFOX_PASSWORD: 123456depends_on:- dbdb:image: mariadbcontainer_name: hortusfox-dbrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: my-secret-pwMYSQL_DATABASE: hortusfoxMYSQL_USER: hortusfoxMYSQL_PASSWORD: passwordports:- "3308:3306"volumes:- ./data:/var/lib/mysql
- 容器
hortusfox-db
的环境变量
可变 | 值 |
---|---|
MYSQL_ROOT_PASSWORD | 数据库用户 root 用户对应的密码 |
MYSQL_DATABASE | 数据库库名 |
MYSQL_USER | 数据库用户 |
MYSQL_PASSWORD | 数据库用户对应的密码 |
- 容器
hortusfox-web
的环境变量
可变 | 值 |
---|---|
APP_DEBUG | 调试模式 |
DB_HOST | 数据库主机 |
DB_PORT | 数据库端口 |
DB_DATABASE | 数据库库名,对应 MYSQL_DATABASE 的值 |
DB_USERNAME | 数据库用户,对应 MYSQL_USER 的值 |
DB_PASSWORD | 数据库主机,对应 DB_PASSWORD 的值 |
DB_CHARSET | 数据库字符集 |
HORTUSFOX_ADMIN | 管理员账号,不设会有默认值 |
HORTUSFOX_PASSWORD | 管理员密码,不设会自动生成 |
然后执行下面的命令
# 新建文件夹 hortusfox 和 子目录
mkdir -p /volume2/docker/hortusfox/data# 进入 hortusfox 目录
cd /volume2/docker/hortusfox# 将 docker-compose.yml 放入当前目录# 一键启动数据库
docker-compose up -d db# 稍等一会再一键启动
docker-compose up -d
一定要先启动数据库,等一会儿再启动
HortusFox
,否则会登录失败
以往到这里就结束了,但是这个镜像还不行,因为在上传植物照片时,会报错
经过老苏的测试,发现应该是图片目录权限是 755
没有写入权限导致的。既然知道了原因,就好办了
# 进入容器
docker exec -it hortusfox-web /bin/bash# 修改目录权限
chmod 777 ./public/img
运行
在浏览器中输入 http://群晖IP:3094
就能看到登录界面
如果你没有设置 HORTUSFOX_ADMIN
和 HORTUSFOX_PASSWORD
,容器 hortusfox-web
在启动时会自动生成管理员账号和密码,在日志中能找到
这界面风格应该是为移动端浏览器设计的
软件支持多语言,但是目前只有 英文
和 德文
添加 Locations
从设置中找到 Locations
点 Add Location
添加区域
关于 Icon
支持 Font Awesome 5
,老苏参照官方的图标,在这里找到了几个常用的图标
https://www.w3schools.com/icons/fontawesome5_intro.asp
- 花园:
fas fa-leaf
- 阳台:
fas fa-crow
- 卧室:
fas fa-bed
- 游戏室:
fas fa-gamepad
- 厨房:
fas fa-utensils
- 客厅:
fas fa-couch
- 浴室:
fas fa-bath
添加成功后,可以修改和删除
回到首页
添加 Plant
点 Add Plant
添加植物
- 似乎对图片的兼容性不是太好,比较容易报错;
- 图片目录没有映射到本地目录,所以重装会导致图片丢失;
添加成功,可以继续添加其他的植物
回到首页
创建任务
点 Create new
创建新任务
任务有点简陋
已经完成的任务,可以在 Done
里找到
其他还有库存(Inventory)、聊天(Chat) 等功能,有兴趣可以自己摸索
参考文档
danielbrendel/hortusfox-web: Self-hosted collaborative plant management system for your local environment
地址:https://github.com/danielbrendel/hortusfox-web
hortusfox.github.io
地址:https://hortusfox.github.io/
HortusFox: Plant Manager App
地址:https://www.hortusfox.com/
HortusFox, the selfhosted & collaborative plant manager app, reached version 1.6 today! : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/193kmr8/hortusfox_the_selfhosted_collaborative_plant/
What is HortusFox? An explanation : hortusfox
地址:https://www.reddit.com/r/hortusfox/comments/18ybo0r/what_is_hortusfox_an_explanation/