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” menu in OctoPrint itself. They can also be configured via config command line interface.
Access Control¶
Defaults¶
accessControl:
  addRemoteUsers: false
  autologinAs: null
  autologinHeadsupAcknowledged: false
  autologinLocal: false
  checkBasicAuthenticationPassword: true
  defaultReauthenticationTimeout: 5
  groupManager: octoprint.access.groups.FilebasedGroupManager
  groupfile: null
  localNetworks:
  - 127.0.0.0/8
  - ::1/128
  permissionManager: octoprint.access.permissions.PermissionManager
  remoteGroupsHeader: REMOTE_GROUPS
  remoteGroupsMapping: {}
  remoteUserHeader: REMOTE_USER
  salt: null
  sessionStaleAfter: 15
  trustBasicAuthentication: false
  trustRemoteGroups: false
  trustRemoteUser: false
  userManager: octoprint.access.users.FilebasedUserManager
  userfile: null
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
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  | 
  | 
  | 
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:   | 
  | 
  | 
  | 
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:   | 
  | 
  | 
  | 
The permission manager implementation to use.  | 
  | 
  | 
  | 
The YAML user file to use. If left out defaults to   | 
unset  | 
  | 
  | 
The YAML group file to use. If left out defaults to   | 
unset  | 
  | 
  | 
If set to   | 
  | 
  | 
  | 
A list of networks or IPs for which an automatic logon as the user defined in   | 
  | 
  | 
  | 
The name of the user to automatically log on clients originating from   | 
unset  | 
  | 
  | 
Whether the user has acknowledged the heads-up about the importance of a correct reverse proxy configuration in the presence of autologin.  | 
  | 
  | 
  | 
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  ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through Basic Authentication!  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
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!  | 
  | 
  | 
  | 
Header used by the reverse proxy to convey the authenticated user.  | 
  | 
  | 
  | 
Whether to trust remote groups headers. If you have setup authentication in front of OctoPrint and the groups names you use there match
OctoPrint accounts, by setting this to  ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through an authenticating reverse proxy!  | 
  | 
  | 
  | 
Header used by the reverse proxy to convey the authenticated user’s groups.  | 
  | 
  | 
  | 
Mapping from groups in the header to groups in OctoPrint.  | 
  | 
  | 
  | 
If a remote user is not found, add them. Use this only if all users from the remote system may use OctoPrint.  | 
  | 
  | 
  | 
Default timeout after which to require reauthentication by a user for dangerous changes, in minutes. Defaults to 5 minutes. Set to 0 to disable reauthentication requirements (SECURITY IMPACT!).  | 
  | 
  | 
  | 
Default time after which to consider a session stale due to no activity and to remove it.  | 
  | 
API¶
Settings for the REST API.
Defaults¶
api:
  allowCrossOrigin: false
  apps: {}
  key: null
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Global API key, deprecated, use User API keys instead. Unset by default, will be generated on first run.  | 
unset  | 
  | 
  | 
  | 
|
  | 
  | 
Whether to allow cross origin access to the API or not.  | 
  | 
Appearance¶
Use the following settings to 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:
  closeModalsWithClick: true
  color: default
  colorIcon: true
  colorTransparent: false
  components:
    disabled:
      about: []
      generic: []
      navbar: []
      settings: []
      sidebar: []
      tab: []
      usersettings: []
      wizard: []
    order:
      about:
      - about
      - plugin_pi_support
      - supporters
      - authors
      - changelog
      - license
      - thirdparty
      - plugin_pluginmanager
      - plugin_achievements
      - plugin_achievements_2
      - systeminfo
      generic: []
      navbar:
      - settings
      - systemmenu
      - plugin_announcements
      - plugin_logging_seriallog
      - plugin_logging_plugintimingslog
      - plugin_pi_support
      - plugin_health_check
      - login
      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
      sidebar:
      - plugin_firmware_check_warning
      - plugin_firmware_check_info
      - connection
      - state
      - files
      tab:
      - temperature
      - control
      - plugin_gcodeviewer
      - terminal
      - timelapse
      usersettings:
      - access
      - interface
      wizard:
      - plugin_softwareupdate_update
      - plugin_backup
      - plugin_corewizard_acl
      - plugin_corewizard_onlinecheck
  defaultLanguage: _default
  fuzzyTimes: true
  name: ''
  showFahrenheitAlso: false
  showInternalFilename: true
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Use this to give your OctoPrint instance a name. It will be displayed in the title bar (as “<Name> [OctoPrint]”) and in the navigation bar (as “OctoPrint: <>”)  | 
  | 
  | 
  | 
Use this to color the navigation bar. Valid values:   | 
  | 
  | 
  | 
Makes the color of the navigation bar “transparent”. In case your printer uses acrylic for its frame 😉.  | 
  | 
  | 
  | 
  | 
|
  | 
  | 
Default language of OctoPrint. If left unset OctoPrint will try to match up available languages with the user’s browser settings.  | 
  | 
  | 
  | 
Show temperatures in Celsius as well as in Fahrenheit.  | 
  | 
  | 
  | 
Display fuzzy times for print time estimations.  | 
  | 
  | 
  | 
Allow closing modals with a click outside of them.  | 
  | 
  | 
  | 
Show the internal filename in the files sidebar, if necessary.  | 
  | 
  | 
Configures the order and availability of the UI components.  | 
||
  | 
Defines the order of the components within their respective containers.  | 
||
  | 
  | 
Order of navbar items.  | 
  | 
  | 
  | 
Order of sidebar items.  | 
  | 
  | 
  | 
Order of tabs.  | 
  | 
  | 
  | 
Order of settings.  | 
  | 
  | 
  | 
Order of user settings.  | 
  | 
  | 
  | 
Order of wizards.  | 
  | 
  | 
  | 
Order of about dialog items.  | 
  | 
  | 
  | 
Order of generic items.  | 
  | 
  | 
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.  | 
||
  | 
  | 
Disabled navbar items.  | 
  | 
  | 
  | 
Disabled sidebar items.  | 
  | 
  | 
  | 
Disabled tabs.  | 
  | 
  | 
  | 
Disabled settings.  | 
  | 
  | 
  | 
Disabled user settings.  | 
  | 
  | 
  | 
Disabled wizards.  | 
  | 
  | 
  | 
Disabled about dialog items.  | 
  | 
  | 
  | 
Disabled generic items.  | 
  | 
Notes¶
Note
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.
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:
appearance:
  components:
    order:
      tab:
      - plugin_helloworld
OctoPrint will then display the tabs in the order plugin_helloworld, temperature, control, plugin_gcodeviewer,
terminal, timelapse plus any other plugins.
Controls¶
controls is a list, with each entry in the list being a dictionary describing either a control or a container.
Defaults¶
controls: []
Data Model¶
Controls
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
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  | 
  | 
  | 
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   | 
unset  | 
  | 
  | 
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   | 
unset  | 
  | 
  | 
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   | 
unset  | 
  | 
  | 
A JavaScript snippet to be executed when the button rendered for   | 
unset  | 
  | 
  | 
Additional classes to apply to the button of a   | 
unset  | 
  | 
  | 
A JavaScript snippet returning either   | 
unset  | 
  | 
  | 
A list of definitions of input parameters for a  
  | 
  | 
  | 
  | 
A regular expression to match against lines received
from the printer to retrieve information from it (e.g. specific output). Together with   | 
unset  | 
  | 
  | 
A template to use for rendering the match of   | 
unset  | 
  | 
  | 
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  | 
Containers
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
A list of children controls or containers contained within this container.  | 
  | 
  | 
  | 
A name to display above the container, basically a section header.  | 
unset  | 
  | 
  | 
The layout to use for laying out the contained children, either from top to bottom ( Valid values:   | 
  | 
Inputs
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Name to display for the input field.  | 
required  | 
  | 
  | 
Internal parameter name for the input field, used as a placeholder in   | 
required  | 
  | 
  | 
Default value for the input field.  | 
required  | 
  | 
  | 
If this attribute is included, instead of an input field a slider control will be rendered.  | 
unset  | 
Sliders
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Minimum value of the slider.  | 
  | 
  | 
  | 
Maximum value of the slider.  | 
  | 
  | 
  | 
Step size per slider tick.  | 
  | 
Example¶
controls:
  - name: Fan
    layout: horizontal
    children:
      - name: Enable Fan
        type: parametric_command
        command: M106 S%(speed)s
        input:
          - name: Speed (0-255)
            parameter: speed
            default: 255
      - name: Disable Fan
        type: command
        command: M107
Development settings¶
The following settings are only relevant to you if you want to do OctoPrint development.
Defaults¶
devel:
  cache:
    enabled: true
    preemptive: true
  enableCsrfProtection: true
  enableRateLimiter: true
  pluginTimings: false
  showLoadingAnimation: true
  sockJsConnectTimeout: 30.0
  stylesheet: css
  useFrozenDictForPrinterState: true
  webassets:
    bundle: true
    clean_on_startup: true
    minify: true
    minify_plugins: false
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Settings for stylesheet preference. OctoPrint will prefer to use the stylesheet type specified here.
Usually (on a production install) that will be the compiled  Valid values:   | 
  | 
  | 
Settings for OctoPrint’s internal caching.  | 
||
  | 
  | 
Whether to enable caching. Defaults to true. Setting it to false will cause the UI to always be fully rerendered on request to   | 
  | 
  | 
  | 
Whether to enable the preemptive cache.  | 
  | 
  | 
Settings for OctoPrint’s web asset merging and minifying.  | 
||
  | 
  | 
If set to  Note: if this is set to   | 
  | 
  | 
  | 
Whether to delete generated web assets on server startup (forcing a regeneration).  | 
  | 
  | 
  | 
If set to  Note: if   | 
  | 
  | 
  | 
If set to  Note: if   | 
  | 
  | 
  | 
Whether to use the   | 
  | 
  | 
  | 
Enable or disable the loading animation.  | 
  | 
  | 
  | 
Connection timeout for the SockJS connection.  | 
  | 
  | 
  | 
Whether to enable the creation of plugin_timings.log.  | 
  | 
  | 
  | 
Enable or disable the rate limiter. Careful, disabling this reduces security (SECURITY IMPACT!).  | 
  | 
  | 
  | 
Enable or disable the CSRF protection. Careful, disabling this reduces security (SECURITY IMPACT!).  | 
  | 
Estimation¶
Defaults¶
estimation:
  printTime:
    forceDumbAfterMin: 30.0
    forceDumbFromPercent: 0.3
    stableThreshold: 60
    statsWeighingUntil: 0.5
    validityRange: 0.15
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
Parameters for the print time estimation during an ongoing print job.  | 
||
  | 
  | 
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.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
If no estimate could be calculated until this many minutes into the print and no statistical data is available, use dumb linear estimate.  | 
  | 
  | 
  | 
Average fluctuation between individual calculated estimates to consider in stable range. Seconds of difference.  | 
  | 
Events¶
Use the following settings to add shell/gcode commands to be executed on certain events.
Defaults¶
event:
  enabled: true
  subscriptions: []
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Whether event subscriptions should be enabled or not.  | 
  | 
  | 
A list of event subscriptions.  | 
||
  | 
  | 
The event to subscribe to.  | 
required  | 
  | 
  | 
The event name to show on the UI.  | 
unset  | 
  | 
  | 
The command to execute when the event is triggered, either a GCODE or a system command.  | 
required  | 
  | 
  | 
The type of the command. Valid values:   | 
required  | 
  | 
  | 
Whether the event subscription should be enabled.  | 
  | 
  | 
  | 
If set to   | 
  | 
The individual event subscriptions have to be defined like this:
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
The event to subscribe to.  | 
required  | 
  | 
  | 
The event name to show on the UI.  | 
unset  | 
  | 
  | 
The command to execute when the event is triggered, either a GCODE or a system command.  | 
required  | 
  | 
  | 
The type of the command. Valid values:   | 
required  | 
  | 
  | 
Whether the event subscription should be enabled.  | 
  | 
  | 
  | 
If set to   | 
  | 
Notes¶
Note
For debugging purposes, you can also add an additional property debug to your event subscription definitions
that if set to true 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
Executing System Command: logger 'OctoPrint started up'
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
Feature¶
Use the following settings to enable or disable OctoPrint features.
Defaults¶
feature:
  autoUppercaseBlacklist:
  - M117
  - M118
  - M707
  - M708
  enableDragDropUpload: true
  enforceReallyUniversalFilenames: false
  fileDeleteConfirmation: true
  g90InfluencesExtruder: false
  keyboardControl: true
  modelSizeDetection: true
  pollWatched: false
  printCancelConfirmation: true
  printStartConfirmation: false
  rememberFileFolder: false
  sdSupport: true
  temperatureGraph: true
  uploadOverwriteConfirmation: true
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Whether to enable the temperature graph in the UI or not.  | 
  | 
  | 
  | 
Specifies whether support for SD printing and file management should be enabled.  | 
  | 
  | 
  | 
Whether to enable the keyboard control feature in the control tab.  | 
  | 
  | 
  | 
Whether to actively poll the watched folder (  | 
  | 
  | 
  | 
Whether to enable model size detection and warning (  | 
  | 
  | 
  | 
Whether to remember the selected folder on the file manager.  | 
  | 
  | 
  | 
Whether to show a confirmation on print start (  | 
  | 
  | 
  | 
Whether to show a confirmation on print cancelling (  | 
  | 
  | 
  | 
Whether to show a confirmation when about to overwrite an uploaded file.  | 
  | 
  | 
  | 
Whether to show a confirmation when about to delete a file.  | 
  | 
  | 
  | 
Commands that should never be auto-uppercased when sent to the printer through the Terminal tab.  | 
  | 
  | 
  | 
Whether   | 
  | 
  | 
  | 
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   | 
  | 
  | 
  | 
Enable drag and drop upload overlay  | 
  | 
Folder¶
Use the following settings to set custom paths for folders used by OctoPrint.
Defaults¶
folder:
  data: null
  generated: null
  logs: null
  plugins: null
  printerProfiles: null
  scripts: null
  slicingProfiles: null
  timelapse: null
  timelapse_tmp: null
  translations: null
  uploads: null
  virtualSd: null
  watched: null
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Absolute path where to store gcode uploads. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store finished timelase recordings. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store temporary timelapse snapshots. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store logs. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store the virtual printer’s SD card files. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path to the watched folder. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to locate and install single file plugins. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store slicing profiles. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store printer profiles. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store (GCODE) scripts. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store additional translations. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store generated files. Defaults to the   | 
unset  | 
  | 
  | 
Absolute path where to store additional data. Defaults to the   | 
unset  | 
GCODE Analysis¶
Settings pertaining to the server side GCODE analysis implementation.
gcode_analysis:
  bedZ: 0.0
  maxExtruders: 10
  runAt: idle
  throttle_highprio: 0.0
  throttle_lines: 100
  throttle_normalprio: 0.01
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Maximum number of extruders to support/to sanity check for.  | 
  | 
  | 
  | 
Pause between each processed GCODE line batch in normal priority mode, seconds.  | 
  | 
  | 
  | 
Pause between each processed GCODE line batch in high priority mode (e.g. on fresh uploads), seconds.  | 
  | 
  | 
  | 
GCODE line batch size.  | 
  | 
  | 
  | 
Whether to run the analysis only when idle (not printing), regardless of printing state or never. Valid values:   | 
  | 
  | 
  | 
Z position considered the location of the bed.  | 
  | 
Plugin settings¶
The plugins section is where plugins can store their specific settings. It is also where the installed but disabled
plugins are tracked.
plugins:
  _disabled: []
  _flags: {}
  _forcedCompatible: []
  _sortingOrder: {}
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Identifiers of installed but disabled plugins.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
Configured flags for plugins by plugin identifier.  | 
  | 
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
Printer Parameters¶
Defaults¶
printerParameters:
  pauseTriggers: []
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
  | 
Printer Profiles¶
Defaults settings for printer profiles.
Defaults¶
printerProfiles:
  default: null
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
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 Script.
Defaults¶
scripts:
  gcode:
    afterPrintCancelled: '; disable motors
      M84
      ;disable all heaters
      {% snippet ''disable_hotends'' %}
      {% snippet ''disable_bed'' %}
      ;disable fan
      M106 S0'
    afterPrintDone: null
    afterPrintResumed: null
    afterPrinterConnected: null
    afterToolChange: null
    beforePrintPaused: null
    beforePrintStarted: null
    beforePrinterDisconnected: null
    beforeToolChange: null
    snippets:
      disable_bed: '{% if printer_profile.heatedBed %}M140 S0
        {% endif %}'
      disable_hotends: '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0
        {% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{
        tool }} S0
        {% endfor %}{% endif %}'
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
GCODE scripts configuration  | 
||
  | 
  | 
Script run after the connection to the printer has been established.  | 
unset  | 
  | 
  | 
Script run before the printer gets disconnected.  | 
unset  | 
  | 
  | 
Script run before a print job is started.  | 
unset  | 
  | 
  | 
Script run after a print job has been cancelled.  | 
  | 
  | 
  | 
Script run after a print job completes.  | 
unset  | 
  | 
  | 
Script run on pausing a print job.  | 
unset  | 
  | 
  | 
Script run on resuming a print job.  | 
unset  | 
  | 
  | 
Script run before sending a tool change command to the printer.  | 
unset  | 
  | 
  | 
Script run after sending a tool change command to the printer.  | 
unset  | 
  | 
  | 
Additional snippets that can be used in other scripts.  | 
  | 
Serial¶
Use the following settings to configure the serial connection to the printer.
Defaults¶
serial:
  abortHeatupOnCancel: true
  ackMax: 1
  additionalBaudrates: []
  additionalPorts: []
  alwaysSendChecksum: false
  autoconnect: false
  autorefresh: true
  autorefreshInterval: 1
  baudrate: null
  blacklistedBaudrates: []
  blacklistedPorts: []
  blockWhileDwelling: false
  blockedCommands:
  - M0
  - M1
  capabilities:
    autoreport_pos: true
    autoreport_sdstatus: true
    autoreport_temp: true
    busy_protocol: true
    emergency_parser: true
    extended_m20: true
    lfn_write: true
  checksumRequiringCommands:
  - M110
  disableSdPrintingDetection: false
  disconnectOnErrors: true
  emergencyCommands:
  - M112
  - M108
  - M410
  enableShutdownActionCommand: false
  encoding: ascii
  exclusive: true
  externalHeatupDetection: true
  firmwareDetection: true
  helloCommand: M110 N0
  identicalResendsCountdown: 7
  ignoreEmptyPorts: false
  ignoreErrorsFromFirmware: false
  ignoreIdenticalResends: false
  ignoredCommands: []
  lastLineBufferSize: 50
  log: false
  logPositionOnCancel: false
  logPositionOnPause: true
  logResends: true
  longRunningCommands:
  - G4
  - G28
  - G29
  - G30
  - G32
  - M400
  - M226
  - M600
  lowLatency: false
  maxCommunicationTimeouts:
    idle: 2
    long: 5
    printing: 5
  maxConsecutiveResends: 10
  maxNotSdPrinting: 2
  maxWritePasses: 5
  neverSendChecksum: false
  notifySuppressedCommands: warn
  pausingCommands:
  - M0
  - M1
  - M25
  port: null
  repetierTargetTemp: false
  resendRatioStart: 100
  resendRatioThreshold: 10
  sanityCheckTools: true
  sdAlwaysAvailable: false
  sdCancelCommand: M25
  sdLowerCase: false
  sdRelativePath: false
  sendChecksumWithUnknownCommands: false
  sendM112OnError: true
  supportFAsCommand: false
  supportResendsWithoutOk: detect
  supportWait: true
  suppressSecondHello: false
  swallowOkAfterResend: true
  terminalLogSize: 20
  timeout:
    baudrateDetectionPause: 1.0
    communication: 30.0
    communicationBusy: 3.0
    connection: 10.0
    detectionConsecutive: 2.0
    detectionFirst: 10.0
    posAutoreport: 5.0
    positionLogWait: 10.0
    resendOk: 0.5
    sdStatus: 1.0
    sdStatusAutoreport: 1.0
    temperature: 5.0
    temperatureAutoreport: 2.0
    temperatureTargetSet: 2.0
  triggerOkForM29: true
  unknownCommandsNeedAck: false
  useParityWorkaround: detect
  waitForStartOnConnect: false
  waitToLoadSdFileList: true
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
The default port to use to connect to the printer. If unset or set to   | 
unset  | 
  | 
  | 
The default baudrate to use to connect to the printer. If unset or set to 0, the baudrate will be auto-detected.  | 
unset  | 
  | 
  | 
Whether to request exclusive access to the serial port.  | 
  | 
  | 
  | 
Whether to request low latency mode on the serial port.  | 
  | 
  | 
  | 
Whether to try to automatically connect to the printer on startup.  | 
  | 
  | 
  | 
Whether to automatically refresh the port list while no connection is established.  | 
  | 
  | 
  | 
Interval in seconds at which to refresh the port list while no connection is established.  | 
  | 
  | 
  | 
Whether to log whole communication to   | 
  | 
  | 
Timeouts used for the serial connection to the printer, you might want to adjust these if you are experiencing connection problems.  | 
||
  | 
  | 
Timeout during initial detection attempt, in seconds.  | 
  | 
  | 
  | 
Timeout on consecutive detection attempts, in seconds.  | 
  | 
  | 
  | 
Timeout for waiting to establish a connection with the selected port, in seconds.  | 
  | 
  | 
  | 
Timeout during serial communication, in seconds.  | 
  | 
  | 
  | 
Timeout during serial communication when busy protocol support is detected, in seconds.  | 
  | 
  | 
  | 
Timeout after which to query temperature when no target is set, in seconds.  | 
  | 
  | 
  | 
Timeout after which to query temperature when a target is set, in seconds.  | 
  | 
  | 
  | 
Autoreporting interval to request for the temperature report, in seconds.  | 
  | 
  | 
  | 
Timeout after which to query the SD status while SD printing.  | 
  | 
  | 
  | 
Autoreporting interval to request for the SD status report, in seconds.  | 
  | 
  | 
  | 
Autoreporting interval to request for the position report, in seconds.  | 
  | 
  | 
  | 
Timeout after which to trigger an internal   | 
  | 
  | 
  | 
Pause between baudrate detection attempts, in seconds.  | 
  | 
  | 
  | 
Time to wait to receive a position response before considering it unresponded, in seconds.  | 
  | 
  | 
Maximum communication timeouts.  | 
||
  | 
  | 
Max. timeouts when the printer is idle.  | 
  | 
  | 
  | 
Max. timeouts when the printer is printing.  | 
  | 
  | 
  | 
Max. timeouts when a long running command is active.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
Use this to define additional patterns to consider for serial port listing. Must be a list of valid “glob” pattern  | 
  | 
  | 
  | 
Use this to define additional baud rates to offer for connecting to serial ports. Must be a list of valid integers.  | 
  | 
  | 
  | 
Serial ports to be ignored by OctoPrint.  | 
  | 
  | 
  | 
Baudrates to be ignored by OctoPrint.  | 
  | 
  | 
  | 
Commands which are known to take a long time to be acknowledged by the firmware, e.g. homing, dwelling, auto leveling etc.  | 
  | 
  | 
  | 
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   | 
  | 
  | 
  | 
Commands which should not be sent to the printer and just silently ignored. An example of when you may wish to use this would be to manually change a filament on M600, by using that as a Pausing command.  | 
  | 
  | 
  | 
Commands which should cause OctoPrint to pause any ongoing prints.  | 
  | 
  | 
  | 
Commands which are considered emergency commands and will be sent immediately, jumping OctoPrint’s internal queues.  | 
  | 
  | 
  | 
Commands which need to always be send with a checksum.  | 
  | 
  | 
  | 
Command to send in order to initiate a handshake with the printer.  | 
  | 
  | 
  | 
Whether to suppress the second hello command. Might be required for some printer configurations with custom hello commands.  | 
  | 
  | 
  | 
Whether to disconnect from the printer on errors  | 
  | 
  | 
  | 
Whether to completely ignore errors from the firmware.  | 
  | 
  | 
  | 
Size of log lines to keep for logging error context.  | 
  | 
  | 
  | 
  | 
|
  | 
  | 
Whether to log resends to octoprint.log or not. Invaluable debug tool without performance impact, leave on if possible please.  | 
  | 
  | 
  | 
Whether to support resends without follow-up ok. Valid values:   | 
  | 
  | 
  | 
Whether to request and log the current position from the printer on a pause.  | 
  | 
  | 
  | 
Whether to request and log the current position from the printer on a cancel.  | 
  | 
  | 
  | 
Whether to send an abort heatup command on cancel.  | 
  | 
  | 
  | 
Whether OctoPrint should wait for the   | 
  | 
  | 
  | 
Specifies whether OctoPrint should wait to load the SD card file list until the first firmware capability report is processed.  | 
  | 
  | 
  | 
Specifies whether OctoPrint should send linenumber + checksum with every printer command. Needed for successful communication with Repetier firmware.  | 
  | 
  | 
  | 
Specifies whether OctoPrint should never send linenumber + checksum.  | 
  | 
  | 
  | 
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   | 
  | 
  | 
  | 
Specifies whether OctoPrint should also use up acknowledgments (  | 
  | 
  | 
  | 
Specifies whether firmware expects relative paths for selecting SD files.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
  | 
|
  | 
  | 
Command to send to cancel prints from the printer’s memory.  | 
  | 
  | 
  | 
Maximum number of “Not SD printing” messages to allow before considering a print to have been cancelled by the printer.  | 
  | 
  | 
  | 
Whether to ignore any additional   | 
  | 
  | 
  | 
Whether the printer sends repetier style target temperatures in the format   | 
  | 
  | 
  | 
Whether to enable external heatup detection (to detect heatup triggered e.g. through the printer’s LCD panel or while printing from the printer’s memory). Causes issues with Repetier’s “first ok then response” approach to communication, so disable for printers running Repetier firmware.  | 
  | 
  | 
  | 
Whether to support   | 
  | 
  | 
  | 
Whether to ignore identical resends from the printer (  | 
  | 
  | 
  | 
If   | 
  | 
  | 
  | 
Whether to support   | 
  | 
  | 
  | 
Whether to attempt to auto detect the firmware of the printer and adjust settings accordingly (  | 
  | 
  | 
  | 
Whether to block all sending to the printer while a   | 
  | 
  | 
  | 
Whether to use the parity workaround needed for connecting to some printers. Valid values:   | 
  | 
  | 
  | 
Number of times to allow to resend the same line before the print job gets considered as failed.  | 
  | 
  | 
  | 
Whether to send an   | 
  | 
  | 
  | 
Whether to disable the detection of SD print jobs triggered from the printer.  | 
  | 
  | 
  | 
Maximum number of   | 
  | 
  | 
  | 
Whether to senity check the tool count.  | 
  | 
  | 
  | 
Whether to notify about any suppressed commands. Valid values:   | 
  | 
  | 
|||
  | 
  | 
Whether to enable temperature autoreport in the firmware if its support is detected.  | 
  | 
  | 
  | 
Whether to enable SD printing autoreport in the firmware if its support is detected.  | 
  | 
  | 
  | 
Whether to enable position autoreport in the firmware if its support is detected.  | 
  | 
  | 
  | 
Whether to shorten the communication timeout if the firmware seems to support the busy protocol.  | 
  | 
  | 
  | 
Whether to send emergency commands out of band if the firmware seems to support the emergency parser.  | 
  | 
  | 
  | 
Whether to request extended M20 (file list) output from the firmware if its support is detected.  | 
  | 
  | 
  | 
Whether to enable long filename support for SD card writes if the firmware reports support for it.  | 
  | 
  | 
  | 
Percentage of resend requests among all sent lines that should be considered critical.  | 
  | 
  | 
  | 
Line number on which to start tracking the resend ratio.  | 
  | 
  | 
  | 
Whether to ignore if there are no serial ports detected.  | 
  | 
  | 
  | 
Encoding to use when talking to a machine.   | 
  | 
  | 
  | 
Whether to enable support for the shutdown action command, allowing the printer to shut down OctoPrint and the system it’s running on.  | 
  | 
  | 
  | 
Whether to automatically trigger an ok for   | 
  | 
Server¶
Use the following settings to configure the server.
Defaults¶
server:
  allowFraming: false
  allowedLoginRedirectPaths: []
  commands:
    localPipCommand: null
    serverRestartCommand: null
    systemRestartCommand: null
    systemShutdownCommand: null
  cookies:
    samesite: Lax
    secure: false
  diskspace:
    critical: 209715200
    warning: 524288000
  firstRun: true
  heartbeat: 900
  host: null
  ignoreIncompleteStartup: false
  ipCheck:
    enabled: true
    trustedSubnets: []
  maxSize: 102400
  onlineCheck:
    enabled: null
    host: 1.1.1.1
    interval: 900
    name: octoprint.org
    port: 53
  pluginBlacklist:
    enabled: null
    timeout: 3.05
    ttl: 900
    url: https://plugins.octoprint.org/blacklist.json
  port: 5000
  preemptiveCache:
    exceptions: []
    until: 7
  pythonEolCheck:
    enabled: true
    fallback:
      '3.7':
        date: '2023-06-27'
        last_octoprint: 1.11.*
      '3.8':
        date: '2024-10-31'
        last_octoprint: null
    ttl: 1440
    url: https://get.octoprint.org/python-eol
  reverseProxy:
    hostFallback: null
    hostHeader: X-Forwarded-Host
    portFallback: null
    portHeader: null
    prefixFallback: null
    prefixHeader: X-Script-Name
    schemeFallback: null
    schemeHeader: X-Scheme
    serverFallback: null
    serverHeader: null
    trustLocalhostProxies: true
    trustedProxies: []
  secretKey: null
  seenWizards: {}
  startOnceInSafeMode: false
  uploads:
    maxSize: 1073741824
    nameSuffix: name
    pathSuffix: path
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
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  | 
  | 
  | 
Use this option to define the port to which to bind the server.  | 
  | 
  | 
  | 
If this option is   | 
  | 
  | 
  | 
If this option is   | 
  | 
  | 
  | 
Set this to   | 
  | 
  | 
  | 
Tracking of seen wizards and versions. You should usually not have to touch this.  | 
  | 
  | 
  | 
Secret key for encrypting cookies and such, randomly generated on first run.  | 
unset  | 
  | 
  | 
Interval in which to log the server heartbeat, defaults to every 15min.  | 
  | 
  | 
  | 
||
  | 
  | 
The request header from which to determine the URL prefix under which OctoPrint is served by the reverse proxy.  | 
  | 
  | 
  | 
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.  | 
  | 
  | 
  | 
The request header from which to determine the host under which OctoPrint is served by the reverse proxy.  | 
  | 
  | 
  | 
The request header from which to determine the server name under which OctoPrint is served by the reverse proxy. Can also be read from the   | 
unset  | 
  | 
  | 
The request header from which to determine the post number under which OctoPrint is served by the reverse proxy. Can also be read from the   | 
unset  | 
  | 
  | 
Use this option to define an optional URL prefix (with a leading   | 
unset  | 
  | 
  | 
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 termination but can’t
configure said reverse proxy to send a scheme HTTP header (  | 
unset  | 
  | 
  | 
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 (  | 
unset  | 
  | 
  | 
Use this option to define an optional forced server name 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 (  | 
unset  | 
  | 
  | 
Use this option to define an optional forced port 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 (  | 
unset  | 
  | 
  | 
List of trusted proxy servers for which to ignore the IP address when trying to determine the connecting
client’s IP address. A reverse proxy on the same machine as OctoPrint (e.g. as found on OctoPi) will be
handled correctly by default through   | 
  | 
  | 
  | 
Whether to trust the local machine to act as a reverse proxy. Defaults to true, will ensure that
 If you want to explicitly disable trusting the local machine, set this to   | 
  | 
  | 
  | 
||
  | 
  | 
Maximum size of uploaded files in bytes, defaults to 1GB.  | 
  | 
  | 
  | 
Suffix used for storing the filename in the file upload headers when streaming uploads.  | 
  | 
  | 
  | 
Suffix used for storing the path to the temporary file in the file upload headers when streaming uploads.  | 
  | 
  | 
  | 
Maximum size of requests other than file uploads in bytes, defaults to 100KB.  | 
  | 
  | 
Commands to restart/shutdown octoprint or the system it’s running on.  | 
||
  | 
  | 
Command to shut down the system OctoPrint is running on.  | 
unset  | 
  | 
  | 
Command to restart the system OctoPrint is running on.  | 
unset  | 
  | 
  | 
Command to restart OctoPrint.  | 
unset  | 
  | 
  | 
 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  | 
  | 
Configuration of the regular online connectivity check.  | 
||
  | 
  | 
Whether the online check is enabled. Ships unset, the user will be asked to make a decision as part of the setup wizard.  | 
unset  | 
  | 
  | 
Interval in which to check for online connectivity (in seconds), defaults to 15 minutes.  | 
  | 
  | 
  | 
DNS host against which to check, defaults to Cloudflare’s DNS.  | 
  | 
  | 
  | 
DNS port against which to check, defaults to the standard DNS port.  | 
  | 
  | 
  | 
Host name for which to check name resolution, defaults to OctoPrint’s main domain.  | 
  | 
  | 
Configuration of the plugin blacklist.  | 
||
  | 
  | 
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  | 
  | 
  | 
The URL from which to fetch the blacklist.  | 
  | 
  | 
  | 
Time to live of the cached blacklist, in seconds (default: 15 minutes).  | 
  | 
  | 
  | 
Timeout for fetching the blacklist, in seconds (default: 3.05 seconds).  | 
  | 
  | 
Configuration of the Python EOL warning.  | 
||
  | 
  | 
Whether to enable the Python EOL warning.  | 
  | 
  | 
  | 
URL to fetch the Python EOL data from.  | 
  | 
  | 
  | 
Time to live of the cached Python EOL data, in minutes (default: 24 hours).  | 
  | 
  | 
  | 
Fallback data for Python EOL data, in case the online check fails.  | 
  | 
  | 
Settings of when to display what disk space warning.  | 
||
  | 
  | 
Threshold (bytes) after which to consider disk space becoming sparse, defaults to 500MB.  | 
  | 
  | 
  | 
Threshold (bytes) after which to consider disk space becoming critical, defaults to 200MB.  | 
  | 
  | 
Configuration of the preemptive cache.  | 
||
  | 
  | 
Which server paths to exclude from the preemptive cache, e.g.   | 
  | 
  | 
  | 
How many days to leave unused entries in the preemptive cache config.  | 
  | 
  | 
Configuration of the client IP check to warn about connections from external networks.  | 
||
  | 
  | 
Whether to enable the check.  | 
  | 
  | 
  | 
Additional non-local subnets to consider trusted, in CIDR notation, e.g.   | 
  | 
  | 
  | 
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.  | 
  | 
  | 
Settings for further configuration of the cookies that OctoPrint sets (login, remember me, …).  | 
||
  | 
  | 
Whether to set the   | 
  | 
  | 
  | 
 Be advised that if forced unset, this has security implications as many browsers now default to   | 
  | 
  | 
  | 
List of paths that are allowed to be used as redirect targets for the login page, in addition to the default ones (  | 
  | 
Python EOL Check fallback data
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
The date when the Python version will reach EOL, in format YYYY-MM-DD.  | 
required  | 
  | 
  | 
The last OctoPrint version that will support this Python version, optional.  | 
unset  | 
Notes¶
Note
If you want to run OctoPrint behind a reverse proxy such as HAProxy or Nginx and use a different base URL than the
server root / you have two options to achieve this. One approach is using the configuration settings baseUrl and
scheme mentioned above in which OctoPrint will only work under the configured base URL.
The second and better approach is to make your proxy send a couple of custom headers with each forwarded requests:
X-Script-Name: should contain your custom baseUrl (absolute server path), e.g./octoprintX-Scheme: should contain your custom URL scheme to use (if different fromhttp), e.g.https
If you use these headers OctoPrint will work both via the reverse proxy as well as when called directly. Take a look into OctoPrint’s wiki for some examples on how to configure this.
Note
If you want to embed OctoPrint in a frame, you’ll need to set allowFraming to true or your browser will
prevent this.
In future browser builds you will also have to make sure you frame is on the same domain as OctoPrint or that
OctoPrint is served via https through a reverse proxy and has set cookies.secure to true or your browser
will refuse to persist cookies and logging in will not work.
See also Cookies default to SameSite=Lax and Reject insecure SameSite=None cookies as well as this ticket on why OctoPrint cannot solve this on its own/ship with https that doesn’t cause scary warnings in your browser.
Slicing¶
Settings for the built-in slicing support.
Defaults¶
slicing:
  defaultProfiles: {}
  defaultSlicer: null
  enabled: true
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Whether to enable slicing support or not.  | 
  | 
  | 
  | 
Default slicer to use.  | 
unset  | 
  | 
  | 
Default slicing profiles per slicer, maps slicer identifier to profile identifier.  | 
  | 
System¶
Use the following settings to add custom system commands to the “System” dropdown within OctoPrint’s top bar.
Defaults¶
system:
  actions: []
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
A list of system actions to show in the UI.  | 
||
  | 
  | 
The identifier used internally to identify the action. Set to   | 
required  | 
  | 
  | 
The name of the action that will be shown on the menu. Must be set if the action is not a divider.  | 
unset  | 
  | 
  | 
The command to execute when the action is selected. Must be set if the action is not a divider.  | 
unset  | 
  | 
  | 
Whether to run the command asynchronously.  | 
  | 
  | 
  | 
An optional confirmation message to show before executing the command.  | 
unset  | 
  | 
  | 
Whether to require a fresh credential check for executing the command.  | 
  | 
Actions consist of a name shown to the user, an action identifier used by the code and the actual
command including any argument needed for its execution.
By default OctoPrint blocks until the command has returned so that the exit code can be used to show a success
or failure message; use the flag async: true for commands that don’t return.
Optionally you can add a confirmation message to display before actually executing the command (should be set to False if a confirmation dialog is not desired).
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
The identifier used internally to identify the action. Set to   | 
required  | 
  | 
  | 
The name of the action that will be shown on the menu. Must be set if the action is not a divider.  | 
unset  | 
  | 
  | 
The command to execute when the action is selected. Must be set if the action is not a divider.  | 
unset  | 
  | 
  | 
Whether to run the command asynchronously.  | 
  | 
  | 
  | 
An optional confirmation message to show before executing the command.  | 
unset  | 
  | 
  | 
Whether to require a fresh credential check for executing the command.  | 
  | 
Example¶
The following example defines a command for shutting down the system under Linux. It assumes that the user under which OctoPrint is running is allowed to do this without password entry:
system:
  actions:
  - name: Shutdown
    action: shutdown
    command: sudo shutdown -h now
    confirm: You are about to shutdown the system.
You can also add a divider by setting action to divider like this:
system:
  actions:
  - action: divider
Temperature¶
Use the following settings to configure temperature profiles which will be displayed in the temperature tab.
Defaults¶
temperature:
  cutoff: 30
  profiles:
  - bed: 100
    extruder: 210
    name: ABS
  - bed: 60
    extruder: 180
    name: PLA
  sendAutomatically: false
  sendAutomaticallyAfter: 1
Data model¶
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
Temperature profiles to offer in the UI for quick pre-heating.  | 
||
  | 
  | 
Name of the profile.  | 
required  | 
  | 
  | 
Hotend temperature to set with the profile.  | 
required  | 
  | 
  | 
Bed temperature to set with the profile.  | 
required  | 
  | 
  | 
Cut off time for the temperature data, in minutes.  | 
  | 
  | 
  | 
Whether to send new temperature settings made in the UI automatically.  | 
  | 
  | 
  | 
After what time to send the new temperature settings automatically, in seconds.  | 
  | 
The individual temperature profiles are defined like this:
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
Name of the profile.  | 
required  | 
  | 
  | 
Hotend temperature to set with the profile.  | 
required  | 
  | 
  | 
Bed temperature to set with the profile.  | 
required  | 
Terminal Filters¶
Use the following settings to define a set of terminal filters to display in the terminal tab for filtering certain lines from the display terminal log.
Defaults¶
terminalFilters:
- 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  | 
|---|---|---|---|
  | 
  | 
The name of the filter.  | 
required  | 
  | 
  | 
The regular expression to match. Use JavaScript regular expressions.  | 
required  | 
Webcam¶
Use the following settings to configure webcam support:
webcam:
  bitrate: 10000k
  cleanTmpAfterDays: 7
  defaultWebcam: classic
  ffmpeg: null
  ffmpegCommandline: '{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec}
    -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"'
  ffmpegThreads: 1
  ffmpegThumbnailCommandline: '{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7
    "{output}"'
  ffmpegVideoCodec: libx264
  renderAfterPrintDelay: 0
  snapshotWebcam: classic
  timelapse:
    fps: 25
    options:
      capturePostRoll: null
      interval: null
      retractionZHop: null
    postRoll: 0
    renderAfterPrint: always
    type: 'off'
  timelapseEnabled: true
  watermark: true
  webcamEnabled: true
Name  | 
Type  | 
Description  | 
Default  | 
|---|---|---|---|
  | 
  | 
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.  | 
  | 
  | 
  | 
Use this option to enable timelapse support via snapshot, e.g. via MJPG-Streamer. Timelapse support will be disabled if not set.  | 
  | 
  | 
  | 
Path to ffmpeg binary to use for creating timelapse recordings. Timelapse support will be disabled if not set.  | 
unset  | 
  | 
  | 
Number of how many threads to instruct ffmpeg to use for encoding.  | 
  | 
  | 
  | 
Videocodec to be used for encoding.  | 
  | 
  | 
  | 
The bitrate to use for rendering the timelapse video. This gets directly passed to ffmpeg.  | 
  | 
  | 
  | 
Whether to include a “created with OctoPrint” watermark in the generated timelapse recordings.  | 
  | 
  | 
  | 
The full commandline to use for rendering timelapse recordings through ffmpeg. Supports the following placeholders: 
  | 
  | 
  | 
  | 
The full commandline to use for generating thumbnails through ffmpeg. Supports the following placeholders: 
  | 
  | 
  | 
The default timelapse settings.  | 
||
  | 
  | 
The timelapse type. Valid values:   | 
  | 
  | 
  | 
The framerate at which to render the movie.  | 
  | 
  | 
  | 
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.   | 
  | 
  | 
  | 
Determines whether rendering the timelapse should be done automatically after the print is finished. This can be done always, only after successful prints, only after failed prints, or never. Valid values:   | 
  | 
  | 
Additional options depending on the timelapse type.  | 
||
  | 
  | 
  | 
unset  | 
  | 
  | 
  | 
unset  | 
  | 
  | 
  | 
unset  | 
  | 
  | 
After how many days unrendered timelapses will be deleted.  | 
  | 
  | 
  | 
Delay to wait for after print end before rendering timelapse, in seconds. If another print gets started during this time, the rendering will be postponed.  | 
  | 
  | 
  | 
The name of the default webcam  | 
  | 
  | 
  | 
The name of the default webcam to use for snapshots  | 
  |