Go to file
Rick Carlino 2caa1684d6
Variables phase II, part I (#954)
* re-enable type checker 4 realz
* Update celery script `execute` node to accept nested variable declarations
* Disable test button on parameterized sequences (for now)
* Fix unnoticed NPE
* Add `deep-cover` for greater coverage accuracy
* Spec for bad variable assignment
2018-08-09 18:31:22 -05:00
app Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
bin Add more fields, validations to image and start writing model tests. 2017-01-11 09:27:06 -06:00
config Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
db Add indexes for logs#Search endpoint 2018-07-27 10:38:44 -05:00
lib Works. Want to try `next_wait` instead of `all_waits`. 2018-08-02 14:52:12 -05:00
mqtt Fix cache issue 2018-07-06 08:10:44 -05:00
public 1 2018-08-03 19:19:13 +03:00
spec Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
typings Type fixes 2018-07-27 12:48:59 -05:00
webpack Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
.buildpacks use heroku-postbuild 2016-09-22 11:17:12 -05:00
.codebeatignore Remove logger; ignore entrypoint files; call maybeRunLocalstorageMigration(); 2018-01-10 09:27:06 -06:00
.codeclimate.yml Exclude db/ folder from code quality metrics 2018-03-07 09:14:20 -06:00
.coveralls.yml Add coveralls repo token 2017-07-20 11:16:18 -05:00
.gitignore Formatting 2018-07-24 18:28:33 -05:00
.ruby-gemset rename application from `dss` to `farmbot` 2015-03-09 05:31:05 -05:00
.ruby-version Gem upgrades 2018-04-12 15:02:51 -05:00
.travis.yml Add specs 2018-06-23 06:23:43 -05:00
CONTRIBUTING.md Update the CLA link again 2018-03-23 18:06:57 -07:00
DEPLOYMENT.md Remove Dokku references. 2018-06-04 10:41:51 -05:00
Gemfile Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
Gemfile.lock Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
ISSUE_TEMPLATE Update Self Hosted Docs. Closes #868 2018-05-27 13:41:18 -05:00
LICENSE Move stuff into root 2017-06-29 16:06:19 -05:00
Procfile Cascade changes to virtual fields such as "in_use". (#950) 2018-08-06 11:20:46 -05:00
Procfile.api_only Mega unstable super experimental rabbit_worker idea. Trying on staging. 2018-08-02 11:48:46 -05:00
Procfile.dev Cascade changes to virtual fields such as "in_use". (#950) 2018-08-06 11:20:46 -05:00
README.md Bug Fixes, Docs, Refactorings (#881) 2018-06-09 11:58:01 -05:00
Rakefile Cruft removal, part I 2015-10-20 13:03:42 -05:00
api_docs.md.erb .success? => successful? (Rails 6 deprecation warning) 2018-06-26 14:20:20 -05:00
auto_upgrade.rb Diagnostic Dumps - RC 1 (#889) 2018-06-18 16:12:00 -05:00
batch_updates.md Change segment order for batch resource topics 2018-07-30 16:49:14 -05:00
config.ru Added foundation and high voltage. Readme updates, too. 2014-03-31 06:31:38 -07:00
latest_corpus.rb Fix corpus generator 2018-07-20 16:03:53 -05:00
package.json Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00
tsconfig.json [FOUND BUG] Re-enable `noUnusedParamters` 2018-03-13 17:37:24 -05:00
tslint.json Update TSLint file 2017-08-27 18:48:07 -05:00
ubuntu_example.sh Doc updates 2018-06-04 10:36:16 -05:00
yarn.lock Variables phase II, part I (#954) 2018-08-09 18:31:22 -05:00

README.md

FarmBot Web App

codebeat badge codecov Coverage Status Maintainability

Q: Do I need this?

This repository is intended for software developers who wish to modify the Farmbot Web App. If you are not a developer, you are highly encouraged to use the publicly available web app. Running a server is a non-trivial task with security implications. It requires an intermediate background in Ruby, SQL and Linux system administration.

If you are a developer interested in contributing or would like to provision your own server, you are in the right place.

We do not have the resources available to help novice developers learn to setup servers, environments, configurations, or perform basic Linux command line instructions.

If you raise an issue indicating that you haven't followed the setup instructions, looked through past issues, or done a cursory internet search for basic help, expect the issue to be closed and we'll point you to the setup instructions. Again, if you do not have at least intermediate Linux and Ruby experience, please use the hosted version of the web app at my.farm.bot.

Q: Where do I report security issues?

We take security seriously and value the input of independent researchers. Please see our responsible disclosure guidelines.

Q: What is the Farmbot Web App?

This repo contains FarmBot's web based user interface, a RESTful JSON API and a Dockerized MQTT server. The API stores data such as user account information, plant data, authorization tokens and a variety of other resources. The MQTT server facilitates realtime messaging from the browser to the device.

Q: Can I see some example API requests?

For a list of example API requests and responses, see our reference documentation. If you wish to write an add-on application that uses the FarmBot API, please let us know in an issue. We are happy to answer any specific questions you may have.

Q: How do I Setup an instance locally?

We provide example setup instructions for Ubuntu 18 here.

Installation was last tested against Ubuntu 18.04 in June of 2018 on an x86 based machine.

Our ability to help individual users with private setup is limited. Using the public server at http://my.farm.bot is the recommended setup for end users. Please see the top of this document for more information.

Config Settings (important)

We try our best to follow the 12 Factor Methodology. Part of that means using ENV variables as a means of storing configuration. Your server won't run without setting ENV variables first.

You can accomplish this by setting the ENV variables directly from your shell / server management tool or by writing an application.yml file.

See config/application.example.yml for a list of all the variables that must be set.

Encryption keys: Encryption keys will be auto-generated if not present. They can be reset using rake keys:generate. If ENV['RSA_KEY'] is set, it will be used in place of the *.pem files. Useful for environments like Heroku, where file system access is not allowed.

Want to Help?

Low Hanging Fruit. Raise an issue if you have any questions.

Translating the web app into your language

Thanks for your interest in internationalizing the FarmBot web app! To add translations:

  1. Fork this repo
  2. Navigate to /public/app-resources/languages and run the command node _helper.js yy where yy is your language's language code. Eg: ru for Russian.
  3. Edit the translations in the file created in the previous step: "phrase": "translated phrase".
  4. When you have updated or added new translations, commit/push your changes and submit a pull request.