# OctoPrint

OctoPrint ist ein Open-Source-Projekt zur web-basierten Steuerung handelsüblicher 3D-Drucker. Es wurde von Gina Häußge 2012 als Cura-Fork begonnen und wird seitdem von ihr betreut. Von 2014 bis 2016 wurde die Entwicklung durch den Unterhaltungselektronik-Hersteller BQ finanziert, bei dem Häußge bis 2016 arbeitete. Im April 2016 wandte sie sich in einem Blogposting an ihre Community und bat um die Unterstützung ihres Projektes über die Spendenplattform Patreon; seitdem wird das Projekt durch monatliche Spenden von mehr als 2300 Unterstützern finanziert. Mit Stand Januar 2022 werden monatlich etwa 6000 € gespendet.

## Funktionsweise

OctoPrint kann entweder manuell auf einem Computer installiert oder mit dem OctoPi-Image auf einem Raspberry Pi eingerichtet werden. Nach der Installation startet OctoPrint einen lokalen Webserver und ermöglicht die Steuerung eines z. B. per USB angeschlossenen 3D-Druckers über ein Webinterface.
Neben der automatisierten Übertragung von G-Code bietet OctoPrint Möglichkeiten zur manuellen Steuerung und Überwachung des 3D-Druckers. Zudem kann eine Webcam eingebunden werden, um ein Livebild vom Drucker zu erhalten und beispielsweise Zeitrafferaufnahmen zu erstellen. Octoprint bietet umfangreiche Einstellungsmöglichkeiten und ermöglicht das Anlegen von Profilen und Nutzern.
Durch Plugins, beispielsweise aus dem offiziellen Plugin Repository, kann die Funktionsweise von OctoPrint erweitert werden.

## Kompatibilität

OctoPrint wurde mit einer Vielzahl an 3D-Druckern getestet. Laut Nutzerstatistik werden derzeit Drucker der Marke Creality 3D am häufigsten verwendet – dicht gefolgt von Druckern des Herstellers Prusa, wie dem beliebten i3. Während äußerst selten Kompatibilitätsprobleme bei 3D-Druckern mit einer unveränderten Open-Source Firmware wie Marlin auftreten, ist die Verbindung mit vielen 3D-Druckern, die proprietäre Protokolle einsetzen (beispielsweise der Makerbot Gen 5) meist nicht möglich.
Die Software verfügt über eine REST API Schnittstelle und ermöglicht so die Steuerung durch andere Applikationen, beispielsweise durch eine Android-App oder eine Smartwatch. MyMiniFactory, ein Anbieter von Modellen für den 3D-Druck, bietet seinen Nutzern seit November 2018 ein Plugin für OctoPrint an, mit welchem die Nutzer Modelle der Webseite direkt an eine OctoPrint Instanz schicken können. Das Slicing übernimmt hierbei MyMiniFactory, das Feature wird als „Click & Print“ bezeichnet. Auch die Integration in verschiedene Heimautomatisierungssoftwares wie z. B. ioBroker ist mittels eines Plugins möglich.

## Sicherheitsrisiken

Im September 2018 berichtete das Internet Storm Center (ISC) des SANS-Institutes, dass zahlreiche OctoPrint-Instanzen ohne Authentifizierung öffentlich über das Internet erreichbar sind. Insgesamt wurden 3759 frei zugängliche Instanzen registriert, 357 dieser Instanzen befanden sich nach Angaben des ISC in Deutschland. Die öffentlich zugänglichen Instanzen sind problematisch, da Fremde die angeschlossenen 3D-Drucker steuern, auf eine angeschlossene Webcam zugreifen oder die gedruckten Dateien herunterladen könnten. Gegebenenfalls ist es möglich, die Firmware von angeschlossenen 3D-Druckern zu manipulieren.
Das Projekt reagierte mit einem Blogposting, welcher vor Portweiterleitung – welche die Instanz i. d. R. öffentlich zugänglich macht – warnte. Stattdessen wird empfohlen, einen Zugang über spezielle Plugins oder einer gesicherten Verbindung (z. B. VPN) einzurichten.
OctoPrint verfügt über ein Zugriffsmanagement, welches in der Standardkonfiguration nur angemeldeten und autorisierten Nutzern den Zugriff auf den Drucker, hochgeladene Dateien und die Webcam-Ansicht innerhalb OctoPrints ermöglicht.