# this is just some subset of the config. comments WILL disappear, octoprint edits this file.
# for full reference, see:
# https://docs.octoprint.org/en/master/configuration/config_yaml.html

access_control:
  # The YAML user file to use. If left out defaults to users.yaml in the default configuration folder.
  userfile: /etc/octoprint/users.yaml

  # If set to true, will automatically log on clients originating from any of the networks defined in
  # "localNetworks" as the user defined in "autologinAs". Defaults to false.
  #autologinLocal: false

  # The name of the user to automatically log on clients originating from "localNetworks" as. Must
  # be the name of one of your configured users.
  #autologinAs: someUser

  # 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 (see https://code.google.com/p/haproxy-docs/wiki/forwardfor on how to
  # configure the sending of this header in HAProxy). Defaults to 127.0.0.0/8 (so basically anything
  # originating from localhost).
  #localNetworks:
  #- 127.0.0.0/8
  #- 192.168.1.0/24

  # 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. Your should ONLY ENABLE THIS if your
  # OctoPrint instance is only accessible through a connection locked down through Basic Authentication!
  #trustBasicAuthentication: false

  # 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. Use with caution.
  #checkBasicAuthenticationPassword: true

  # 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. Your should ONLY ENABLE THIS if your
  # OctoPrint instance is only accessible through a connection locked down through an authenticating reverse proxy!
  #trustRemoteUser: false

  # Header used by the reverse proxy to convey the authenticated user.
  #remoteUserHeader: REMOTE_USER

  # If a remote user is not found, add them. Use this only if all users from the remote system can use OctoPrint.
  #addRemoteUsers: false


api:
  # Whether to enable the API
  #enabled: True

  # Current API key needed for accessing the API
  #key: ...

  # Whether to allow cross origin access to the API or not
  #allowCrossOrigin: false


folder:
  # Absolute path where to store gcode uploads. Defaults to the uploads folder in the OctoPrint settings folder
  uploads: /var/lib/octoprint/uploads

  # Absolute path where to store finished timelapse recordings. Defaults to the timelapse folder in the OctoPrint
  # settings dir
  timelapse: /var/lib/octoprint/timelapse

  # Absolute path where to store temporary timelapse files. Defaults to the timelapse/tmp folder in the OctoPrint
  # settings dir
  timelapse_tmp: /var/lib/octoprint/timelapse_tmp

  # Absolute path where to store log files. Defaults to the logs folder in the OctoPrint settings dir
  logs: /var/log/octoprint

  # Absolute path to the virtual printer's simulated SD card. Only useful for development, just ignore
  # it otherwise
  virtualSd: /var/lib/octoprint/virtualSd

  # Absolute path to a folder being watched for new files which then get automatically
  # added to OctoPrint (and deleted from that folder). Can e.g. be used to define a folder which
  # can then be mounted from remote machines and used as local folder for quickly adding downloaded
  # and/or sliced objects to print in the future.
  watched: /run/octoprint/watched

  # Absolute path to a folder where manually installed plugins may reside
  plugins: /var/lib/octoprint/plugins

  # Absolute path where to store slicing profiles
  slicingProfiles: /etc/octoprint/slicingProfiles

  # Absolute path where to store printer profiles
  printerProfiles: /etc/octoprint/printerProfiles

  # Absolute path where to store (GCODE) scripts
  scripts: /var/lib/octoprint/scripts


server:
  # Use this option to define the host to which to bind the server, defaults to "0.0.0.0" (= all
  # interfaces)
  host: 0.0.0.0

  # Use this option to define the port to which to bind the server, defaults to 5000
  port: 5000

  # If this option is true, OctoPrint will show the First Run wizard and set the setting to
  # false after that completes
  firstRun: true

  # Settings if OctoPrint is running behind a reverse proxy (haproxy, nginx, apache, ...).
  # 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:

    # The request header from which to determine the URL prefix under which OctoPrint
    # is served by the reverse proxy
    #prefixHeader: X-Script-Name

    # 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
    #schemeHeader: X-Scheme

    # The request header from which to determine the host under which OctoPrint
    # is served by the reverse proxy
    #hostHeader: X-Forwarded-Host

    # 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.
    #prefixFallback: ""

    # 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.
    #schemeFallback: ""

    # 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.
    #hostFallback: ""

    # 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.
    #trustedDownstream:
    #- 192.168.1.254
    #- 192.168.23.42
