/OctoFarm

OctoFarm is an web server and client combination for unifying multiple instances of Octoprint. You can manage and monitor as many instances as you want from a single interface giving you full control over your 3D printer farm.

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

GitHub issues GitHub forks GitHub stars GitHub license

Current Feature Requests

Please visit Octofarm's Features Page to log a request.

Version 1.1.6


Logo

OctoFarm

OctoFarm is an easy to setup and install web server and client for unifying multiple instances of Octoprint. You can manage and monitor as many instances as you want from a single interface giving you full control over your 3D printer farm.
Explore the docs »

OctoFarm Bug · Request Feature

Table of Contents

About The Project

OctoFarm was built to fill a need that anyone with multiple 3D printers with Octoprint will have run into. How do I manage multiple printers from one place? That's where OctoFarm steps in, add your OctoPrint instances to the system and it will scan and keep you up to date on the status of your printers. Dashboard View

Getting Started

To get a local copy up and running follow these simple steps.

OctoPrint 1.4.1+

Currently there are issues with using the Global API Key to connect to these instances of OctoPrint. Please use the first user you setup on OctoPrint and a generated Application / User API key from this user to connect. I will be updating OctoFarm to work better with all permission sets eventually but for now this will allow a connection to be established.

Platform

Confirmed working on: Linux (Ubuntu, Debian), RaspberryPi (Rasbian), Windows 10. Should also work on but not tested: MacOS, anything else nodejs will run on.

Note: Raspberry Pi's Raspbian OS doesn't officially support running MongoDB yet (MongoDB requires a 64bit kernel, whereas Raspbian's is 32bit), so in that case, you'll need an external database running on some other machine or VM.

Supported Browsers

All browsers should now be supported in OctoFarm. Please log an issue if this is not the case.

Prerequisites

On your OctoPrint instance

  • User Name -> User Settings
  • Copy the API Key some place easy to get to
  • Enabled the "Allow Cross Origin Resource Sharing (CORS)
  • Restart OctoPrint
  • Repeat for all OctoPrints that will be added to the Farm

#See The WIKI for more detailed instructions than what's available below

Installation

All user documentation is now moving to OctoFarm.net. Development documentation below.

https://octofarm.net

Installation Development

  1. Clone the OctoFarm
git clone https://github.com/NotExpectedYet/OctoFarm.git
  1. Install NPM packages
npm install
  1. Edit the /config/db.js file with your database.
module.exports = {
  MongoURI: "mongodb://192.168.1.5:27017/octofarm"
};
//Example Local URL: "mongodb://192.168.1.5:27017/octofarm"
//Example Remote URL: "mongodb+srv://s1mpleman:<YOUR PASSWORD>@cluster0-lgugu.mongodb.net/test?retryWrites=true&w=majority"
  1. Install nodemon
npm install --save-dev nodemon
  1. Start the system
npm run dev
  • The developer version uses nodemon for live server reloading on changes. It will output all the logs to the console.
  • The developer version will skip some basic sanity checks, if your pages don't load right after server boot then it's because those sanity checks haven't finished.

Packaged Versions

These are planned but not available yet...

Contributing

I am currently not accepting any contribution to the code. I started this project to teach myself nodejs and Javascript better. With my current plans I will have exhausted most learning opportunities by Version 1.2 and will be happy to take pull requests from people then. Thanks for understanding.

License

Distributed under GNU Affero General Public License v3.0. See LICENSE for more information.

Contact

Acknowledgements

  • Gina Häußge - Without OctoPrint none of this would be possible. Massive thanks to the work of Gina and everyone who helps out with that.
  • Derek from 3D Printed Debris - Massive big thanks to Derek who has donated a lot of time and money to the project. I don't think I'd have continued at the rate I did without his bug reports and support.
  • All Patreon Supporters and random donations! - Big massive thanks for these, they keep me full of steak!
  • The users calonmer, Insertion and noxin from my discord server! Seriously no end to my thanks for these 3.
  • JetBrains IDE - Thanks to JebBrains for allowing a free license to use with developing my application. Their IDE is top notch!