群晖上部署农场管理系统farmOS

什么是 farmOS ?

farmOS 是一个基于 Web 的应用程序,用于农场管理、规划和记录保存。它由志愿者社区开发,旨在为农民、开发人员和研究人员提供一个标准平台。

需要注意的是,群晖内核版本太低会遇到下面的错误,这个 AH00141 已经遇到多次了,老苏除了换机器,也没找到其他的办法;

1
AH00141: Could not initialize random number generator

准备

建数据库

老苏用了群晖自带的 MariaDB 10 数据库。

phpMyAdmin 中创建名为 farmos 的空数据库。

为便于说明,假设数据库密码为 123456

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307
  • 数据库用户:farmos
  • 数据库密码:123456
  • 数据库库名:farmos,因为勾选了与用户同名;

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 farmos ,选择第一个 farmos/farmos,版本选择 latest

本文写作时, latest 版本对应为 3.1.2

docker 文件夹中,创建一个新文件夹 farmos,并在其中建一个子文件夹 sites

文件夹 装载路径 说明
docker/farmos/sites /opt/drupal/web/sites 存放站点预构建文件、设置文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
6372 80

命令行安装

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

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 farmos 和 子目录
mkdir -p /volume2/docker/farmos/sites

# 进入 farmos 目录
cd /volume2/docker/farmos

# 运行容器
docker run -d \
--restart unless-stopped \
--name farmos \
-p 6372:80 \
-v $(pwd)/sites:/opt/drupal/web/sites \
farmos/farmos

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

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
farmos:
image: farmos/farmos
container_name: farmos
restart: unless-stopped
ports:
- 6372:80
volumes:
- ./sites:/opt/drupal/web/sites

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 farmos 和 子目录
mkdir -p /volume2/docker/farmos/sites

# 进入 farmos 目录
cd /volume2/docker/farmos

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:6372 就能看到向导界面

按照前面的数据库设置填写

  • Database type:使用默认的 MySQL, MariaDB, Percona Server, or equivalent 即可;
  • Database name:数据库库名;
  • Database username:数据库用户;
  • Database password:数据库用户对应的数据库密码;

Advanced options

  • Host:数据库主机,因为使用了群晖自带的 MariaDB,所以这里填群晖主机的 IP
  • Port number:数据库端口;
  • Transaction isolation level:缺省值 READ COMMITTED
  • Table name prefix:数据库表前缀,farm_ 或者 farmos_ 都是可以的;

Save and continue ,会有安装进度显示

开始设置站点名称、账号、国家和时区等

这一步选择需要安装的模块

除了默认的模块外,老苏还勾选了 Translation/localization features 模块,这是语言切换需要的模块。当然,如果现在不安装,后续也可以在设置模块中进行安装

显然选择的模块越多,安装时间会越长

安装完成后的主界面

OpenStreeMap 的加载有点慢,加载完成后

接下来可以开始通过右上角的 Add Asset 添加资产了

  • Animal:动物
  • Equipment:设备
  • Land:土地
  • Plant:植物
  • Structure:建筑,可以指代农场中的各种建筑物,如农舍、谷仓、大棚、温室等
  • Water:水

如果你安装了更多的模块,可能还会有种子肥料传感器 等物资;

中文(失败)

这是一次失败的尝试,有成功的朋友请不吝赐教

先是尝试了官方提供的方法,https://farmos.org/hosting/localization/

通过 Add language 添加 Chinese,Simplifed

但是会显示下载失败,系统中创建了 translations 目录,但是没有内容

手动下载了 po 文件,地址:https://ftp.drupal.org/files/translations/all/drupal/drupal-10.2.3.zh-hans.po

直接放到 translations 目录或者通过 Import 导入,也都没有成功,算了就先这样吧

参考文档

farmOS/farmOS: farmOS: A web-based farm record keeping application.
地址:https://github.com/farmOS/farmOS

paul121/farm-tugboat-demo: Simple site for creating demos of farmOS.
地址:https://github.com/paul121/farm-tugboat-demo

farmOS | 安装
地址:https://farmos.org/hosting/install/

farmOS | 官网
地址:https://farmos.org/

Chinese, Simplified overview | Translations
地址:https://localize.drupal.org/translate/languages/zh-hans