Main configuration: config.yaml#
If not specified via the command line, the main configuration file config.yaml
for
OctoPrint is expected in its settings folder, which unless defined differently via the
command line is located at ~/.octoprint
on Linux, at %APPDATA%/OctoPrint
on Windows
and at ~/Library/Application Support/OctoPrint
on macOS. If the file is not there, you
can just create it - it will only get created by OctoPrint once you save settings that
deviate from the default settings.
Note that many of these settings are available from the Settings in OctoPrint itself. They can also be configured via config command line interface.
The configuration is a YAML file with a top-level dictionary. The keys of this dictionary are as follows:
accessControl:
# ...
api:
# ...
appearance:
# ...
controls:
# ...
devel:
# ...
estimation:
# ...
events:
# ...
feature:
# ...
folder:
# ...
gcodeAnalysis:
# ...
plugins:
# ...
printerParameters:
# ...
printerProfiles:
# ...
scripts:
# ...
serial:
# ...
server:
# ...
slicing:
# ...
system:
# ...
temperature:
# ...
terminalFilters:
# ...
webcam:
# ...
Their content is described in the following sections.
accessControl#
Defaults#
accessControl:
salt:
userManager: octoprint.access.users.FilebasedUserManager
groupManager: octoprint.access.groups.FilebasedGroupManager
permissionManager: octoprint.access.permissions.PermissionManager
userfile:
groupfile:
autologinLocal: false
localNetworks:
- 127.0.0.0/8
- ::1/128
autologinAs:
trustBasicAuthentication: false
checkBasicAuthenticationPassword: true
trustRemoteUser: false
remoteUserHeader: REMOTE_USER
addRemoteUsers: false
Data model#
Name | Type | Description | Default |
---|---|---|---|
salt |
Optional[str] |
Secret salt used for password hashing. DO NOT TOUCH! If changed you will no longer be able to log in with your existing accounts. Default unset, generated on first run. | unset |
userManager |
str |
The user manager implementation to use for accessing user information. Currently only a filebased user manager is implemented which stores configured accounts in a YAML file (Default: users.yaml in the default configuration folder). |
'octoprint.access.users.FilebasedUserManager' |
groupManager |
str |
The group manager implementation to use for accessing group information. Currently only a filebased user manager is implemented which stores configured groups in a YAML file (Default: groups.yaml in the default configuration folder). |
'octoprint.access.groups.FilebasedGroupManager' |
permissionManager |
str |
The permission manager implementation to use. | 'octoprint.access.permissions.PermissionManager' |
userfile |
Optional[str] |
The YAML user file to use. If left out defaults to users.yaml in the default configuration folder. |
unset |
groupfile |
Optional[str] |
The YAML group file to use. If left out defaults to groups.yaml in the default configuration folder. |
unset |
autologinLocal |
bool |
If set to true, will automatically log on clients originating from any of the networks defined in localNetworks as the user defined in autologinAs . |
False |
localNetworks |
List[str] |
A list of networks or IPs for which an automatic logon as the user defined in autologinAs will take place. If available OctoPrint will evaluate the X-Forwarded-For HTTP header for determining the client's IP address. Defaults to anything originating from localhost. |
['127.0.0.0/8', '::1/128'] |
autologinAs |
Optional[str] |
The name of the user to automatically log on clients originating from localNetworks as. Must be the name of one of your configured users. |
unset |
trustBasicAuthentication |
bool |
Whether to trust Basic Authentication headers. If you have setup Basic Authentication in front of OctoPrint and the user names you use there match OctoPrint accounts, by setting this to true users will be logged into OctoPrint as the user user during Basic Authentication. ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through Basic Authentication! | False |
checkBasicAuthenticationPassword |
bool |
Whether to also check the password provided through Basic Authentication, if the Basic Authentication header is to be trusted. Disabling this will only match the user name in the Basic Authentication header and login the user without further checks, thus disable with caution. | True |
trustRemoteUser |
bool |
Whether to trust remote user headers. If you have setup authentication in front of OctoPrint and the user names you use there match OctoPrint accounts, by setting this to true users will be logged into OctoPrint as the user provided in the header. ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through an authenticating reverse proxy! | False |
remoteUserHeader |
str |
Header used by the reverse proxy to convey the authenticated user. | 'REMOTE_USER' |
addRemoteUsers |
bool |
If a remote user is not found, add them. Use this only if all users from the remote system can use OctoPrint. | False |
api#
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
key |
Optional[str] |
Global API key, deprecated, use User API keys instead. Unset by default, will be generated on first run. | unset |
apps |
Dict[str, str] |
{} |
|
allowCrossOrigin |
bool |
Whether to allow cross origin access to the API or not. | False |
appearance#
Using the appearance
settings you can tweak OctoPrint's appearance a bit to better
distinguish multiple instances/printers appearance or to modify the order and presence
of the various UI components
Defaults#
appearance:
name: ''
color: default
colorTransparent: false
colorIcon: true
defaultLanguage: _default
showFahrenheitAlso: false
fuzzyTimes: true
closeModalsWithClick: true
showInternalFilename: true
components:
order:
navbar:
- settings
- systemmenu
- plugin_announcements
- plugin_logging_seriallog
- plugin_logging_plugintimingslog
- plugin_pi_support
- login
sidebar:
- plugin_firmware_check_warning
- plugin_firmware_check_info
- connection
- state
- files
tab:
- temperature
- control
- plugin_gcodeviewer
- terminal
- timelapse
settings:
- section_printer
- serial
- printerprofiles
- temperatures
- terminalfilters
- gcodescripts
- section_features
- features
- webcam
- accesscontrol
- plugin_gcodeviewer
- api
- plugin_appkeys
- section_octoprint
- server
- folders
- appearance
- plugin_logging
- plugin_pluginmanager
- plugin_softwareupdate
- plugin_announcements
- plugin_eventmanager
- plugin_backup
- plugin_tracking
- plugin_errortracking
- plugin_pi_support
usersettings:
- access
- interface
wizard:
- plugin_softwareupdate_update
- plugin_backup
- plugin_corewizard_acl
- plugin_corewizard_onlinecheck
about:
- about
- plugin_pi_support
- supporters
- authors
- changelog
- license
- thirdparty
- plugin_pluginmanager
generic: []
disabled:
navbar: []
sidebar: []
tab: []
settings: []
usersettings: []
wizard: []
about: []
generic: []
Data model#
Name | Type | Description | Default |
---|---|---|---|
name |
str |
Use this to give your OctoPrint instance a name. It will be displayed in the title bar (as " |
'' |
color |
str |
Use this to color the navigation bar. Valid values: blue , default , green , orange , red , violet , yellow . |
'default' |
colorTransparent |
bool |
Makes the color of the navigation bar "transparent". In case your printer uses acrylic for its frame 😉. | False |
colorIcon |
bool |
True |
|
defaultLanguage |
str |
Default language of OctoPrint. If left unset OctoPrint will try to match up available languages with the user's browser settings. | '_default' |
showFahrenheitAlso |
bool |
False |
|
fuzzyTimes |
bool |
True |
|
closeModalsWithClick |
bool |
True |
|
showInternalFilename |
bool |
Show the internal filename in the files sidebar, if necessary. | True |
components.* |
Configures the order and availability of the UI components. | ||
components.order.* |
Defines the order of the components within their respective containers. | ||
components.order.navbar |
List[str] |
Order of navbar items. | ['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'login'] |
components.order.sidebar |
List[str] |
Order of sidebar items. | ['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'] |
components.order.tab |
List[str] |
Order of tabs. | ['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'] |
components.order.settings |
List[str] |
Order of settings. | ['section_printer', 'serial', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'] |
components.order.usersettings |
List[str] |
Order of user settings. | ['access', 'interface'] |
components.order.wizard |
List[str] |
Order of wizards. | ['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'] |
components.order.about |
List[str] |
Order of about dialog items. | ['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager'] |
components.order.generic |
List[str] |
Order of generic items. | [] |
components.disabled.* |
Disabled components per container. If a component is included here it will not be included in OctoPrint's UI at all. Note that this might mean that critical functionality will not be available if no replacement is registered. | ||
components.disabled.navbar |
List[str] |
Disabled navbar items. | [] |
components.disabled.sidebar |
List[str] |
Disabled sidebar items. | [] |
components.disabled.tab |
List[str] |
Disabled tabs. | [] |
components.disabled.settings |
List[str] |
Disabled settings. | [] |
components.disabled.usersettings |
List[str] |
Disabled user settings. | [] |
components.disabled.wizard |
List[str] |
Disabled wizards. | [] |
components.disabled.about |
List[str] |
Disabled about dialog items. | [] |
components.disabled.generic |
List[str] |
Disabled generic items. | [] |
Hint
By modifying the components.order
lists you may reorder OctoPrint's UI components
as you like. You can also inject Plugins at another than their default location in
their respective container by adding the entry plugin_<plugin identifier>
where
you want them to appear.
When you override this setting, the resulting order for display will be calculated as follows:
- first all components as defined by the
components.order
list - then all enabled core components as defined in the default order
Components not contained within the default order (e.g. from third party plugins) will be either prepended or appended to that result, depending on the component type.
Example: If you want the tab of the Hello World Plugin to appear as the first tab
in OctoPrint, you'd need to redefine components.order.tab
by including something
like this in your config.yaml
:
OctoPrint will then display the Hello World tab first, followed by the default tabs and then any other not explicitely ordered tabs.
controls#
Use the controls
section to add custom controls to the "Controls" tab within
OctoPrint.
Defaults#
Data model#
controls
is a list, with each entry in the list being a dictionary describing either a
control or a container.
Control model#
Name | Type | Description | Default |
---|---|---|---|
name |
str |
The name of the control, will be displayed either on the button if it's a control sending a command or as a label for controls which only display output. | required |
command |
Optional[str] |
A single GCODE command to send to the printer. Will be rendered as a button which sends the command to the printer upon click. The button text will be the value of the name attribute. Mutually exclusive with commands and script . The rendered button be disabled if the printer is currently offline or printing or alternatively if the requirements defined via the enabled attribute are not met. |
unset |
commands |
Optional[List[str]] |
A list of GCODE commands to send to the printer. Will be rendered as a button which sends the commands to the printer upon click. The button text will be the value of the name attribute. Mutually exclusive with command and script . The rendered button will be disabled if the printer is currently offline or printing or alternatively if the requirements defined via the enabled attribute are not met. |
unset |
script |
Optional[str] |
The name of a full blown GCODE script to send to the printer. Will be rendered as a button which sends the script to the printer upon click. The button text will be the value of the name attribute. Mutually exclusive with command and commands . The rendered button will be disabled if the printer is currently offline or printing or alternatively if the requirements defined via the enabled attribute are not met. Values of input parameters will be available in the template context under the parameter variable (e.g. an input parameter speed will be available in the script template as parameter.speed ). On top of that all other variables defined in the GCODE template context will be available. |
unset |
javascript |
Optional[str] |
A JavaScript snippet to be executed when the button rendered for command or commands is clicked. This allows to override the direct sending of the command or commands to the printer with more sophisticated behaviour. The JavaScript snippet is eval 'd and processed in a context where the control it is part of is provided as local variable data and the ControlViewModel is available as self . |
unset |
additionalClasses |
Optional[str] |
Additional classes to apply to the button of a command , commands , script or javascript control, other than the default btn . Can be used to visually style the button, e.g. set to btn-danger to turn the button red. |
unset |
enabled |
Optional[str] |
A JavaScript snippet returning either true or false determining whether the control should be enabled or not. This allows to override the default logic for the enable state of the control (disabled if printer is offline). The JavaScript snippet is eval 'd and processed in a context where the control it is part of is provided as local variable data and the ControlViewModel is available as self . |
unset |
regex |
Optional[str] |
A regular expression template this allows rendition of received data from the printer within the UI. |
unset |
template |
Optional[str] |
A template to use for rendering the match of regex . May contain placeholders in Python Format String Syntax for either named groups within the regex (e.g. Temperature: {temperature} for a regex T:\s*(?P<temperature>\d+(\.\d*) ) or positional groups within the regex (e.g. Position: X={0}, Y={1}, Z={2}, E={3} for a regex X:([0-9.]+) Y:([0-9.]+) Z:([0-9.]+) E:([0-9.]+) ). |
unset |
confirm |
Optional[str] |
A text to display to the user to confirm his button press. Can be used with sensitive custom controls like changing EEPROM values in order to prevent accidental clicks. The text will be displayed in a confirmation dialog. | unset |
Container model#
Name | Type | Description | Default |
---|---|---|---|
children |
List[Union[Control, Container]] |
A list of children controls or containers contained within this container. | [] |
name |
Optional[str] |
A name to display above the container, basically a section header. | unset |
layout |
str |
The layout to use for laying out the contained children, either from top to bottom (vertical ) or from left to right (horizontal ). Valid values: horizontal , vertical . |
'vertical' |
Example#
controls:
- name: Fan
layout: horizontal
children:
- name: Enable Fan
command: M106 S%(speed)s
input:
- name: Speed (0-255)
parameter: speed
default: 255
slider:
min: 0
max: 255
- name: Disable Fan
command: M107
- name: Example for multiple commands
children:
- name: Move X (static)
confirm: You are about to move the X axis right by 10mm with 3000mm/min.
commands:
- G91
- G1 X10 F3000
- G90
- name: Move X (parametric)
commands:
- G91
- G1 X%(distance)s F%(speed)s
- G90
input:
- default: 10
name: Distance
parameter: distance
- default: 3000
name: Speed
parameter: speed
- name: Reporting
children:
- name: Get Position
command: M114
regex: "X:([-+]?[0-9.]+) Y:([-+]?[0-9.]+) Z:([-+]?[0-9.]+) E:([-+]?[0-9.]+)"
template: "Position: X={0}, Y={1}, Z={2}, E={3}"
- name: Fun stuff
children:
- name: Dance
script: custom/dance.gco
input:
- name: Go arounds
parameter: repetitions
slider:
max: 10
min: 1
step: 1
devel#
The following settings are only relevant to you if you want to do OctoPrint development.
Defaults#
devel:
stylesheet: css
cache:
enabled: true
preemptive: true
webassets:
bundle: true
clean_on_startup: true
minify: true
minify_plugins: false
useFrozenDictForPrinterState: true
showLoadingAnimation: true
sockJsConnectTimeout: 30
pluginTimings: false
enableRateLimiter: true
enableCsrfProtection: true
Data model#
Name | Type | Description | Default |
---|---|---|---|
stylesheet |
str |
Settings for stylesheet preference. OctoPrint will prefer to use the stylesheet type specified here. Usually (on a production install) that will be the compiled css (default). Developers may specify less here too. Valid values: css , less . |
'css' |
cache.* |
Settings for OctoPrint's internal caching. | ||
cache.enabled |
bool |
True |
|
cache.preemptive |
bool |
True |
|
webassets.* |
Settings for OctoPrint's web asset merging and minifying. | ||
webassets.bundle |
bool |
If set to true, OctoPrint will merge all JS, all CSS and all Less files into one file per type to reduce request count. Setting it to false will load all assets individually. Note: if this is set to false, no minification will take place regardless of the minify setting. |
True |
webassets.clean_on_startup |
bool |
Whether to delete generated web assets on server startup (forcing a regeneration). | True |
webassets.minify |
bool |
If set to true, OctoPrint will the core and library javascript assets. Note: if bundle is set to false, no minification will take place either. |
True |
webassets.minify_plugins |
bool |
If set to true, OctoPrint will also minify the third party plugin javascript assets. Note: if bundle or minify are set to false, no minification of the plugin assets will take place either. |
False |
useFrozenDictForPrinterState |
bool |
True |
|
showLoadingAnimation |
bool |
Enable or disable the loading animation. | True |
sockJsConnectTimeout |
float |
30 |
|
pluginTimings |
bool |
False |
|
enableRateLimiter |
bool |
Enable or disable the rate limiter. Careful, disabling this reduces security. | True |
enableCsrfProtection |
bool |
Enable or disable the CSRF protection. Careful, disabling this reduces security. | True |
estimation#
Defaults#
estimation:
printTime:
statsWeighingUntil: 0.5
validityRange: 0.15
forceDumbFromPercent: 0.3
forceDumbAfterMin: 30.0
stableThreshold: 60
Data model#
Name | Type | Description | Default |
---|---|---|---|
printTime.* |
Parameters for the print time estimation during an ongoing print job. | ||
printTime.statsWeighingUntil |
float |
Until which percentage to do a weighted mixture of statistical duration (analysis or past prints) with the result from the calculated estimate if that's already available. Utilized to compensate for the fact that the earlier in a print job, the least accuracy even a stable calculated estimate provides. | 0.5 |
printTime.validityRange |
float |
Range the assumed percentage (based on current estimated statistical, calculated or mixed total vs elapsed print time so far) needs to be around the actual percentage for the result to be used. | 0.15 |
printTime.forceDumbFromPercent |
float |
If no estimate could be calculated until this percentage and no statistical data is available, use dumb linear estimate. Value between 0 and 1.0. | 0.3 |
printTime.forceDumbAfterMin |
float |
If no estimate could be calculated until this many minutes into the print and no statistical data is available, use dumb linear estimate. | 30.0 |
printTime.stableThreshold |
int |
Average fluctuation between individual calculated estimates to consider in stable range. Seconds of difference. | 60 |
events#
Use the following settings to add shell/gcode commands to be executed on certain events:
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
enabled |
bool |
Whether event subscriptions should be enabled or not. | True |
subscriptions[] |
A list of event subscriptions. | ||
subscriptions[].event |
str |
The event to subscribe to. | required |
subscriptions[].name |
Optional[str] |
The event name to show on the UI | unset |
subscriptions[].command |
str |
The command to execute when the event is triggered, either a GCODE or a system command. | required |
subscriptions[].type |
str |
The type of the command. Valid values: gcode , system . |
required |
subscriptions[].enabled |
bool |
Whether the event subscription should be enabled. | True |
subscriptions[].debug |
bool |
If set to true , OctoPrint will log the command after performing all placeholder replacements. |
False |
Example#
events:
subscriptions:
# example event consumer that prints a message to the system log if the printer is disconnected
- event: Disconnected
command: "logger 'Printer got disconnected'"
type: system
# example event consumer that queries printer information from the firmware, prints a "Connected"
# message to the LCD and homes the print head upon established printer connection, disabled though
- event: Connected
command: M115,M117 printer connected!,G28
type: gcode
enabled: False
Hint
For debugging purposes, you can set the debug
property on your event subscription
definition to true
. That will make the event handler print a log line with your
subscription's command after performing all placeholder replacements.
Example:
events:
subscriptions:
- event: Startup
command: "logger 'OctoPrint started up'"
type: system
debug: true
This will be logged in OctoPrint's logfile as
feature#
Defaults#
feature:
temperatureGraph: true
sdSupport: true
keyboardControl: true
pollWatched: false
modelSizeDetection: true
rememberFileFolder: false
printStartConfirmation: false
printCancelConfirmation: true
uploadOverwriteConfirmation: true
autoUppercaseBlacklist:
- M117
- M118
g90InfluencesExtruder: false
enforceReallyUniversalFilenames: false
Data model#
Name | Type | Description | Default |
---|---|---|---|
temperatureGraph |
bool |
Whether to enable the temperature graph in the UI or not. | True |
sdSupport |
bool |
Specifies whether support for SD printing and file management should be enabled. | True |
keyboardControl |
bool |
Whether to enable the keyboard control feature in the control tab. | True |
pollWatched |
bool |
Whether to actively poll the watched folder (true) or to rely on the OS's file system notifications instead (false). | False |
modelSizeDetection |
bool |
Whether to enable model size detection and warning (true) or not (false). | True |
rememberFileFolder |
bool |
Whether to remember the selected folder on the file manager. | False |
printStartConfirmation |
bool |
Whether to show a confirmation on print start (true) or not (false) | False |
printCancelConfirmation |
bool |
Whether to show a confirmation on print cancelling (true) or not (false) | True |
uploadOverwriteConfirmation |
bool |
True |
|
autoUppercaseBlacklist |
List[str] |
Commands that should never be auto-uppercased when sent to the printer through the Terminal tab. | ['M117', 'M118'] |
g90InfluencesExtruder |
bool |
Whether G90 /G91 also influence absolute/relative mode of extruders. |
False |
enforceReallyUniversalFilenames |
bool |
Replace all special characters and spaces with text equivalent to make them universally compatible. Most OS filesystems work fine with unicode characters, but just in case you can revert to the older behaviour by setting this to true. | False |
folder#
Defaults#
folder:
uploads:
timelapse:
timelapse_tmp:
logs:
virtualSd:
watched:
plugins:
slicingProfiles:
printerProfiles:
scripts:
translations:
generated:
data:
Data model#
Name | Type | Description | Default |
---|---|---|---|
uploads |
Optional[str] |
Absolute path where to store gcode uploads. Defaults to the uploads folder in OctoPrint's base folder. |
unset |
timelapse |
Optional[str] |
Absolute path where to store finished timelase recordings. Defaults to the timelapse folder in OctoPrint's base folder. |
unset |
timelapse_tmp |
Optional[str] |
Absolute path where to store temporary timelapse snapshots. Defaults to the timelapse/tmp folder in OctoPrint's base folder. |
unset |
logs |
Optional[str] |
Absolute path where to store logs. Defaults to the logs folder in OctoPrint's base folder. |
unset |
virtualSd |
Optional[str] |
Absolute path where to store the virtual printer's SD card files. Defaults to the virtualSd folder in OctoPrint's base folder. |
unset |
watched |
Optional[str] |
Absolute path to the watched folder. Defaults to the watched folder in OctoPrint's base folder. |
unset |
plugins |
Optional[str] |
Absolute path where to locate and install single file plugins. Defaults to the plugins folder in OctoPrint's base folder. |
unset |
slicingProfiles |
Optional[str] |
Absolute path where to store slicing profiles. Defaults to the slicingProfiles folder in OctoPrint's base folder. |
unset |
printerProfiles |
Optional[str] |
Absolute path where to store printer profiles. Defaults to the printerProfiles folder in OctoPrint's base folder. |
unset |
scripts |
Optional[str] |
Absolute path where to store (GCODE) scripts. Defaults to the scripts folder in OctoPrint's base folder. |
unset |
translations |
Optional[str] |
Absolute path where to store additional translations. Defaults to the translations folder in OctoPrint's base folder. |
unset |
generated |
Optional[str] |
Absolute path where to store generated files. Defaults to the generated folder in OctoPrint's base folder. |
unset |
data |
Optional[str] |
Absolute path where to store additional data. Defaults to the data folder in OctoPrint's base folder. |
unset |
gcodeAnalysis#
Defaults#
gcodeAnalysis:
maxExtruders: 10
throttle_normalprio: 0.01
throttle_highprio: 0.0
throttle_lines: 100
runAt: idle
bedZ: 0.0
Data model#
Name | Type | Description | Default |
---|---|---|---|
maxExtruders |
int |
Maximum number of extruders to support/to sanity check for. | 10 |
throttle_normalprio |
float |
Pause between each processed GCODE line batch in normal priority mode, seconds. | 0.01 |
throttle_highprio |
float |
Pause between each processed GCODE line batch in high priority mode (e.g. on fresh uploads), seconds. | 0.0 |
throttle_lines |
int |
GCODE line batch size. | 100 |
runAt |
str |
Whether to run the analysis only when idle (not printing), regardless of printing state or never. Valid values: always , idle , never . |
'idle' |
bedZ |
float |
Z position considered the location of the bed. | 0.0 |
plugins#
The plugins
section is where plugins can store their specific settings. It is also
where the installed but disabled plugins are tracked.
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
_disabled |
None |
Identifiers of installed but disabled plugins. | [] |
_forcedCompatible |
None |
Identifiers of plugins for which python compatibility information will be ignored and the plugin considered compatible in any case. Only for development, do NOT use in production. | [] |
_sortingOrder |
None |
Custom sorting of hooks and implementations provided by plugins. Two-tiered dictionary structure, plugin identifier mapping to a dictionary of order overrides mapped by sorting context/hook name. | {} |
Additionally to the fields listed here, plugins
will contain further keys for each
plugin that is storing settings itself. The keys will be the plugin's identifier.
Example#
plugins:
_disabled:
- some_plugin
_forcedCompatible:
- some_other_plugin
_sortingOrder:
yet_another_plugin:
octoprint.plugin.ordertest.callback: 1
StartupPlugin.on_startup: 10
virtual_printer:
_config_version: 1
enabled: true
printerParameters#
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
pauseTriggers |
List[str] |
[] |
printerProfiles#
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
default |
Optional[str] |
Name of the printer profile to default to. | unset |
scripts#
Default scripts and snippets. You'd usually not edit the config.yaml
file to adjust
those but instead create the corresponding files in ~/.octoprint/scripts/
.
See GCODE Scripts.
Defaults#
scripts:
gcode:
afterPrinterConnected:
beforePrinterDisconnected:
beforePrintStarted:
afterPrintCancelled: "; disable motors\nM84\n\n;disable all heaters\n{% snippet
'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0"
afterPrintDone:
beforePrintPaused:
afterPrintResumed:
beforeToolChange:
afterToolChange:
snippets:
disable_hotends: "{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n
{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{
tool }} S0\n{% endfor %}{% endif %}"
disable_bed: "{% if printer_profile.heatedBed %}M140 S0\n{% endif %}"
Data model#
Name | Type | Description | Default |
---|---|---|---|
gcode.* |
|||
gcode.afterPrinterConnected |
Optional[str] |
unset | |
gcode.beforePrinterDisconnected |
Optional[str] |
unset | |
gcode.beforePrintStarted |
Optional[str] |
unset | |
gcode.afterPrintCancelled |
Optional[str] |
"; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0" |
|
gcode.afterPrintDone |
Optional[str] |
unset | |
gcode.beforePrintPaused |
Optional[str] |
unset | |
gcode.afterPrintResumed |
Optional[str] |
unset | |
gcode.beforeToolChange |
Optional[str] |
unset | |
gcode.afterToolChange |
Optional[str] |
unset | |
gcode.snippets |
Dict[str, str] |
{'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'} |
serial#
Defaults#
serial:
port:
baudrate:
exclusive: true
lowLatency: false
autoconnect: false
autorefresh: true
autorefreshInterval: 1
log: false
timeout:
detectionFirst: 10.0
detectionConsecutive: 2.0
connection: 10.0
communication: 30.0
communicationBusy: 3.0
temperature: 5.0
temperatureTargetSet: 2.0
temperatureAutoreport: 2.0
sdStatus: 1.0
sdStatusAutoreport: 1.0
posAutoreport: 5.0
resendOk: 0.5
baudrateDetectionPause: 1.0
positionLogWait: 10.0
maxCommunicationTimeouts:
idle: 2
printing: 5
long: 5
maxWritePasses: 5
additionalPorts: []
additionalBaudrates: []
blacklistedPorts: []
blacklistedBaudrates: []
longRunningCommands:
- G4
- G28
- G29
- G30
- G32
- M400
- M226
- M600
blockedCommands:
- M0
- M1
ignoredCommands: []
pausingCommands:
- M0
- M1
- M25
emergencyCommands:
- M112
- M108
- M410
checksumRequiringCommands:
- M110
helloCommand: M110 N0
disconnectOnErrors: true
ignoreErrorsFromFirmware: false
terminalLogSize: 20
lastLineBufferSize: 50
logResends: true
supportResendsWithoutOk: detect
logPositionOnPause: true
logPositionOnCancel: false
abortHeatupOnCancel: true
waitForStartOnConnect: false
waitToLoadSdFileList: true
alwaysSendChecksum: false
neverSendChecksum: false
sendChecksumWithUnknownCommands: false
unknownCommandsNeedAck: false
sdRelativePath: false
sdAlwaysAvailable: false
sdLowerCase: false
sdCancelCommand: M25
maxNotSdPrinting: 2
swallowOkAfterResend: true
repetierTargetTemp: false
externalHeatupDetection: true
supportWait: true
ignoreIdenticalResends: false
identicalResendsCountdown: 7
supportFAsCommand: false
firmwareDetection: true
blockWhileDwelling: false
useParityWorkaround: detect
maxConsecutiveResends: 10
sendM112OnError: true
disableSdPrintingDetection: false
ackMax: 1
sanityCheckTools: true
notifySuppressedCommands: warn
capabilities:
autoreport_temp: true
autoreport_sdstatus: true
autoreport_pos: true
busy_protocol: true
emergency_parser: true
extended_m20: true
lfn_write: true
resendRatioThreshold: 10
resendRatioStart: 100
ignoreEmptyPorts: false
encoding: ascii
enableShutdownActionCommand: false
triggerOkForM29: true
Data model#
Name | Type | Description | Default |
---|---|---|---|
port |
Optional[str] |
The default port to use to connect to the printer. If unset or set to AUTO , the port will be auto-detected. |
unset |
baudrate |
Optional[int] |
The default baudrate to use to connect to the printer. If unset or set to 0, the baudrate will be auto-detected. | unset |
exclusive |
bool |
Whether to request the serial port exclusively or not | True |
lowLatency |
bool |
Whether to request low latency mode on the serial port or not | False |
autoconnect |
bool |
Whether to try to automatically connect to the printer on startup or not | False |
autorefresh |
bool |
Whether to automatically refresh the port list while no connection is established | True |
autorefreshInterval |
int |
Interval in seconds at which to refresh the port list while no connection is established | 1 |
log |
bool |
Whether to log whole communication to serial.log (warning: might decrease performance) | False |
timeout.* |
Timeouts used for the serial connection to the printer, you might want to adjust these if you are experiencing connection problems | ||
timeout.detectionFirst |
float |
10.0 |
|
timeout.detectionConsecutive |
float |
2.0 |
|
timeout.connection |
float |
Timeout for waiting to establish a connection with the selected port, in seconds | 10.0 |
timeout.communication |
float |
Timeout during serial communication, in seconds | 30.0 |
timeout.communicationBusy |
float |
Timeout during serial communication when busy protocol support is detected, in seconds | 3.0 |
timeout.temperature |
float |
Timeout after which to query temperature when no target is set | 5.0 |
timeout.temperatureTargetSet |
float |
Timeout after which to query temperature when a target is set | 2.0 |
timeout.temperatureAutoreport |
float |
2.0 |
|
timeout.sdStatus |
float |
Timeout after which to query the SD status while SD printing | 1.0 |
timeout.sdStatusAutoreport |
float |
1.0 |
|
timeout.posAutoreport |
float |
5.0 |
|
timeout.resendOk |
float |
0.5 |
|
timeout.baudrateDetectionPause |
float |
1.0 |
|
timeout.positionLogWait |
float |
10.0 |
|
maxCommunicationTimeouts.* |
|||
maxCommunicationTimeouts.idle |
int |
Max. timeouts when the printer is idle | 2 |
maxCommunicationTimeouts.printing |
int |
Max. timeouts when the printer is printing | 5 |
maxCommunicationTimeouts.long |
int |
Max. timeouts when a long running command is active | 5 |
maxWritePasses |
int |
Maximum number of write attempts to serial during which nothing can be written before the communication with the printer is considered dead and OctoPrint will disconnect with an error | 5 |
additionalPorts |
List[str] |
Use this to define additional patterns to consider for serial port listing. Must be a valid "glob" pattern | [] |
additionalBaudrates |
List[int] |
Use this to define additional baud rates to offer for connecting to serial ports. Must be a valid integer | [] |
blacklistedPorts |
List[str] |
[] |
|
blacklistedBaudrates |
List[int] |
[] |
|
longRunningCommands |
List[str] |
Commands which are known to take a long time to be acknowledged by the firmware, e.g. homing, dwelling, auto leveling etc. | ['G4', 'G28', 'G29', 'G30', 'G32', 'M400', 'M226', 'M600'] |
blockedCommands |
List[str] |
Commands which should not be sent to the printer, e.g. because they are known to block serial communication until physical interaction with the printer as is the case on most firmwares with the default M0 and M1. | ['M0', 'M1'] |
ignoredCommands |
List[str] |
Commands which should not be sent to the printer and just silently ignored. An example of when you may wish to use this could be useful if you wish to manually change a filament on M600, by using that as a Pausing command. | [] |
pausingCommands |
List[str] |
Commands which should cause OctoPrint to pause any ongoing prints. | ['M0', 'M1', 'M25'] |
emergencyCommands |
List[str] |
['M112', 'M108', 'M410'] |
|
checksumRequiringCommands |
List[str] |
Commands which need to always be send with a checksum. | ['M110'] |
helloCommand |
str |
Command to send in order to initiate a handshake with the printer. | 'M110 N0' |
disconnectOnErrors |
bool |
Whether to disconnect from the printer on errors or not. | True |
ignoreErrorsFromFirmware |
bool |
Whether to completely ignore errors from the firmware or not. | False |
terminalLogSize |
int |
20 |
|
lastLineBufferSize |
int |
50 |
|
logResends |
bool |
Whether to log resends to octoprint.log or not. Invaluable debug tool without performance impact, leave on if possible please. | True |
supportResendsWithoutOk |
str |
Whether to support resends without follow-up ok or not. Valid values: always , detect , never . |
'detect' |
logPositionOnPause |
bool |
True |
|
logPositionOnCancel |
bool |
False |
|
abortHeatupOnCancel |
bool |
True |
|
waitForStartOnConnect |
bool |
Whether OctoPrint should wait for the start response from the printer before trying to send commands during connect. |
False |
waitToLoadSdFileList |
bool |
Specifies whether OctoPrint should wait to load the SD card file list until the first firmware capability report is processed. | True |
alwaysSendChecksum |
bool |
Specifies whether OctoPrint should send linenumber + checksum with every printer command. Needed for successful communication with Repetier firmware. | False |
neverSendChecksum |
bool |
False |
|
sendChecksumWithUnknownCommands |
bool |
Specifies whether OctoPrint should also send linenumber + checksum with commands that are not detected as valid GCODE (as in, they do not match the regular expression ^\s*([GM]\d+|T) ). |
False |
unknownCommandsNeedAck |
bool |
Specifies whether OctoPrint should also use up acknowledgments (ok ) for commands that are not detected as valid GCODE (as in, they do not match the regular expression ^\s*([GM]\d+|T) ). |
False |
sdRelativePath |
bool |
Specifies whether firmware expects relative paths for selecting SD files. | False |
sdAlwaysAvailable |
bool |
Whether to always assume that an SD card is present in the printer. Needed by some firmwares which don't report the SD card status properly. | False |
sdLowerCase |
bool |
False |
|
sdCancelCommand |
str |
'M25' |
|
maxNotSdPrinting |
int |
2 |
|
swallowOkAfterResend |
bool |
True |
|
repetierTargetTemp |
bool |
Whether the printer sends repetier style target temperatures in the format TargetExtr0:<temperature> instead of attaching that information to the regular M105 responses. |
False |
externalHeatupDetection |
bool |
Whether to enable external heatup detection (to detect heatup triggered e.g. through the printer's LCD panel or while printing from SD) or not. Causes issues with Repetier's "first ok then response" approach to communication, so disable for printers running Repetier firmware. | True |
supportWait |
bool |
True |
|
ignoreIdenticalResends |
bool |
Whether to ignore identical resends from the printer (true, repetier) or not (false). | False |
identicalResendsCountdown |
int |
If ignoreIdenticalResends is true, how many consecutive identical resends to ignore. |
7 |
supportFAsCommand |
bool |
Whether to support F on its own as a valid GCODE command (true) or not (false). |
False |
firmwareDetection |
bool |
Whether to attempt to auto detect the firmware of the printer and adjust settings accordingly (true) or not and rely on manual configuration (false). | True |
blockWhileDwelling |
bool |
Whether to block all sending to the printer while a G4 (dwell) command is active (true, repetier) or not (false). | False |
useParityWorkaround |
str |
Valid values: always , detect , never . |
'detect' |
maxConsecutiveResends |
int |
10 |
|
sendM112OnError |
bool |
True |
|
disableSdPrintingDetection |
bool |
False |
|
ackMax |
int |
1 |
|
sanityCheckTools |
bool |
True |
|
notifySuppressedCommands |
str |
Valid values: info , never , warn . |
'warn' |
capabilities.* |
|||
capabilities.autoreport_temp |
bool |
Whether to enable temperature autoreport in the firmware if its support is detected | True |
capabilities.autoreport_sdstatus |
bool |
Whether to enable SD printing autoreport in the firmware if its support is detected | True |
capabilities.autoreport_pos |
bool |
Whether to enable position autoreport in the firmware if its support is detected | True |
capabilities.busy_protocol |
bool |
Whether to shorten the communication timeout if the firmware seems to support the busy protocol | True |
capabilities.emergency_parser |
bool |
Whether to send emergency commands out of band if the firmware seems to support the emergency parser | True |
capabilities.extended_m20 |
bool |
Whether to request extended M20 (file list) output from the firmware if its support is detected | True |
capabilities.lfn_write |
bool |
Whether to enable long filename support for SD card writes if the firmware reports support for it | True |
resendRatioThreshold |
int |
Percentage of resend requests among all sent lines that should be considered critical. | 10 |
resendRatioStart |
int |
100 |
|
ignoreEmptyPorts |
bool |
False |
|
encoding |
str |
Encoding to use when talking to a machine. ascii limits access to characters 0-127, latin_1 enables access to the "extended" ascii characters 0-255. Other values can be used, see Python's standard encodings. |
'ascii' |
enableShutdownActionCommand |
bool |
Whether to enable support for the shutdown action command, allowing the printer to shut down OctoPrint and the system it's running on. | False |
triggerOkForM29 |
bool |
Whether to automatically trigger an ok for M29 (a lot of versions of this command are buggy and the response skips on the ok). |
True |
server#
Defaults#
server:
host:
port: 5000
firstRun: true
startOnceInSafeMode: false
ignoreIncompleteStartup: false
seenWizards: {}
secretKey:
heartbeat: 900
reverseProxy:
prefixHeader:
schemeHeader:
hostHeader:
serverHeader:
portHeader:
prefixFallback:
schemeFallback:
hostFallback:
serverFallback:
portFallback:
trustedDownstream: []
uploads:
maxSize: 1073741824
nameSuffix: name
pathSuffix: path
maxSize: 102400
commands:
systemShutdownCommand:
systemRestartCommand:
serverRestartCommand:
localPipCommand:
onlineCheck:
enabled:
interval: 900
host: 1.1.1.1
port: 53
name: octoprint.org
pluginBlacklist:
enabled:
url: https://plugins.octoprint.org/blacklist.json
ttl: 900
timeout: 3.05
diskspace:
warning: 524288000
critical: 209715200
preemptiveCache:
exceptions: []
until: 7
ipCheck:
enabled: true
trustedSubnets: []
allowFraming: false
cookies:
secure: false
samesite: Lax
allowedLoginRedirectPaths: []
Data model#
Name | Type | Description | Default |
---|---|---|---|
host |
Optional[str] |
Use this option to define the host to which to bind the server. If unset, OctoPrint will attempt to bind on all available interfaces, IPv4 and v6 unless either is disabled. | unset |
port |
int |
Use this option to define the port to which to bind the server. | 5000 |
firstRun |
bool |
If this option is true, OctoPrint will show the First Run wizard and set the setting to false after that completes. | True |
startOnceInSafeMode |
bool |
If this option is true, OctoPrint will enable safe mode on the next server start and reset the setting to false | False |
ignoreIncompleteStartup |
bool |
Set this to true to make OctoPrint ignore incomplete startups. Helpful for development. | False |
seenWizards |
Dict[str, str] |
{} |
|
secretKey |
Optional[str] |
Secret key for encrypting cookies and such, randomly generated on first run. | unset |
heartbeat |
int |
900 |
|
reverseProxy.* |
Settings if OctoPrint is running behind a reverse proxy (haproxy, nginx, apache, ...) that doesn't correctly set the required headers. These are necessary in order to make OctoPrint generate correct external URLs so that AJAX requests and download URLs work, and so that client IPs are read correctly. | ||
reverseProxy.prefixHeader |
Optional[str] |
The request header from which to determine the URL prefix under which OctoPrint is served by the reverse proxy. | unset |
reverseProxy.schemeHeader |
Optional[str] |
The request header from which to determine the scheme (http or https) under which a specific request to OctoPrint was made to the reverse proxy. | unset |
reverseProxy.hostHeader |
Optional[str] |
The request header from which to determine the host under which OctoPrint is served by the reverse proxy. | unset |
reverseProxy.serverHeader |
Optional[str] |
unset | |
reverseProxy.portHeader |
Optional[str] |
unset | |
reverseProxy.prefixFallback |
Optional[str] |
Use this option to define an optional URL prefix (with a leading /, so absolute to your server's root) under which to run OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse proxy under a different root endpoint than / and can't configure said reverse proxy to send a prefix HTTP header (X-Script-Name by default, see above) with forwarded requests. |
unset |
reverseProxy.schemeFallback |
Optional[str] |
Use this option to define an optional forced scheme (http or https) under which to run OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse proxy that also does HTTPS determination but can't configure said reverse proxy to send a scheme HTTP header (X-Scheme by default, see above) with forwarded requests. | unset |
reverseProxy.hostFallback |
Optional[str] |
Use this option to define an optional forced host under which to run OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse proxy with a different hostname than OctoPrint itself but can't configure said reverse proxy to send a host HTTP header (X-Forwarded-Host by default, see above) with forwarded requests. | unset |
reverseProxy.serverFallback |
Optional[str] |
unset | |
reverseProxy.portFallback |
Optional[str] |
unset | |
reverseProxy.trustedDownstream |
List[str] |
List of trusted downstream servers for which to ignore the IP address when trying to determine the connecting client's IP address. If you have OctoPrint behind more than one reverse proxy you should add their IPs here so that they won't be interpreted as the client's IP. One reverse proxy will be handled correctly by default. | [] |
uploads.* |
Settings for file uploads to OctoPrint, such as maximum allowed file size and header suffixes to use for streaming uploads. OctoPrint does some nifty things internally in order to allow streaming of large file uploads to the application rather than just storing them in memory. For that it needs to do some rewriting of the incoming upload HTTP requests, storing the uploaded file to a temporary location on disk and then sending an internal request to the application containing the original filename and the location of the temporary file. | ||
uploads.maxSize |
int |
Maximum size of uploaded files in bytes, defaults to 1GB. | 1073741824 |
uploads.nameSuffix |
str |
Suffix used for storing the filename in the file upload headers when streaming uploads. | 'name' |
uploads.pathSuffix |
str |
Suffix used for storing the path to the temporary file in the file upload headers when streaming uploads. | 'path' |
maxSize |
int |
Maximum size of requests other than file uploads in bytes, defaults to 100KB. | 102400 |
commands.* |
Commands to restart/shutdown octoprint or the system it's running on. | ||
commands.systemShutdownCommand |
Optional[str] |
Command to shut down the system OctoPrint is running on. | unset |
commands.systemRestartCommand |
Optional[str] |
Command to restart the system OctoPrint is running on. | unset |
commands.serverRestartCommand |
Optional[str] |
Command to restart OctoPrint. | unset |
commands.localPipCommand |
Optional[str] |
pip command associated with OctoPrint, used for installing plugins and updates, if unset (default) the command will be autodetected based on the current python executable - unless you have a really special setup this is the right way to do it and there should be no need to ever touch this setting. | unset |
onlineCheck.* |
Configuration of the regular online connectivity check. | ||
onlineCheck.enabled |
Optional[bool] |
Whether the online check is enabled. Ships unset, the user will be asked to make a decision as part of the setup wizard. | unset |
onlineCheck.interval |
int |
Interval in which to check for online connectivity (in seconds), defaults to 15 minutes. | 900 |
onlineCheck.host |
str |
DNS host against which to check, defaults to Cloudflare's DNS. | '1.1.1.1' |
onlineCheck.port |
int |
DNS port against which to check, defaults to the standard DNS port. | 53 |
onlineCheck.name |
str |
Host name for which to check name resolution, defaults to OctoPrint's main domain. | 'octoprint.org' |
pluginBlacklist.* |
Configuration of the plugin blacklist. | ||
pluginBlacklist.enabled |
Optional[bool] |
Whether use of the blacklist is enabled. If unset, the user will be asked to make a decision as part of the setup wizard. | unset |
pluginBlacklist.url |
str |
The URL from which to fetch the blacklist. | 'https://plugins.octoprint.org/blacklist.json' |
pluginBlacklist.ttl |
int |
Time to live of the cached blacklist, in seconds (default: 15 minutes). | 900 |
pluginBlacklist.timeout |
float |
Timeout for fetching the blacklist, in seconds (default: 3.05 seconds). | 3.05 |
diskspace.* |
Settings of when to display what disk space warning. | ||
diskspace.warning |
int |
Threshold (bytes) after which to consider disk space becoming sparse, defaults to 500MB. | 524288000 |
diskspace.critical |
int |
Threshold (bytes) after which to consider disk space becoming critical, defaults to 200MB. | 209715200 |
preemptiveCache.* |
Configuration of the preemptive cache. | ||
preemptiveCache.exceptions |
List[str] |
Which server paths to exclude from the preemptive cache, e.g. /some/path . |
[] |
preemptiveCache.until |
int |
How many days to leave unused entries in the preemptive cache config. | 7 |
ipCheck.* |
Configuration of the client IP check to warn about connections from external networks. | ||
ipCheck.enabled |
bool |
Whether to enable the check. | True |
ipCheck.trustedSubnets |
List[str] |
Additional non-local subnets to consider trusted, in CIDR notation, e.g. 192.168.1.0/24 . |
[] |
allowFraming |
bool |
Whether to allow OctoPrint to be embedded in a frame or not. Note that depending on your setup you might have to set SameSite to None, Secure to true and serve OctoPrint through a reverse proxy that enables https for cookies and thus logging in to work. | False |
cookies.* |
Settings for further configuration of the cookies that OctoPrint sets (login, remember me, ...). | ||
cookies.secure |
bool |
Whether to set the Secure flag to true on cookies. Only set to true if you are running OctoPrint behind a reverse proxy taking care of SSL termination. |
False |
cookies.samesite |
str |
SameSite setting to use on the cookies. Possible values are None , Lax and Strict . Defaults to Lax . Be advised that if forced unset, this has security implications as many browsers now default to Lax unless you configure cookies to be set with Secure flag set, explicitly set SameSite setting here and also serve OctoPrint over https. The Lax setting is known to cause with embedding OctoPrint in frames. See also "Feature: Cookies default to SameSite=Lax", "Feature: Reject insecure SameSite=None cookies" and issue #3482. Valid values: Lax , None , Strict . |
'Lax' |
allowedLoginRedirectPaths |
List[str] |
List of paths that are allowed to be used as redirect targets for the login page, in addition to the default ones (/ , /recovery/ and /plugin/appkeys/auth/ ) |
[] |
slicing#
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
enabled |
bool |
Whether to enable slicing support or not. | True |
defaultSlicer |
Optional[str] |
Default slicer to use. | unset |
defaultProfiles |
Dict[str, str] |
Default slicing profiles per slicer, maps slicer identifier to profile identifier. | {} |
system#
Defaults#
Data model#
Name | Type | Description | Default |
---|---|---|---|
actions[] |
A list of system actions to show in the UI. | ||
actions[].action |
str |
The identifier used internally to identify the action. Set to divider to generate a divider in the menu. |
required |
actions[].name |
Optional[str] |
The name of the action that will be shown on the menu. Must be set if the action is not a divider. | unset |
actions[].command |
Optional[str] |
The command to execute when the action is selected. Must be set if the action is not a divider. | unset |
actions[].async |
None |
Whether to run the command asynchronously. | False |
actions[].confirm |
Optional[str] |
An optional confirmation message to show before executing the command. | unset |
temperature#
Defaults#
temperature:
profiles:
- name: ABS
extruder: 210
bed: 100
- name: PLA
extruder: 180
bed: 60
cutoff: 30
sendAutomatically: false
sendAutomaticallyAfter: 1
Data model#
Name | Type | Description | Default |
---|---|---|---|
profiles[] |
Temperature profiles to offer in the UI for quick pre-heating. | ||
profiles[].name |
str |
Name of the profile. | required |
profiles[].extruder |
int |
Hotend temperature to set with the profile. | required |
profiles[].bed |
int |
Bed temperature to set with the profile. | required |
cutoff |
int |
Cut off time for the temperature data, in minutes. | 30 |
sendAutomatically |
bool |
Whether to send new temperature settings made in the UI automatically. | False |
sendAutomaticallyAfter |
int |
After what time to send the new temperature settings automatically, in seconds. | 1 |
terminalFilters#
Use the following settings to define a list of terminal filters to display in the terminal tab for filtering certain lines from the display terminal log.
Defaults#
terminal_filters:
- name: Suppress temperature messages
regex: '(Send: (N\d+\s+)?M105)|(Recv:\s+(ok\s+([PBN]\d+\s+)*)?([BCLPR]|T\d*):-?\d+)'
- name: Suppress SD status messages
regex: '(Send: (N\d+\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'
- name: Suppress position messages
regex:
(Send:\s+(N\d+\s+)?M114)|(Recv:\s+(ok\s+)?X:[+-]?([0-9]*[.])?[0-9]+\s+Y:[+-]?([0-9]*[.])?[0-9]+\s+Z:[+-]?([0-9]*[.])?[0-9]+\s+E\d*:[+-]?([0-9]*[.])?[0-9]+).*
- name: Suppress wait responses
regex: 'Recv: wait'
- name: Suppress processing responses
regex: 'Recv: (echo:\s*)?busy:\s*processing'
Data model#
Each filter entry in the list is a dictionary with the following keys:
Name | Type | Description | Default |
---|---|---|---|
name |
str |
The name of the filter. | required |
regex |
str |
The regular expression to match. Use JavaScript regular expressions. | required |
webcam#
Defaults#
webcam:
webcamEnabled: true
timelapseEnabled: true
ffmpeg:
ffmpegThreads: 1
ffmpegVideoCodec: libx264
bitrate: 10000k
watermark: true
ffmpegCommandline: '{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec}
-threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"'
ffmpegThumbnailCommandline: '{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7
"{output}"'
timelapse:
type: off
fps: 25
postRoll: 0
options:
interval:
capturePostRoll:
retractionZHop:
cleanTmpAfterDays: 7
defaultWebcam: classic
snapshotWebcam: classic
Data model#
Name | Type | Description | Default |
---|---|---|---|
webcamEnabled |
bool |
Use this option to enable display of a webcam stream in the UI, e.g. via MJPG-Streamer. Webcam support will be disabled if not set. | True |
timelapseEnabled |
bool |
Use this option to enable timelapse support via snapshot, e.g. via MJPG-Streamer. Timelapse support will be disabled if not set. | True |
ffmpeg |
Optional[str] |
Path to ffmpeg binary to use for creating timelapse recordings. Timelapse support will be disabled if not set. | unset |
ffmpegThreads |
int |
Number of how many threads to instruct ffmpeg to use for encoding. | 1 |
ffmpegVideoCodec |
str |
Videocodec to be used for encoding. | 'libx264' |
bitrate |
str |
The bitrate to use for rendering the timelapse video. This gets directly passed to ffmpeg. | '10000k' |
watermark |
bool |
Whether to include a "created with OctoPrint" watermark in the generated timelapse recordings. | True |
ffmpegCommandline |
str |
'{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"' |
|
ffmpegThumbnailCommandline |
str |
'{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"' |
|
timelapse.* |
The default timelapse settings. | ||
timelapse.type |
str |
The timelapse type. Valid values: off , timed , zchange . |
'off' |
timelapse.fps |
int |
The framerate at which to render the movie. | 25 |
timelapse.postRoll |
int |
The number of seconds in the rendered video to add after a finished print. The exact way how the additional images will be recorded depends on timelapse type. zchange timelapses will take one final picture and add it fps * postRoll times. timed timelapses continue to record just like at the beginning, so the recording will continue another fps * postRoll * interval seconds. This behaviour can be overridden by setting the capturePostRoll option to false , in which case the post roll will be created identically to zchange mode. |
0 |
timelapse.options.* |
Additional options depending on the timelapse type. | ||
timelapse.options.interval |
Optional[int] |
timed timelapses only: The interval which to leave between images in seconds. |
unset |
timelapse.options.capturePostRoll |
Optional[bool] |
timed timelapses only: Whether to capture the snapshots for the post roll (true) or just copy the last captured snapshot from the print over and over again (false). |
unset |
timelapse.options.retractionZHop |
Optional[float] |
zchange timelapses only: z-hop height during retractions to ignore for capturing snapshots. |
unset |
cleanTmpAfterDays |
int |
After how many days unrendered timelapses will be deleted. | 7 |
defaultWebcam |
str |
The name of the default webcam | 'classic' |
snapshotWebcam |
str |
The name of the default webcam to use for snapshots | 'classic' |