From 0f70037ffc95d1a763c845236261be00bdf6a232 Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Wed, 6 Apr 2022 08:41:19 -0400 Subject: [PATCH] docs: update documentation for config changes Signed-off-by: Eric Callahan --- README.md | 2 +- docs/configuration.md | 25 ++++++ docs/user_changes.md | 6 ++ docs/web_api.md | 200 ++++++++++++++++++++++++++++++++---------- 4 files changed, 185 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 263af61..809ac7d 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ to see if any action is necessary on their part. The date of the most recent change is included. Users:\ -[user_changes.md](https://moonraker.readthedocs.io/en/latest/user_changes/) - Febuary 22nd 2022 +[user_changes.md](https://moonraker.readthedocs.io/en/latest/user_changes/) - April 6th 2022 Developers:\ [api_changes.md](https://moonraker.readthedocs.io/en/latest/api_changes/) - March 4th 2022 diff --git a/docs/configuration.md b/docs/configuration.md index 3e80388..89c420a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1808,6 +1808,31 @@ body: {event_args[1].message} attach: http://192.168.1.100/webcam/?action=snapshot ``` +## Include directives + +It is possible to include configuration from other files via include +directives. Include directives in Moonraker are specified identically +to those in Klipper, ie: `[include relative_path]`. The `relative_path` +is a path relative to the configuration file's parent, and may include +wildcards. For example: + +```ini +# moonraker.conf + +[include my_extra_config.conf] + +[include subfolder/*.conf] + +``` + +If a section is duplicated in an included file the options from both +sections will be merged, with the latest file parsed taking precedence. +When wildcards are specified all matches are parsed in alphabetical +order. If includes are nested (ie: an included file specifies an +`[include]` directive), those includes will be parsed after all matches +of the previous include. + + ## Jinja2 Templates Some Moonraker configuration options make use of Jinja2 Templates. For diff --git a/docs/user_changes.md b/docs/user_changes.md index a291848..3a1c66c 100644 --- a/docs/user_changes.md +++ b/docs/user_changes.md @@ -2,6 +2,12 @@ This file will track changes that require user intervention, such as a configuration change or a reinstallation. +### April 6th 2022 +- The ability to configure core components in the `[server]`section + is now deprecated. When legacy items are detected in `[server]` a + warning will be generated. It is crucially important to move configuration + to the correct section as in the future it will be a hard requirement. + ### Feburary 22nd 2022 - The `on_when_upload_queued` option for [power] devices has been deprecated in favor of `on_when_job_queued`. As the new option diff --git a/docs/web_api.md b/docs/web_api.md index fc1d09f..3cc296d 100644 --- a/docs/web_api.md +++ b/docs/web_api.md @@ -588,55 +588,161 @@ included. ```json { - "config": { - "server": { - "host": "0.0.0.0", - "port": 7125, - "klippy_uds_address": "/tmp/klippy_uds", - "max_upload_size": 210, - "enable_debug_logging": true, - "database_path": "~/.moonraker_database", - "config_path": "~/printer_config", - "temperature_store_size": 100, - "gcode_store_size": 50 + { + "config": { + "server": { + "host": "0.0.0.0", + "port": 7125, + "ssl_port": 7130, + "enable_debug_logging": true, + "enable_asyncio_debug": false, + "klippy_uds_address": "/tmp/klippy_uds", + "max_upload_size": 210, + "ssl_certificate_path": null, + "ssl_key_path": null + }, + "dbus_manager": {}, + "database": { + "database_path": "~/.moonraker_database", + "enable_database_debug": false + }, + "file_manager": { + "enable_object_processing": true, + "queue_gcode_uploads": true, + "config_path": "~/printer_config", + "log_path": "~/logs" + }, + "klippy_apis": {}, + "machine": { + "provider": "systemd_dbus" + }, + "shell_command": {}, + "data_store": { + "temperature_store_size": 1200, + "gcode_store_size": 1000 + }, + "proc_stats": {}, + "job_state": {}, + "job_queue": { + "load_on_startup": true, + "automatic_transition": false, + "job_transition_delay": 2, + "job_transition_gcode": "\nM118 Transitioning to next job..." + }, + "http_client": {}, + "announcements": { + "dev_mode": false, + "subscriptions": [] + }, + "authorization": { + "login_timeout": 90, + "force_logins": false, + "cors_domains": [ + "*.home", + "http://my.mainsail.xyz", + "http://app.fluidd.xyz", + "*://localhost:*" + ], + "trusted_clients": [ + "192.168.1.0/24" + ] + }, + "zeroconf": {}, + "octoprint_compat": { + "enable_ufp": true, + "flip_h": false, + "flip_v": false, + "rotate_90": false, + "stream_url": "/webcam/?action=stream", + "webcam_enabled": true + }, + "history": {}, + "secrets": { + "secrets_path": "~/moonraker_secrets.ini" + }, + "mqtt": { + "address": "eric-work.home", + "port": 1883, + "username": "{secrets.mqtt_credentials.username}", + "password_file": null, + "password": "{secrets.mqtt_credentials.password}", + "mqtt_protocol": "v3.1.1", + "instance_name": "pi-debugger", + "default_qos": 0, + "status_objects": { + "webhooks": null, + "toolhead": "position,print_time", + "idle_timeout": "state", + "gcode_macro M118": null + }, + "api_qos": 0, + "enable_moonraker_api": true + }, + "template": {} }, - "authorization": { - "api_key_file": "~/.moonraker_api_key", - "enabled": true, - "cors_domains": "\nhttp://my.mainsail.xyz\nhttp://app.fluidd.xyz", - "trusted_clients": "\n192.168.1.0/24" + "orig": { + "DEFAULT": {}, + "server": { + "enable_debug_logging": "True", + "max_upload_size": "210" + }, + "file_manager": { + "config_path": "~/printer_config", + "log_path": "~/logs", + "queue_gcode_uploads": "True", + "enable_object_processing": "True" + }, + "machine": { + "provider": "systemd_dbus" + }, + "announcements": {}, + "job_queue": { + "job_transition_delay": "2.", + "job_transition_gcode": "\nM118 Transitioning to next job...", + "load_on_startup": "True" + }, + "authorization": { + "trusted_clients": "\n192.168.1.0/24", + "cors_domains": "\n*.home\nhttp://my.mainsail.xyz\nhttp://app.fluidd.xyz\n*://localhost:*" + }, + "zeroconf": {}, + "octoprint_compat": {}, + "history": {}, + "secrets": { + "secrets_path": "~/moonraker_secrets.ini" + }, + "mqtt": { + "address": "eric-work.home", + "port": "1883", + "username": "{secrets.mqtt_credentials.username}", + "password": "{secrets.mqtt_credentials.password}", + "enable_moonraker_api": "True", + "status_objects": "\nwebhooks\ntoolhead=position,print_time\nidle_timeout=state\ngcode_macro M118" + } }, - "system_args": {}, - "history": {}, - "octoprint_compat": {}, - "update_manager": { - "enable_auto_refresh": true, - "distro": "debian", - "enable_repo_debug": true, - "client_repo": null - }, - "update_manager static debian moonraker": {}, - "update_manager client mainsail": { - "type": "web", - "repo": "mainsail-crew/mainsail", - "path": "~/mainsail", - "persistent_files": null - }, - "update_manager client fluidd": { - "type": "web", - "repo": "fluidd-core/fluidd", - "path": "~/fluidd", - "persistent_files": null - }, - "power green_led": { - "type": "gpio", - "locked_while_printing": false, - "off_when_shutdown": false, - "restart_klipper_when_powered": false, - "pin": "gpiochip0/gpio26", - "initial_state": false - }, - "update_manager static debian klipper": {} + "files": [ + { + "filename": "moonraker.conf", + "sections": [ + "server", + "file_manager", + "machine", + "announcements", + "job_queue", + "authorization", + "zeroconf", + "octoprint_compat", + "history", + "secrets" + ] + }, + { + "filename": "include/extras.conf", + "sections": [ + "mqtt" + ] + } + ] } } ```