Skip to content

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#

api:
  key:
  apps: {}
  allowCrossOrigin: false

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 " [OctoPrint]") and in the navigation bar (as "OctoPrint: <>") ''
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:

appearance:
  components:
    order:
      tab:
        - plugin_helloworld

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#

controls: []

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 to match against lines received from the printer to retrieve information from it (e.g. specific output). Together with 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#

events:
  enabled: true
  subscriptions: []

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

Executing System Command: logger 'OctoPrint started up'

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#

plugins:
  _disabled: []
  _forcedCompatible: []
  _sortingOrder: {}

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#

printerParameters:
  pauseTriggers: []

Data model#

Name Type Description Default
pauseTriggers List[str] []

printerProfiles#

Defaults#

printerProfiles:
  default:

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#

slicing:
  enabled: true
  defaultSlicer:
  defaultProfiles: {}

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#

system:
  actions: []

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'