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
- plugin_serial_connector
- 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
thumbnails:
filelistAlignment: left
filelistEnabled: true
filelistPreview: false
filelistScale: 25
stateEnabled: true
stateScale: 75
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. |
|
|
Configured how thumbnails are shown in the UI |
||
|
|
Whether to display thumbnails for printables on the file list, if available. |
|
|
|
Percentage of file list width to use for thumbnail. Note that if the image is smaller, it won’t be scaled up. |
|
|
|
Alignment of thumbnail in file list. Valid values: |
|
|
|
Whether to enable a preview popover with the full thumbnail size when hovering over the thumbnail in the file list. |
|
|
|
Whether to display thumbnails for printable on the state panel, if available. |
|
|
|
Percentage of state panel width to use for thumbnail. Note that if the image is smaller, it won’t be scaled up. |
|
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 |
|
|
An optional description of the control, will be displayed as the tooltip on the button or label for controls which only display output. |
|
|
|
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: |
|
|
|
Whether the container should start out collapsed by default. |
|
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¶
The serial settings have been moved into the bundled “Serial Connector” plugin.
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 |
|