OctoPrint is an open source 3D printer controller application, which provides a web interface for the connected printers. It displays printers' status and key parameters and allows user to schedule prints and remotely control the printer.
![]() Screenshot of Octoprint (Software) showing it's dashboard | |
Developer(s) | Gina Häußge |
---|---|
Initial release | 2012 |
Stable release | |
Repository | |
Written in | Python |
Operating system | Windows, macOS, Linux |
Available in | 7 languages |
List of languages English, German, French, Polish, Russian, Korean, Catalan | |
Type | 3D printer control application |
License | Free and open-source AGPL |
Website | octoprint![]() |
OctoPrint was created by Gina Häußge in 2012, [2] who initially developed the software to support her first 3D printer. OctoPrint [3] was forked from Cura, and is available under the same AGPL license. Development is hosted on GitHub. [3] Between August 2014 and April 2016, Spanish smartphone manufacturer BQ financially supported OctoPrint development by employing Gina Häußge full time to work on it. When BQ discontinued support in April 2016, Häußge turned to Patreon. [4] [5]
In September 2018, a vulnerability was publicized at the Internet Storm Center of SANS Institute because "thousands" of users misconfigured their OctoPrint interface so it was available to the Internet without a login. This could result in not only a loss of data (intellectual property of designs) and privacy (through a connected webcam), but literal fires from poorly designed 3D printer safety controls. [6] [7] [8] [9] [10] [11] [12] Solutions that still enable worldwide access to a printer include using a commercial cloud printing interface like AstroPrint, Polar Cloud, or 3DprinterOS as well as the OctoPrint Anywhere plugin or standard VPN installations. [13] [14]
Starting with OctoPrint version 1.4.0 released on March 4, 2020, OctoPrint is compatible with Python 3. [15] At the time of the release, most OctoPrint plugins were already compatible with Python 3.
As of August 2023, the OctoPrint Patreon campaign receives over $5,200 per month from over 1,900 backers. [16]
OctoPrint provides a web interface for controlling 3D printers, allowing the user to start a print job by sending G-code to a 3D printer connected via USB. OctoPrint monitors the status of the print job, as well as the printer itself, including the temperature of the print head (hot end) and the temperature of the bed, if the bed on the printer is heated. OctoPrint can also show the output of a connected webcam in order to monitor the state of the print, and can visualize the G-code in sync with the print job, or asynchronously.
OctoPrint has a plugin system, allowing users to extend functionality. As of June 2024, there are 395 plugins listed in the official plugin repository. [17]
It has also been used by Thomas Sanladerer in a PrintrBot as a self-contained and fully mobile printer build. [18] [19]
OctoPrint can run on a variety of systems, but is commonly run on Raspberry Pi. A distribution called OctoPi based on the Raspbian OS for Raspberry Pi, provides a pre-configured version of OctoPrint along with an mjpg-streamer support for webcams. [20]
OctoPrint recommends using the Raspberry Pi 3B, 3B+, 4B, or the Zero 2 and specifically warns against using the Raspberry Pi Zero W due to severe performance issues observed. [21]
In computer networking, a thin client, sometimes called slim client or lean client, is a simple (low-performance) computer that has been optimized for establishing a remote connection with a server-based computing environment. They are sometimes known as network computers, or in their simplest form as zero clients. The server does most of the work, which can include launching software programs, performing calculations, and storing data. This contrasts with a rich client or a conventional personal computer; the former is also intended for working in a client–server model but has significant local processing power, while the latter aims to perform its function mostly locally.
A webcam is a video camera which is designed to record or stream to a computer or computer network. They are primarily used in video telephony, live streaming and social media, and security. Webcams can be built-in computer hardware or peripheral devices, and are commonly connected to a device using USB or wireless protocols.
CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.
Lyrion Music Server is a streaming audio server supported by the LMS community and formerly supported by Logitech, developed in particular to support their Squeezebox range of digital audio receivers.
In computing a virtual printer is a simulated device whose user interface and API resemble that of a printer driver, but which is not connected to a physical computer printer.
Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. The Raspberry Pi project originally leaned toward the promotion of teaching basic computer science in schools. The original model became more popular than anticipated, selling outside its target market for diverse uses such as robotics, home and industrial automation, and by computer and electronic hobbyists, because of its low cost, modularity, open design, and its adoption of the HDMI and USB standards.
Leafpad is a free and open-source graphical text editor for Linux, Berkeley Software Distribution (BSD), and Maemo that is similar to the Microsoft Windows program Notepad. Created with the focus of being a lightweight text editor with minimal dependencies, it is designed to be simple-to-use and easy-to-compile.
RetroArch is a free and open-source, cross-platform frontend for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and without dependencies. It is licensed under the GNU GPLv3.
Pluma is a fork of gedit 2 and the default text editor of the MATE desktop environment used in Linux distributions. It extends the basic functionality with other features and plugins.
AstroPrint is a cloud platform and application marketplace designed for consumer 3D printing by 3DaGoGo Inc., a private San Diego-based technology company.
Concerto is a web-based digital signage application licensed under the Apache License and written using the Ruby on Rails programming framework. It rotates uploaded graphical, textual, and video content through a template that is accessed by computers running a web browser.
MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.
The Prusa i3 is a family of fused deposition modeling 3D printers, manufactured by Czech company Prusa Research under the trademarked name Original Prusa i3. Part of the RepRap project, Prusa i3 printers were called the most used 3D printer in the world in 2016. The first Prusa i3 was designed by Josef Průša in 2012, and was released as a commercial kit product in 2015. The latest model is available in both kit and factory assembled versions. The Prusa i3's comparable low cost and ease of construction and modification made it popular in education and with hobbyists and professionals, with the Prusa i3 model MK2 printer receiving several awards in 2016.
Cura is an open source slicing application for 3D printers. It was created by David Braam who was later employed by Ultimaker, a 3D printer manufacturing company, to maintain the software. Cura is available under LGPLv3 license. Cura was initially released under the open source Affero General Public License version 3, but on 28 September 2017 the license was changed to LGPLv3. This change allowed for more integration with third-party CAD applications. Development is hosted on GitHub. Ultimaker Cura is used by over one million users worldwide and handles 1.4 million print jobs per week. It is the preferred 3D printing software for Ultimaker 3D printers, but it can be used with other printers as well.
Art of Illusion is a free software, and open source software package for making 3D graphics.
Marlin is open source firmware originally designed for RepRap project FDM 3D printers using the Arduino platform.
LÖVE is a free, open-source, cross-platform framework released under the zlib license for developing video games. The framework is written in C++ and uses Lua as its scripting language and is still maintained by its original developers. The framework is cross-platform supporting the platforms Microsoft Windows, macOS, Linux, Android, and iOS.
The Prusa Mini, stylized as the Original Prusa MINI, is an open-source fused deposition modeling 3D printer that is manufactured by the Czech company Prusa Research. The printer is the lowest cost machine produced by Prusa Research and is designed as a first printer or as part of a 'print farm'.
Home Assistant is free and open-source software for home automation, designed to be an Internet of things (IoT) ecosystem-independent integration platform and smart home hub for controlling smart home devices, with a focus on local control and privacy. Its interface can be accessed through a web-based user interface, by using companion apps for Android and iOS, or by voice commands via a supported virtual assistant, such as Google Assistant, Amazon Alexa, Apple Siri, and Home Assistant's own "Assist" using natural language.
The Polar Cloud is an American software platform for 3D printers that is owned and operated by Polar3D, LLC. The platform was launched in March 2017 and is now home to over 500,000 users in 160 countries. The platform is home to several programs and initiatives, including the Boys & Girls Club of America, GE's Additive Education Program, and a recent COVID-19 Mask Making effort.
Gina Häußge is the founder and main developer of OctoPrint.
Most of you probably know that OctoPrint's development has been heavily sponsored by BQ since August 2014, mostly by employing me (Gina Häußge) full time for working on it. ... If you love OctoPrint and believe in its potential and my skills to get it there, please consider supporting me on Patreon. ... TLDR Please support me on Patreon.
This is the case right now for OctoPrint, who has apparently lost their sponsor, BQ, and is taking to Patreon for support in what is a bit of an emergency funding situation or we may lose this startup to current lack of capital. According to word on the street—or, today that would be on Reddit—those who are fans of the 'snappy web interface' for their 3D printers put the word out leading us to a social media announcement from founder Gina Häußge. There is undeniable concern for the future of what is currently quite a popular source of 3D printing host software.
This is a problem caused by bad configuration and not the OctoPrint software, which clearly warns against enabling access without access control. Any owner exposing their printer to the internet without this must have chosen to do so.
It's super convenient, but the ISC has discovered at least 3,759 instances in which users have deliberately set up their 3D printers to be accessible via the internet without the need for authentication (i.e. logging in with a username and password).
"These printers are controlled using the open source software package 'OctoPrint' but it's likely there are other tools that are similarly affected. OctoPrint is not meant to be exposed in this way, and it explains in its documentation how to deploy the software in a safe way," Mertens explained.
They are thousands of Octoprint instances accessible without any authentication reported by Shodan:
Responding to the ISC, OctoPrint has re-iterated the importance of proper configuration. And while the startup wizard for OctoPrint actively warns against allowing unauthenticated access, some users may have disregarded this.
Putting OctoPrint onto the public internet is a terrible idea, and I really can't emphasize that enough. Let's think about this for a moment, or two, or even three. OctoPrint is connected to a printer, complete with motors and heaters. If some hacker somewhere wanted to do some damage, they could.
Earlier this month, security experts found a way to use OctoPrint to take print files off printers remotely or replace them with compromised files. An enterprising reporter even managed to do this inside two corporations that they left unnamed. Granted, these breaches stem from an unintended use case for OctoPrint
But how do you use AstroPrint Cloud with OctoPrint? It turns out they've made a plug-in for OctoPrint that is installable by the touch of a button. Once done, your OctoPrint installation is then connected to the AstroPrint cloud and you can then use their mobile app to remotely control your 3D printer, for example. But you can also bring forward all their other functionality, which is considerable.
In a brilliant article on OctoPrint.org, contributor Jubaleth describes how many OctoPrint installations are actually publicly exposed to anyone by improper methods of Internet connection. Typically an uninformed operator might simply forward the OctoPrint ports through their network router to the public Internet.
1,981 members 461 posts $5,243/month
The system is built with a Raspberry Pi inside and has WiFi access. The converted Printrbot has no LCD screen, and is operated via a mobile phone using OctoPrint, a web interface for 3D printers. Sanladerer filmed the whole reconstruction process and uploaded it to YouTube.
Such tinkering includes running the batteries into a DC boost converter which enables the voltage to reach the required 12V for the printer to work. A DC regulator will also be used to bring the voltage to 5V to run the Raspberry Pi which in turn runs OctoPrint.