被通知回老家当农场主,没有经验的我用FarmOS系统抢先体验了一把!

网管小贾 / sysadm.cc

网管小贾 / sysadm.cc

公司小Z过年回来就变得有点魔怔,工作积极性不高,天天话里话外总是唠叨着要辞职回老家种地!

老板让我去劝劝他,强调务必对齐颗粒度,说劝好了给我记上一功。

我也不知道之前的那些功啥时候能变现,不过正好这一天我倒出点空,就向小Z打听打听他的近况。


小Z这小伙儿呢平时在公司也就打打杂,没啥正经活干,一天天地就看个手机,虽然每月拿着三千二百五的高薪,但是工作不算累。

年前有段时间我就发现他经常刷一些农村题材的视频,像什么在农村买个房子,完了自己开垦荒地种个瓜果梨桃啥的,要不就是养鸡养鸭养鳄鱼。

我问他好看不,平时爱答不理的他一听倒来了劲头,乐此不疲地向我介绍农村生活的各种美好。

一时间这小子滔滔不绝、口若悬河,把那未来的美景给我画得那么宏伟壮阔,比那老板画的饼都香上两个级别。

说实话,我也觉得挺好看,便饶有兴趣地听了那么一会儿,最后好不容易轮到我接茬了。

我就说,城市里太危险,你应该回到农村去,你看你志向也挺远大的,可是看似美好的东西,它是要付出辛勤的劳动和汗水才能获得的啊,你吃得了那苦吗?

结果这小Z小脸一扬,带着不屑指天发誓定要试试,不试试咋知道自己合不合适当农场主呢!


你以为你是大衣哥啊,一出门,什么小鸡小鸭小鹅、小猪小牛小羊都围拢过来,你是高高在上的森林之王啊!

行,农场主是吧?

正好,我给你看样东西,我就问你,你懂现代化农场理论吗,你会用电脑系统管理农场吗?

小Z就反问道,就两亩薄田还整啥现代化农场,偷菜我倒是玩过。

不管怎么地吧,先来看看这个!

我打开电脑,给他看了 FarmOS ,一款可以让你体验农场主的系统。


FarmOS 可能有很多人没听说过,它的确是一款挺有意思的 Web 应用,它可以帮助人们方便农业管理、规划与记录应用。

注意,它可不是游戏哦!

FarmOS 构建在 Drupal 的基础之上,虽然我也没怎么用过 Drupal ,但你可以简单地理解为像 Wordpress 差不多的同样基于 PHP 的内容管理系统,因此我们也就很容易理解 FarmOS 是专门提供农场管理功能的这么一个系统了。

它由生活在社区中的一些农户、开发人员、研究人员以及相关组织共同开发出来的,目的是更好地为人们提供一个用于农业数据收集和管理的标准平台。

在这里插入图片描述

这个 FarmOS 到底里面都有点啥呢?

我也是初次了解,因此我先替小伙伴们蹚了蹚水,试了试深浅。

本文非常适合第一次接触 FarmOS 的小伙伴,感兴趣的话请接着往下看哈!


在初步了解 FarmOS 之前自然是想办法安装一个看看。

不过这玩意好像不太好装,并且限制较多,还好在自己的主机上也可以部署,这就给了我们一个初步体验的机会。

好,先来看看安装配置要求吧。

  • 要有 Web 服务,比如 Nginx 之类
  • 要有数据库,PostgreSQLMySQLSQLite
  • PHP >= 8.2
  • MySQL >= 5.7

官网上要求挺多,而且 PHP 中还要一些特殊扩展,比如 xmlrpc 等,不太好搞。

一开始我在 Windows 下折腾了老半天,不得要领。

好不容易快看到希望,就差最后一哆嗦了,可惜哆嗦完了,然后就没有然后了。

尝试过了各种安装方式的失败(包括发行版安装和 Composer 安装),最后决定还是拿最简单,但又不那么简单的 Docker 方式来安装!


Docker 环境要事先部署,比较考验耐心,如果你已经有了 Docker ,那么直接上手就方便多了。

使用 Docker 安装,按如下命令行执行,其中 3.x.y 是指版本号,比如 3.1.1

docker pull farmos/farmos:3.x.y

或者干脆不带版本号安装也是可以的。

docker pull farmos/farmos

不过官方并不建议使用这种默认最新版 Lastest 的方式来安装,究其原因是因为后续更新可能需要我们自己手动操作,难免会带来一些麻烦。


数十秒安装完成,接下来就可以运行 FarmOS 了。

docker run --rm -p 80:80 -v "${PWD}/sites:/opt/drupal/web/sites" farmos/farmos:3.x.y

如果系统提示端口冲突,那么可以这样改一个新端口(比如 8088 ),注意前面那个才是外部端口。

docker run --rm -p 8088:80 -v "${PWD}/sites:/opt/drupal/web/sites" farmos/farmos:3.x.y

在这里插入图片描述

好了,打开浏览器,输入服务器的链接地址访问吧!

http://x.x.x.x/

或者你改过端口了。

http://x.x.x.x:8088/

这样就可以打开初始化安装向导程序界面了。

不过话说挺奇怪的,为啥我这儿直接跳过了 选择语言确认配置 两个步骤呢(不知道是不是 BUG )?

直接来到了第三个步骤,设定数据库。

在这里插入图片描述

Docker 安装方式下,这里的数据库服务必定是在外部的(相对 Docker 容器),我们可以点击那个高级选项 Advanced options

在这里可以指定数据库服务器的域名或 IP 地址,以及访问端口、数据表前缀等信息。

数据库设置没问题的话,接下来它就开始安装导入数据了。

在这里插入图片描述

数秒后我们来到了站点配置界面。

在这里我们可以给我们即将诞生的可爱农场起个萌萌哒的名字,然后再填写一些诸如邮箱、管理员等信息。

在这里插入图片描述

最后,安装你想要的一些模块。

我也是刚开始接触这玩意,不知道选择啥,就保持默认吧。

在这里插入图片描述

这个安装需要花点时间,不过也不算太慢,之后所有安装就可以全部搞定了。

在这里插入图片描述
在这里插入图片描述

点击 existing site 或是重新打开站点,我们的农场网站就可以开始使用了。

在这里插入图片描述

美中不足的是,由于地图需要用到 GPS ,而这个东东它是在墙外边的,因此一片空白没办法正常显示。

地图由 OpenStreetMap 提供服务,正常情况下它应该是这个样子的。

在这里插入图片描述

官网其实是有说明的,包括关于 FarmOS 域名注册,以及如何生成 Google API 密钥等。

因为地图是比较敏感的信息,因此也不太方便在这里展示了,有能力的小伙伴们请自行研究吧。

当然了,我在这儿留个链接,注意这是 v1 版本的,仅供参考。

https://v1.farmos.org/hosting/apikeys/


好了,接下来我们就可以用 FarmOS 来管理我们的农场了。

比如添加一些资产,有牲畜、设备、土地、农作物、房子、水源等等。

在这里插入图片描述

然后再增加一些人员,比如工人和管理员。

在这里插入图片描述

还有一些其他具体的内容我也没详细操作过,小伙伴们可以自行体验哈!

如果大家没能成功安装也别着急,可以通过官方提供的演示页面来体验。

在演示界面下倒是可以看到地图的样貌。

https://farmos-demo.rootedsolutions.io/demo/3.x

话说经过我这么一介绍,没想到小Z两眼放光,把这小子给深深吸引住了。

他问我,这玩意怎么都是英文的?

我告诉他,Drupal 是支持中文语言的,只是 FarmOS 本身支不支持中文就不太清楚了,我还没来得及查资料。

小Z点了点头,说自己好歹是过了四级的人,虽然大部分都还给了老师,但是个把单词还是能靠翻译软件搞定的。

只是……


小Z看了看我,居然想拉我一起搞农场!

我心想,你小子也就是说说而已吧,回家种地维持个温饱,恐怕时间一长就厌倦了,还得出来打工,年轻人不知深浅啊!

我合上电脑摆了摆手,朝着老板办公室走去,边走边说老板那还欠我两顿盒饭呢,我暂时没有挪窝的打算哈。

看我没有合作的意思,小Z低头叹了口气,然后拨通了老家的电话。

“喂!大伯父,过年时商量的让我接手西山上那2000亩地,我考虑过了,就这几天回来!”

我不由自主地暂停了脚步,此时也不知道我该和他再谈谈呢,还是去找老板汇报……


将技术融入生活,打造有趣之故事

网管小贾 / sysadm.cc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/427209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划专栏】

动态规划基础知识 概念 动态规划(Dynamic Programming,DP):用来解决最优化问题的算法思想。 动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。 一般来说,…

OpenAI钦点的“机器人界OpenAI”来了:成立不到两年估值破26亿美元

OpenAI们正在今年因AI而再次火热无比的机器人领域“复刻”一个OpenAI。 2024年2月23日,OpenAI、微软、贝佐斯风投、英伟达等总计18位投资公司向一家机器人公司注资了6.75亿美元,这家公司就是Figure AI。 Figure AI成立于2022年,两年不到经过…

(已解决)Unicode高位码点emoji表情无法解析

问题描述 我在制作游戏论坛项目,希望制作一个表情库,我参考了菜鸟的emoji手册,并且使fromCharCode函数来进行字符串转换,但是经过我的测试,对于超过5位数的高位码点,无法正常解析。 源码: &l…

WiFi模块引领零售数字化转型:智能零售体验再定义

随着科技的不断发展,零售业正迎来一场数字化转型的浪潮。在这个变革过程中,WiFi模块成为零售业中的关键技术,为商家提供了丰富的数字化工具,打造了更智能、便捷、个性化的零售体验。本文将深入探讨WiFi模块在零售数字化转型中的关…

学习使用paddle来构造hrnet网络模型

1、首先阅读了hrnet的网络结构分析,了解到了网络构造如下: 参考博文姿态估计之2D人体姿态估计 - (HRNet)Deep High-Resolution Representation Learning for Human Pose Estimation(多家综合)-CSDN博客 最…

Python的With...As 语句:优雅管理资源的技术探索【第116篇—With...As 语句】

Python的With…As 语句:优雅管理资源的技术探索 在Python编程中,with...as语句是一项强大而优雅的功能,用于管理资源,如文件、网络连接、数据库连接等。本文将深入介绍with...as语句的用法、其工作原理,并通过代码示例…

光子嫩肤仪面罩控制器PCB电路中升压恒流芯片FP7208的应用

护肤已经成为现代人日常生活中不可或缺的一部分,尤其对于追求美丽肌肤的人来说,寻找一款适合自己的护肤利器至关重要。 光子嫩肤仪作为一种高科技美容仪器,受到越来越多人的追捧。其中,FP7208LED升压驱动IC作为其核心部件之一&am…

TQ15EG开发板教程:创建运行petalinux2019.1

工程网盘链接:https://pan.baidu.com/s/1vFRpzmbifXt7GypU9aKjeg 提取码:0ylh 首先需要使用与petalinux相同版本的vivado创建工程,与之前不同的是在创建硬件设计时需要勾选上添加bit文件,所以要在生成bit文件之后再创建硬件设计…

谷粒商城【成神路】-【8】——商品上架

目录 1.数据模型封装 1.es数据模型 2.将es数据模型封装为JAVA bean 3.根据前端发送请求,编写controller 2.模型实现 2.1服务controller 2.2服务service 2.3服务远程调用接口 2.4检索服务controller 2.5检索服务保存到es 2.6库存查询服务 1.数据模型封装 1.es数据模…

银河麒麟之Workstation安装

一、VMware Workstation简介 VMware Workstation是一款由VMware公司开发的虚拟化软件,它允许用户在一台物理计算机上运行多个操作系统,并在每个操作系统中运行多个虚拟机。VMware Workstation提供了一个可视化的用户界面,使用户可以轻松创建、…

纵行科技荣登“中国物联网企业投资价值50强”、“中国物联网行业创新产品榜”

近日,由深圳市物联传媒有限公司、AIoT星图研究院、IOTE组委会、深圳市物联网产业协会主办的“2023‘物联之星’中国物联网行业年度榜单”评选结果正式公布。厦门纵行信息科技有限公司(以下简称“纵行科技”)最终从500多家参评企业中脱颖而出&…

数据库-ODBC操作

一、ODBC 数据源配置 打开ODBC数据源管理器: 在Windows搜索栏中键入“ODBC数据源”并选择“ODBC数据源(64位)”(如果你的系统是64位的)。如果你的系统是32位的,你可以选择“ODBC数据源(32位)”。或者,你可以在控制面…

使用DockerFile构建Tomcat镜像

1、准备镜像文件tomcat压缩包,jdk的压缩包 tomcat链接:https://pan.baidu.com/s/1Xpecb-BSGR2sdxSL7FDtBw?pwd1234 提取码:1234 jdk链接:https://pan.baidu.com/s/1mQHInn27j1I9uuuicBsyAA?pwd1234 提取码:1234 …

网工学习 DHCP配置-接口模式

网工学习 DHCP配置-接口模式 学习DHCP总是看到,接口模式、全局模式、中继模式。理解起来也不困难,但是自己动手操作起来全是问号。跟着老师视频配置啥问题没有,自己组建网络环境配置就是不通,悲催。今天总结一下我学习接口模式的…

信息系统安全与对抗-作业2

目录 1、使用自己姓名拼音创建一个账户, 并使用命令和图形化查看 2、使用自己拼音打头字母创建一个隐藏账户 ,并使用命令和图形化查看 3、使用命令启动 telnet 服务 4、使用命令打开防火墙 23 端口 5、熟悉LINUX系统,使用命令行创建用户…

docker基线安全修复和容器逃逸修复

一、docker安全基线存在的问题和修复建议 1、将容器的根文件系统挂载为只读 修复建议: 添加“ --read-only”标志,以允许将容器的根文件系统挂载为只读。 可以将其与卷结合使用,以强制容器的过程仅写入要保留的位置。 可以使用命令&#x…

不同控制方式下的无人机二维码识别降落对比

无人机技术的快速发展正在推动众多行业的革新,从农业监测、灾害响应到城市规划和物流配送,无人机的应用前景无限广阔。随着应用场景的多样化,无人机精准降落成为一大挑战。基于PX4飞控固件和ROS系统的开源自主无人机平台Prometheus应运而生。…

【Linux】进程间通信之共享内存

文章目录 引入共享内存的原理共享内存的相关接口shmget()shmat()shmdt()shmctl() 共享内存的简单使用共享内存的特点 引入 进程间通信,顾名思义就是一个进程和另一个进程之间进行对话,以此完成数据传输、资源共享、通知事件或进程控制等。 众所周知&am…

Vscode安装,ssh插件与配置

原因 发现很多新人在练习linux,可是只有windows机的时候,一般都是下载虚拟机,然后在虚拟机上安装ubuntu等linux平台。每次需要在linux中写代码,就打开ubuntu,然后在终端上用vim写代码,或者先编辑代码文本&…

hook函数——useReducer

目录 1.useReducer定义2.useReducer用法3.useState和useReducer区别 1.useReducer定义 const [state, dispatch] useReducer(reducer, initialArg, init?) reducer:用于更新 state 的纯函数。参数为 state 和 action,返回值是更新后的 state。state …