User:Djwa319/sandbox

OctoFarm is a self-hosted service to manage multiple instances of OctoPrint. The project has been available since the beta release on March 12th, 2020. The service's name is derived from the "3d Printer Farm" use case of managing multiple printers simultaneously, as well as the the OctoPrint system used to control each individual printer.

Project History
The OctoFarm project has been publicly available for use and development since the beta version v1.1.0 was released on GitHub on March 12th, 2020. The open source software project was created by software developer James Mackay, who goes by handle NotExpectedYet on GitHub.

Required Resources
OctoFarm requires a server to run the service, as it is self-hosted, as well as at least one printer running OctoPrint.

The "server" running OctoFarm can take many forms. It is not a particularly resource-heavy program, but it is built on the back of the MongoDB database, which requires a 64-bit operating system. OctoFarm is recommended to be run on a small form factor desktop computer at a minimum, but it is possible to run on a Raspberry Pi as long as it is running a 64-bit operating system. If a Raspberry Pi is to be used to run OctoFarm, it is still recommended to use a separate Raspberry Pi from the one that is running OctoPrint on the printer.

OctoFarm is a tool to consolidate OctoPrint instances, so at least one instance of OctoPrint is required to receive printer data through OctoFarm. If only one instance is used, OctoFarm will track filament data and record uptime, but the benefits increase significantly once a second printer is added. Functionality increases further once Webcams are added to the OctoPrint instances because this allows the user to monitor all printers remotely.

Printer Database
The primary feature of OctoFarm is to consolidate multiple instances of Octoprint to give a 3d printer user a complete picture of all printers on the network. Jumping between many windows of OctoPrint can be difficult in larger 3d printer farms, so OctoFarm attempts to streamline the management of many printers. OctoFarm's "Printer Panel" tab shows a customizable list of all printers, webcam views, printer status, estimated time to completion, and other metrics all from a singular page. The printer panel also allows for files to be uploaded and prints to be started directly from the panel view. Because all printer statuses are stored on the same page, it is easy to select an open printer to start a job on, as well as determine which printers will free up next.

Filament Manager
OctoFarm provides a "filament manager" tool to track filament consumption, inventory, and cost. Users have the opportunity to use granularity up to tracking each individual spool, just sorting by color, or by manufacturer and type. The filament manager also has the ability to customize print settings automatically based on the particular filament profile. The adjustable parameters include nozzle and bed temperature, as well as nozzle height offset.

Additional Features
OctoFarm has many supplementary features beyond printer management and control. It has a full resource monitor for the server to ensure that the server can adequately handle the workload, which can fluctuate as printer count increases. There is also a user manager feature to give different permissions to different users. This is beneficial in larger scale operations where user control is required.

OctoFarm also integrates with a growing list of OctoPrint Expansions to improve the level of control offered from the printer hosting service at a print farm scale.