Learning and background knowledge

Greetings!

I’m a beginning farmer (just got out of the military) and I’ve been thinking about using farmOS for my permaculture farm.

(1) I’d love to have an off-grid, internet-limited, or internet optional solution with farmOS. Does this align with the direction of the project? If so, what are the top constraints to getting there?

(2) Hypothetically, if I wanted to really dig deeply into this project and software over the years, what skills, programming languages, and/or knowledge would I need or want to learn or bring to the community table to maximize farmOS’ success?

I have a a good deal of free time coming up, and I’d love to know how to direct my independent studies to enable me to contribute and eventually host farmOS without being concerned about monthly fees.

What should I study? Thanks!

2 Likes

I figured I should do some research yesterday, first. My understanding is, that in order to host on my own, or help with the project, it helps to know the following:

  • Drupal
  • Git / GitHub
  • Docker / Docker Compose / Docker Hub
  • Command line / basic computer programming ability
  • Web serving
  • Apache
  • Databases / MySQL
  • HTTP
  • HTML
  • PHP
  • CSS
  • FTP

And for basic support of the project, simply use it, know it, and share ideas or concerns. Or use the Open Collective website for financial support.

Phew! What did I miss?

1 Like

Hi @Kilt - welcome to the farmOS community!

(1) I’d love to have an off-grid, internet-limited, or internet optional solution with farmOS. Does this align with the direction of the project? If so, what are the top constraints to getting there?

Yes! Offline local deployment of farmOS has always been a goal. There are a few considerations to this right now, but we aren’t far from being able to host it 100% offline. Just need someone to push that goal over the finish line. :slight_smile:

I summarized the current constraints a while back in this comment: https://github.com/farmOS/farmOS/issues/37#issuecomment-315380861

You’ll notice that @jgaehring joined that discussion shortly after - and that’s how he got started contributing to farmOS! Now he’s the maintainer of the farmOS Field Kit, which is an offline-first native/progressive web app. As farmOS matures, I hope to see more of the frontend UI features move into this client-side app (see this relevant issue: https://github.com/farmOS/farmOS-client/issues/217), so that they can be utilized on your phone in the field without network connection. The app “syncs” records back to the farmOS server when it has a connection - and this can certainly be configured to work over wifi without internet at all (although more testing is probably needed).

Hypothetically, if I wanted to really dig deeply into this project and software over the years, what skills , programming languages , and/or knowledge would I need or want to learn or bring to the community table to maximize farmOS’ success?

Once the “Field Modules” idea described in the linked issue above solidifies, JavaScript would be the main language for writing new farmOS UI features. Our hope is that this will open it up to a larger audience of developer and tinkerers. Of course, if you want to do more advanced stuff that involves changes to the farmOS server/API, then knowledge of Drupal will be required.

As for hosting, if you learn a bit about running Docker containers, then you can host farmOS yourself without needing to learn much at all about Apache, PHP, Drupal, SQL, or other server-side pieces. We have a nice encapsulated Docker image that packages all of the dependencies, so you just run that, and you’ve got a self-hosted farmOS! Of course, Docker itself is a bit of a learning curve, and understanding the other pieces helps greatly in debugging things, but it might be a good place to start.

More info about hosting a development farmOS environment here: https://farmos.org/development/docker/

And there’s some info about hosting a production farmOS here (although it could really use more details, especially with regard to database hosting, which is technically separate from the farmOS web container): https://farmos.org/hosting/docker/

If you’re just getting started in the open source world, I can’t recommend highly enough learning Git and Docker. They will open a lot of doors.

Phew long reply! Hope that gets you started - happy to answer more questions in the future as they come up! And again, welcome to the community! :+1: :seedling: