园艺伴侣应用程序Plant-it

什么是 Plant-it ?

Plant-it 是一款园艺伴侣应用程序,可帮助您照顾植物。它不会建议您采取哪些操作,而是旨在记录您正在执行的活动。这是故意的,软件作者坚信,唯一负责知道何时给植物浇水、何时施肥等的人是你(在多个在线资源的帮助下)。Plant-it 可以帮助您记住上次对植物进行处理的时间、您拥有哪些植物、收集植物的照片,并通知您自上次处理植物以来经过的时间。

安装

在群晖上以 Docker 方式安装。

docker-compose.yml

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

本文折腾时,前后端镜像 latest 对应的版本为 0.0.17

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
version: "3"

services:
backend:
image: msdeluise/plant-it-backend:latest
container_name: plant-it-backend
restart: unless-stopped
env_file: backend.env.txt
depends_on:
- db
- cache
volumes:
- "./upload:/upload-dir"
ports:
- "3096:8080"

db:
image: mysql:8.0
container_name: plant-it-db
restart: always
env_file: backend.env.txt
volumes:
- "./db:/var/lib/mysql"

cache:
image: redis
container_name: plant-it-cache
restart: always

frontend:
image: msdeluise/plant-it-frontend:latest
container_name: plant-it-frontend
env_file: frontend.env.txt
links:
- backend
ports:
- "3095:3000"

backend.env.txt

将下面的内容保存为 backend.env.txt 文件,这是后端服务的环境变量设置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
MYSQL_HOST=db
MYSQL_PORT=3306
MYSQL_USERNAME=root
MYSQL_PSW=root
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=bootdb

JWT_SECRET=f302ce974585f4d89dfabb2d7e927fcca4be800a5568b0ebb569f91f044773df1bd86c3655f330bab5af059ce678f841909b1d59b755840ef978e78b65da4205
JWT_EXP=1

USERS_LIMIT=2 # including the admin account, so <= 0 if undefined, >= 2 if defined
UPLOAD_DIR=/upload-dir
API_PORT=8080

CACHE_TTL=86400
CACHE_HOST=cache
CACHE_PORT=6379

TRAFLE_KEY=

ALLOWED_ORIGINS=*

  • backend.env.txt 文件中主要的几个参数:
    • API_PORT:后端服务的容器端口,不要改;
    • JWT_SECRET :可以用 Vaultwarden 的密码生成器,也可以用 openssl rand -hex 64
    • MYSQL_:和 MySQL 数据库相关的设置

frontend.env.txt

将下面的内容保存为 frontend.env.txt文件,这是前端页面的环境变量设置文件

1
2
3
4
5
6
7
PORT=3000
API_URL=http://192.168.0.197:3096/api
WAIT_TIMEOUT=5000

PAGE_SIZE=25

BROWSER=none
  • frontend.env.txt 文件中主要的几个参数:
    • PORT:前端页面的容器端口;
    • API_URL:后端 API 服务的外部可访问地址,例如http//<群晖主机IP>:<API_PORT>/api,如果反代了,这里要用域名;

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 plantit 和 子目录
mkdir -p /volume1/docker/plantit/{db,upload}

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

# 将 docker-compose.yml 、 frontend.env.txt、 backend.env.txt 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3095 就能看到首页

第一次需要通过 create an account 创建账号,之后就可以通过 login 登录,登录成功后的主界面

这个页面风格一看就是主要针对手机的用户的

添加植物

点下面的放大镜图标,然后在点击 Custom 的图片,来添加自己的植物

  • Scientific classification –> 科学分类

    • Family –> 科
    • Genus –> 属
    • Species –> 种
    • Thumbnail –> 缩略图
  • Plant –> 植物

    • Name –> 名称
    • Purchased date –> 购买日期
    • Purchased on –> 购买于
    • Note –> 备注

这些不是都需要设置,老苏就设置了 Name ,并上传了 Thumbnail,设置完成点下面的 SAVE PLANT 即可

保存成功就能看到了

重复上面的步骤,添加另外的植物

添加事件

点屏幕下方正中间的 + 号创建事件

Name 支持下拉,也支持多选

  • Type –> 事件类型
    • Biostimulating –> 生物刺激
    • Fertilizing –> 施肥
    • Misting –> 喷雾
    • Observation –> 观察
    • Seeding –> 播种
    • Transplanting –> 移栽
    • Treatment –> 处理
    • Watering –> 浇水
    • Water changing –> 换水

接下来加上时间和备注

SAVE EVENT 保存之后

继续填加其他事件,不同的类型有不同的图标和颜色,熟悉之后一目了然

最后看看手机上的效果

参考文档

MDeLuise/plant-it: 🪴 Self-hosted, open source gardening companion app
地址:https://github.com/MDeLuise/plant-it