Git Product home page Git Product logo

klipper-web-control-docker's Introduction

Mainsail Multiarch Image CI Klipper Moonraker Multiarch Image CI

klipper-web-control-docker

Klipper with Moonraker shipped with Fluidd and/or Mainsail

  • get your printer to the next level!
  • Docker Compose config and Dockerfiles provided!
  • Build with Github actions and deployed to https://hub.docker.com/u/dimalo
  • Docker multiarch builds with best practices

Features

  • Dockerhub images support x64, ARM64, ARM32v7 & ARM32v6

  • Docker multistage builds for optimized image sizes

  • fully integrated klipper image with moonraker enabled

    • startup management with supervisord & dependent startup (klipper starts first, then only if klipper is running moonraker is started)
  • Optionally use the klipper_z_calibration-extension

  • collection of useful klipper macros see client_macros.cfg

    • Nozzle prime line with random Y starting point

      Don't use the same starting point for priming to reduce bed wear!

    • safe filament load / unload / change, which checks for sufficient (configurable) nozzle temperature

    • best practice start gcode:

      Please modify this to your needs! This macro works well on my cartesian and core xy machines and only homes Z as soon as the nozzle is hot, so leftover extrusions don't smash into the bed when they're cold.

      Example for PrusaSlicer start gcode:

      ; Making sure PrusaSlicer doesn't inject heatup gcode...
      M104 S0
      M190 S0
      ; Run START_PRINT macro
      START_PRINT T_BED=[first_layer_bed_temperature] T_EXTRUDER=[first_layer_temperature]
      
    • several versions of pause/cancel/end, to either present the toolhead or the print (and get the toolhead out of the way) - check the defaults!

    • park toolhead with M125 (default X25 Y0)

    • support delay with display output with COUNTDOWN

    Please be careful to not run the macros without making sure they work with your printer!

  • collection of calibration macros (for example manual bed leveling) see calibration_macros.cfg

  • complete Klipper setup with web control client

    • supports Fluidd
    • supports Mainsail
    • you can even run both in parallel!
  • only your printer.cfg is required

    • the services start without it, so you can supply your config through the web UI
    • you can mount your config file to /home/klippy/.config/printer.cfg, and klipper will pick it up after a restart

Getting started

Prerequisites:

  • Your klipper host machine runs Linux or MacOS (Windows was not tested yet)
    • (MacOS) Currently it is not possible to expose serial devices to a container in MacOS Docker. This is a known issue with Docker (docker/for-mac#900)
  • You have docker and docker-compose installed on your machine
  • You have flashed your printer with the appropriate .bin
  • You have your printer connected to your machine and you know it's serial mount point (e.g. /dev/ttyACM0 or /dev/ttyUSB0)
  • ARM32v6 (Raspberry Pi Zero and 1) requires Docker 20. Fluidd is not yet supported

Install the services

  1. clone this repository and open it or navigate to it in your terminal
  2. modify docker-compose.yml to your needs
    • set serial port of your printer
    • mount printer.cfg if already prepared (else you will be able to set it up later as well...)
  3. run docker-compose pull && docker-compose up if you want to use the provided dockerhub images, else run docker-compose up to first build them on your host
  4. watch the services being set up
    • make sure you have no port conflicts on 7125, 8010 and 8011
    • make sure klipper and moonraker started
    • leave the compose session running
  5. test the frontends
  6. configure your printer
    • modify / upload printer.cfg, if not mounted already
    • check if klipper is able to connect to the printer
    • follow klippers documentation to test your printers functionality

If things are running fine now...

Quit the compose session with Ctrl+Cand run docker-compose up -d.

Happy 3D Printing!

If things are not running...

No serial connection:

Check the permissions on the serial device in the klipper host.

ls -lsa /dev/ttyACM0

Supply the group permissions to the docker-compose config in docker-compose.yml build args for klipper.

Run docker-compose build

After build run docker-compose up -d and see if it works.

Klipper is crashing:

(from #25)

Klipper crashes with log similar to:

klipper Fatal Python error: pyinit_main: can't initialize time
klipper | Python runtime state: core initialized
klipper | PermissionError: [Errno 1] Operation not permitted

check your libseccomp version and update if needed (see https://docs.linuxserver.io/faq#libseccomp)

Features not implemented or not tested (yet)

  • compiling klipper.bin for your printer (will need compile tools which bloat the image so this will likely not be implemented)
  • automatic updates for klipper/moonraker (partly working as repos are getting updated but no dependency installs happen - update the container with docker-compose pull instead)
  • automatic updates for the frontend (update the container with docker-compose pull instead)
  • CI pipeline to build images as upstream repos change

Credits

klipper-web-control-docker's People

Contributors

adamnock avatar ahalekelly avatar cedstrom avatar dimalo avatar ruthgrace avatar s0nify avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

klipper-web-control-docker's Issues

Fluidd UI not working propperly

Hi

I can access the printer via Mainsail but not via Fluidd

image

I'm getting: Authorization error

and this:
{"error": {"code": 404, "message": "Not Found", "traceback": "Traceback (most recent call last):\n\n File \"/home/klippy/moonraker-env/lib/python3.9/site-packages/tornado/web.py\", line 1681, in _execute\n result = self.prepare()\n\n File \"/home/klippy/moonraker/moonraker/app.py\", line 786, in prepare\n raise tornado.web.HTTPError(404)\n\ntornado.web.HTTPError: HTTP 404: Not Found\n"}}

whenever accessing the http://{moonraker_ip}/access

And this too in Fluidd
image

Specs:
Raspberry Pi 4
Klipper v0.9.1-580-g478f26ca
Moonraker v0.6.0-160-gd3df568

klipper version tags

Hi,

Would it be possible to include klipper's version (and possibly moonraker) in the klipper-moonraker image's tags corresponding to the klipper repo's tags for the builds that are not just daily builds of the master branch?

That would be convenient to be able to follow the main releases.

for instance:

# both on last tag
klipper-moonraker:0.10.0-0.7.1
# alias
klipper-moonraker:last-stable
# klipper from main branch, moonraker tag
klipper-moonraker:20211031-0.7.1
# daily build on a non-tag day
klipper-moonraker:20211031

Thank you!

Support for arm32v6 Raspberry Pi Zero?

Raspberry Pi is by far the most popular way to run Klipper, but not all of them run ARM v7. Do you what it would take to compile a docker image for the arm32v6 architecture to support the Pi Zero W and Pi 1? On my Zero W, the containers all exit with code 139, which I thought was probably the architecture mismatch.

moonraker image contains wrong path to config

sha256:4aca6860d9d8e1957b0b098a27beb7b4f7dfdea84bd953934dbc5bc544c742e1
on layer 23
"23 | 0 B | ENV CONFIG_DIR=/home/klippy/.config -- | -- | --"
we still have incorrect path for config dir which differs from config path in klipper.ini

Home Assistant Addon

This is awesome! I had honestly been wondering where this was.

I'm looking to run this as a Home Assistant Addon so that I can use it with Home Assistant OS, not sure if this is something you would be interested in pursing. Essentially this would boil down to creating a config file for the repo and directly communicating from the frontend to the klipper/moonraker container (simply need to change the hostnames it connects to). Pretty sure it would be relatively simple using s6, but I'm not sure about supervisord.

klipper-moonraker container doesn't work

Seems as thought he klipper-moonraker container is broken. I tested latest as well as the one that was pushed yesterday, but I'm getting the python error:

Traceback (most recent call last):
  File "/home/klippy/klipper/klippy/klippy.py", line 8, in <module>
    import util, reactor, queuelogger, msgproto
  File "/home/klippy/klipper/klippy/reactor.py", line 6, in <module>
    import os, gc, select, math, time, logging, Queue as queue
ModuleNotFoundError: No module named 'Queue'

This is a common error when trying to run a python2 project with python3.

Can't perform input shaper tuning due to bad klippy-env

I just finished tuning my klipper input shaper, but not without issues.
Looks like the provided python env in ~/klippy-env has issues, more specifically it returns errors when running klippy-env/bin/pip install numpy (something similar to no module named packaging.utils from pip._vendor.packaging). This issue made me try everything to get it working, but at the end the simplest solution was to recreate it with

pip install virtualenv
rm -r /home/klippy/klippy-env
virtualenv --python="/usr/bin/python2.7" klippy-env

after those commands the numpy installation succeeded!

klipper-moonraker container doesn't work (v2)

Hey,
I've updated the containers, rebuilt the images based on both develop an main branches, but now the klipper-moonraker container is not starting.
Tried to look at the logs, this is what I've found:

klipper-moonraker | [shell_command.py:_create_subprocess()] - shell_command: Command (systemctl list-units --all --type=service --plain --no-legend) failed
klipper-moonraker | Traceback (most recent call last):
klipper-moonraker |   File "/home/klippy/moonraker/moonraker/components/shell_command.py", line 256, in _create_subprocess
klipper-moonraker |     transport, protocol = await loop.subprocess_exec(
klipper-moonraker |   File "/usr/local/lib/python3.10/asyncio/base_events.py", line 1652, in subprocess_exec
klipper-moonraker |     transport = await self._make_subprocess_transport(
klipper-moonraker |   File "/usr/local/lib/python3.10/asyncio/unix_events.py", line 207, in _make_subprocess_transport
klipper-moonraker |     transp = _UnixSubprocessTransport(self, protocol, args, shell,
klipper-moonraker |   File "/usr/local/lib/python3.10/asyncio/base_subprocess.py", line 36, in __init__
klipper-moonraker |     self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
klipper-moonraker |   File "/usr/local/lib/python3.10/asyncio/unix_events.py", line 799, in _start
klipper-moonraker |     self._proc = subprocess.Popen(
klipper-moonraker |   File "/usr/local/lib/python3.10/subprocess.py", line 966, in __init__
klipper-moonraker |     self._execute_child(args, executable, preexec_fn, close_fds,
klipper-moonraker |   File "/usr/local/lib/python3.10/subprocess.py", line 1842, in _execute_child
klipper-moonraker |     raise child_exception_type(errno_num, err_msg, err_filename)
klipper-moonraker | FileNotFoundError: [Errno 2] No such file or directory: 'systemctl'

And another one says:

2021-12-04 17:42:56,272 INFO success: klipper entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-12-04 17:42:56,273 WARN received SIGTERM indicating exit request
2021-12-04 17:42:56,273 INFO waiting for dependentstartup, klipper to die
2021-12-04 17:42:57,275 - supervisord_dependent_startup - [INFO   ] 
2021-12-04 17:42:57,275 - supervisord_dependent_startup - [INFO   ] New event: Service klipper went from STARTING to RUNNING
2021-12-04 17:42:57,278 - supervisord_dependent_startup - [ERROR  ] Error occured:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 910, in run
    main()
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 904, in main
    event_listener.run_and_listen()
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 829, in run_and_listen
    self.listen()
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 822, in listen
    for l in self._listen():
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 817, in _listen
    event_parsed = self.handle_event(headers, payload)
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 757, in handle_event
    self.services_handler.update_proc_info()
  File "/usr/local/lib/python3.10/site-packages/supervisord_dependent_startup/supervisord_dependent_startup.py", line 472, in update_proc_info
    info = self.rpc.supervisor.getAllProcessInfo()
  File "/usr/local/lib/python3.10/xmlrpc/client.py", line 1116, in __call__
    return self.__send(self.__name, args)
  File "/usr/local/lib/python3.10/xmlrpc/client.py", line 1458, in __request
    response = self.__transport.request(
  File "/usr/local/lib/python3.10/site-packages/supervisor/xmlrpc.py", line 554, in request
    return u.close()
  File "/usr/local/lib/python3.10/xmlrpc/client.py", line 662, in close
    raise Fault(**self._stack[0])
xmlrpc.client.Fault: <Fault 6: 'SHUTDOWN_STATE'>
2021-12-04 17:42:57,282 INFO stopped: klipper (terminated by SIGTERM)
2021-12-04 17:42:57,288 INFO stopped: dependentstartup (terminated by SIGTERM)

Do you have any ideas what could it be?
Does someone else has this?
(by the way, the pull request for the macros should be fine)

Mainsail Settings Storage

Where are the settings stored for Mainsail? When I docker-compose down and then docker-compose up -d again the webcam settings and GUI preferences are wiped out. I tried finding any possible modified files in the container with find / -type d -mmin -2 -print directly after adding my webcams, but it doesn't seem like the settings are stored anywhere in the container filesystem.

klipper on Synology NAS

Hi,

Im trying to run klipper in docker on synology NAS but I cant make it work.
I dont know how to change path for config folder or where to upload config file so I always end up with error file_manager: Klipper configuration file not located in 'config' folder. Klipper Config Path: /home/klippy/.config/printer.cfg Config Folder: /home/klippy/printer_data/config

But I cant access this folder. Can I omehow change the folder for the config file.
I tried to add different path in advanced settings but it does not work or Im probably doing something wrong :(

klipp

Unable to edit files from fluidd interface

Hi @dimalo thanks for this amazing project!! I have been trying to adapt it for my own needs, but it seems that its not possible to edit the config files (printer.cfg, etc) from the fluidd interface. I always get the below error, which seems to be due to the fact that moonraker writes to a /tmp directory which is on a different filesystem to the config VOLUME you define. Did you have this functionality working or is it something not considered for your use case?

22.10.21 15:04:32 (+0200)  fluidd  192.168.86.26 - - [22/Oct/2021:13:04:32 +0000] "POST /server/files/upload HTTP/1.1" 500 2304 "http://whiptail-a20m.local:8010/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
22.10.21 15:04:32 (+0200)  klipper      os.rename(src, real_dst)
22.10.21 15:04:32 (+0200)  klipper  OSError: [Errno 18] Invalid cross-device link: '/tmp/moonraker.upload-176488.mru' -> '/home/klippy/.config/printer.cfg'
22.10.21 15:04:32 (+0200)  klipper  
22.10.21 15:04:32 (+0200)  klipper  During handling of the above exception, another exception occurred:
22.10.21 15:04:32 (+0200)  klipper  
22.10.21 15:04:32 (+0200)  klipper  Traceback (most recent call last):
22.10.21 15:04:32 (+0200)  klipper    File "/home/klippy/moonraker/moonraker/components/file_manager/file_manager.py", line 555, in _process_uploaded_file
22.10.21 15:04:32 (+0200)  klipper      shutil.move(upload_info['tmp_file_path'],
22.10.21 15:04:32 (+0200)  klipper    File "/usr/local/lib/python3.9/shutil.py", line 834, in move
22.10.21 15:04:32 (+0200)  klipper      copy_function(src, real_dst)
22.10.21 15:04:32 (+0200)  klipper    File "/usr/local/lib/python3.9/shutil.py", line 444, in copy2
22.10.21 15:04:32 (+0200)  klipper      copystat(src, dst, follow_symlinks=follow_symlinks)
22.10.21 15:04:32 (+0200)  klipper    File "/usr/local/lib/python3.9/shutil.py", line 383, in copystat
22.10.21 15:04:32 (+0200)  klipper      lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns),
22.10.21 15:04:32 (+0200)  klipper  PermissionError: [Errno 1] Operation not permitted

Cannot validate service file

Since updating the image, I'm getting a warning about running in a container:

"Moonraker instance running inside a container, cannot validate service file."

It seems some "install validation" code was added was added a few months back that breaks docker support. Is there a way to work around this?

Regards,
John

support compiling bin file

compilation of bin file is an essential part of klipper. therefore it would be necessary to install klipper parallel to this docker and essentially void the advantage of this docker.

please consider this as feature request to include the ability to compile the bin files inside of the container - as this would increase the usability significant.

fluidd cannot connect to moonraker

I tried using the prebuilt images and building my own image.Mainsail connects to moonraker fine but fluidd gives the following error
No moonraker connection. Please check moonraker status and / or refresh.
I provide logs below
logs.txt

fluidd - no connection to moonraker

Hello ! I started the docker-compose, mainsail is working fine but fluidd say "no connection to moonraker"
I tried to build the image, and restart only fluidd when all the stack is up.

Any idea ?

Problems with upload

Hi,
been trying to get this to work, seems like its not up to date? i got alot of errors when i finaly got it running.
and i keep having issues with uploading that it seems not to be enabled;
HTTPServerRequest(protocol='http', host='fluidd.local:8010', method='POST', uri='/server/files/upload', version='HTTP/1.0', remote_ip='192.168.x.x')
Traceback (most recent call last):
File "/home/klippy/moonraker-env/lib/python3.10/site-packages/tornado/web.py", line 1681, in _execute
result = self.prepare()
File "/home/klippy/moonraker/moonraker/app.py", line 882, in prepare
fm.check_write_enabled()
File "/home/klippy/moonraker/moonraker/components/file_manager/file_manager.py", line 199, in check_write_enabled
raise self.server.error(
utils.ServerError: Write access is currently disabled. Check notifications for warnings.

Did i mess something up when trying to fix stuff? What should i look for?

Using klipper.cfg breaks save_config

command=/home/klippy/klippy-env/bin/python /home/klippy/klipper/klippy/klippy.py -a /tmp/klippy_uds -l /var/log/klipper/klipper.log /home/klippy/.config/klipper.cfg

It looks like using klipper.cfg breaks the SAVE_CONFIG functionality which requires settings to be saved in printer.cfg.

You get the following error with z_offset for [bltouch]

23:40:52  $ [save_config]()
23:40:53  !! [SAVE_CONFIG]() section 'bltouch' option 'z_offset' conflicts with included value

Provide the container for unraid

Hello,

is there any possibility to provide or adapt the container for use with unraid? I don't have a clue how to use it there.

Thanks in advance

Unable to connect to mcu

I am failing to connect to the printer. After following the guide and testing several thing i now hope someone has an idea how to fix this problem.
My system is an Raspberry pi 4 8gb with rocky linux and docker.
Another SD-Card with klipper and mainsailOS installed barebones works perfect, but this setup with Docker cant establish the connection to the printer.
It always returns the error "mcu 'mcu': Unable to connect" and quits.

This is my current docker-compose file (yes it has to many parameters, but these result from testing)

        image: dimalo/klipper-moonraker
        container_name: klipper
        restart: unless-stopped
        privileged: true
        device_cgroup_rules:
            - 'c 188:* rmw'
        group_add:
            - "188"
            - "0"
        build:
            dockerfile: ./klipper/Dockerfile
            context: .
        cap_add:
            - SYS_NICE
        ports:
            - 7125:7125
        devices:
            - '/dev:/dev'
        volumes:
            - klipper_gcode_files:/home/klippy/gcode_files
            - klipper_config:/home/klippy/.config
            - klipper_moonraker_config:/home/klippy/.moonraker
            - /dev/serial/by-id/:/dev/serial/by-id/
            #- /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0

Some information for the USB Port:

$ ls -lsa /dev/ttyUSB0
0 crw-rw----. 1 root dialout 188, 0 Feb 28 00:00 /dev/ttyUSB0

$ ls /dev/serial/by-id/ 
usb-1a86_USB_Serial-if00-port0

I added the container log and the printer.cfg (both as txt)

klipper_logs.txt
printer.cfg.txt

Portainer edition

Hello,

would it be possible to create a docker_compose_yml for portainer. With the actual one it dont open port 7125 for klipper.

Greetings

Cannot SAVE_CONFIG

I had permission issues before with the .config folder. The Moonraker was not able to reach the config folder. I've used the given advice with luck, but I've just figured it out, I cannot save the config online.
Such as I performed a bed mesh leveling and used the SAVE_CONFIG command, and the printer.cfg hasn't been modified. I think that there is an issue with the Klipper container, just I cannot figure it out.

Error start moonraker

Hello!

I have a problem with the installation. I do everything according to the instructions, the installation goes well and both containers start up: "klipper" and "mainsail". But the moonraker component does not start, it gives an error.

Help me figure out where to look and what to do to defeat this error.
Mansail throws an error: "Cannot connect to Moonraker (192.168.0.130:8011)"

123


2023-03-29 14:08:25,681 WARN received SIGTERM indicating exit request
2023-03-29 14:08:25,683 INFO waiting for klipper, klipper_mcu to die
2023-03-29 14:08:26,686 ERRO pool dependentstartup event buffer overflowed, discarding event 18
2023-03-29 14:08:26,689 ERRO pool dependentstartup event buffer overflowed, discarding event 19
2023-03-29 14:08:26,689 WARN stopped: klipper_mcu (terminated by SIGTERM)
2023-03-29 14:08:26,691 ERRO pool dependentstartup event buffer overflowed, discarding event 20
2023-03-29 14:08:26,703 ERRO pool dependentstartup event buffer overflowed, discarding event 21
2023-03-29 14:08:26,704 WARN stopped: klipper (terminated by SIGTERM)
2023-03-29 14:08:46,710 INFO Included extra file "/etc/supervisord/klipper.ini" during parsing
2023-03-29 14:08:46,710 INFO Included extra file "/etc/supervisord/klipper_mcu.ini" during parsing
2023-03-29 14:08:46,710 INFO Included extra file "/etc/supervisord/moonraker.ini" during parsing
2023-03-29 14:08:46,710 INFO Set uid to user 0 succeeded
2023-03-29 14:08:46,719 INFO RPC interface 'supervisor' initialized
2023-03-29 14:08:46,720 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2023-03-29 14:08:46,720 INFO supervisord started with pid 1
2023-03-29 14:08:47,735 INFO spawned: 'dependentstartup' with pid 7
2023-03-29 14:08:48,400 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:48,400 - supervisord_dependent_startup - [INFO   ] supervisord-dependent-startup event listener starting...
2023-03-29 14:08:48,410 - supervisord_dependent_startup - [INFO   ] Connected to supervisor with API version: 3.0
2023-03-29 14:08:48,410 - supervisord_dependent_startup - [INFO   ] Reading supervisor config: /etc/supervisord/conf.d/supervisord.conf
2023-03-29 14:08:48,420 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:48,420 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:48,434 - supervisord_dependent_startup - [INFO   ] Proc(dependentstartup): {'name': 'dependentstartup', 'group': 'dependentstartup', 'start': 1680098927, 'stop': 0, 'now': 1680098928, 'state': 10, 'statename': 'STARTING', 'spawnerr': '', 'exitstatus': 0, 'logfile': '/dev/fd/1', 'stdout_logfile': '/dev/fd/1', 'stderr_logfile': '/dev/fd/2', 'pid': 7, 'description': ''}
2023-03-29 14:08:48,435 - supervisord_dependent_startup - [INFO   ] Proc(klipper): {'name': 'klipper', 'group': 'klipper', 'start': 0, 'stop': 0, 'now': 1680098928, 'state': 0, 'statename': 'STOPPED', 'spawnerr': '', 'exitstatus': 0, 'logfile': '/dev/fd/1', 'stdout_logfile': '/dev/fd/1', 'stderr_logfile': '/dev/fd/2', 'pid': 0, 'description': 'Not started'}
2023-03-29 14:08:48,435 - supervisord_dependent_startup - [INFO   ] Proc(klipper_mcu): {'name': 'klipper_mcu', 'group': 'klipper_mcu', 'start': 0, 'stop': 0, 'now': 1680098928, 'state': 0, 'statename': 'STOPPED', 'spawnerr': '', 'exitstatus': 0, 'logfile': '/dev/fd/1', 'stdout_logfile': '/dev/fd/1', 'stderr_logfile': '/dev/fd/2', 'pid': 0, 'description': 'Not started'}
2023-03-29 14:08:48,435 - supervisord_dependent_startup - [INFO   ] Proc(moonraker): {'name': 'moonraker', 'group': 'moonraker', 'start': 0, 'stop': 0, 'now': 1680098928, 'state': 0, 'statename': 'STOPPED', 'spawnerr': '', 'exitstatus': 0, 'logfile': '/dev/fd/1', 'stdout_logfile': '/dev/fd/1', 'stderr_logfile': '/dev/fd/2', 'pid': 0, 'description': 'Not started'}
2023-03-29 14:08:48,441 - supervisord_dependent_startup - [INFO   ]  - klipper           STOPPED                         dependent_startup: True 
2023-03-29 14:08:48,448 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       STOPPED                         dependent_startup: True 
2023-03-29 14:08:48,452 - supervisord_dependent_startup - [INFO   ]  - moonraker         STOPPED                         dependent_startup: True   wait_for: 'klipper:RUNNING'
READY
2023-03-29 14:08:49,456 INFO success: dependentstartup entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-29 14:08:49,457 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:49,458 - supervisord_dependent_startup - [INFO   ] New event: Service dependentstartup went from STOPPED to STARTING
2023-03-29 14:08:49,478 - supervisord_dependent_startup - [INFO   ] Starting immediately: Service(name=klipper, group=klipper, dependent_startup: True, autostart: False)
2023-03-29 14:08:49,489 - supervisord_dependent_startup - [INFO   ] Starting service: klipper (State: STOPPED)
2023-03-29 14:08:49,510 INFO spawned: 'klipper' with pid 8
2023-03-29 14:08:49,521 - supervisord_dependent_startup - [INFO   ] Starting ordered services
2023-03-29 14:08:49,532 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:49,540 - supervisord_dependent_startup - [INFO   ]  - klipper           STARTING                        dependent_startup: True 
2023-03-29 14:08:49,549 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       STOPPED                         dependent_startup: True 
2023-03-29 14:08:49,557 - supervisord_dependent_startup - [INFO   ]  - moonraker         STOPPED                         dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:49,557 - supervisord_dependent_startup - [INFO   ] Services not yet running (3): klipper, klipper_mcu, moonraker
2023-03-29 14:08:49,565 - supervisord_dependent_startup - [INFO   ] Starting service: klipper_mcu (State: STOPPED)
2023-03-29 14:08:49,577 INFO spawned: 'klipper_mcu' with pid 9
RESULT 2
OKREADY
Executing python /home/klippy/klipper/klippy/klippy.py -a /tmp/klippy_uds -l /var/log/klipper/klipper.log /home/klippy/.config/printer.cfg in /home/klippy/klippy-env
2023-03-29 14:08:49,589 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:49,589 - supervisord_dependent_startup - [INFO   ] New event: Service dependentstartup went from STARTING to RUNNING
2023-03-29 14:08:49,604 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:49,610 - supervisord_dependent_startup - [INFO   ]  - klipper           STARTING                        dependent_startup: True 
2023-03-29 14:08:49,618 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       STARTING                        dependent_startup: True 
2023-03-29 14:08:49,623 - supervisord_dependent_startup - [INFO   ]  - moonraker         STOPPED                         dependent_startup: True   wait_for: 'klipper:RUNNING'
RESULT 2
OKREADY
2023-03-29 14:08:49,623 - supervisord_dependent_startup - [INFO   ] Services not yet running (3): klipper, klipper_mcu, moonraker
2023-03-29 14:08:49,626 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:49,626 - supervisord_dependent_startup - [INFO   ] New event: Service klipper went from STOPPED to STARTING
2023-03-29 14:08:49,635 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:49,639 - supervisord_dependent_startup - [INFO   ]  - klipper           STARTING                        dependent_startup: True 
2023-03-29 14:08:49,644 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       STARTING                        dependent_startup: True 
2023-03-29 14:08:49,651 - supervisord_dependent_startup - [INFO   ]  - moonraker         STOPPED                         dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:49,651 - supervisord_dependent_startup - [INFO   ] Services not yet running (3): klipper, klipper_mcu, moonraker
RESULT 2
OKREADY
2023-03-29 14:08:49,654 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:49,654 - supervisord_dependent_startup - [INFO   ] New event: Service klipper_mcu went from STOPPED to STARTING
2023-03-29 14:08:49,664 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:49,671 - supervisord_dependent_startup - [INFO   ]  - klipper           STARTING                        dependent_startup: True 
2023-03-29 14:08:49,679 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       STARTING                        dependent_startup: True 
RESULT 2
2023-03-29 14:08:49,686 - supervisord_dependent_startup - [INFO   ]  - moonraker         STOPPED                         dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:49,686 - supervisord_dependent_startup - [INFO   ] Services not yet running (3): klipper, klipper_mcu, moonraker
OKREADY
2023-03-29 14:08:50,690 INFO success: klipper entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-29 14:08:50,691 INFO success: klipper_mcu entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-29 14:08:51,694 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:51,694 - supervisord_dependent_startup - [INFO   ] New event: Service klipper went from STARTING to RUNNING
2023-03-29 14:08:51,715 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:51,725 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:51,735 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:51,744 - supervisord_dependent_startup - [INFO   ]  - moonraker         STOPPED                         dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:51,756 - supervisord_dependent_startup - [INFO   ] Services not yet running (2): klipper_mcu, moonraker
2023-03-29 14:08:51,767 - supervisord_dependent_startup - [INFO   ] Starting service: moonraker (State: STOPPED)
2023-03-29 14:08:51,786 INFO spawned: 'moonraker' with pid 15
RESULT 2
OKREADY
2023-03-29 14:08:51,796 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:51,797 - supervisord_dependent_startup - [INFO   ] New event: Service klipper_mcu went from STARTING to RUNNING
2023-03-29 14:08:51,814 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:51,821 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:51,828 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:51,834 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:51,846 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
Executing python /home/klippy/moonraker/moonraker/moonraker.py -l /var/log/klipper/moonraker.log -c /home/klippy/.config/moonraker.conf in /home/klippy/moonraker-env
2023-03-29 14:08:51,848 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:51,848 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STOPPED to STARTING
2023-03-29 14:08:51,860 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:51,866 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:51,872 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:51,878 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:51,889 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
[loghelper.py:__init__()] - data_path: /home/klippy/printer_data
[loghelper.py:__init__()] - is_default_data_path: True
[loghelper.py:__init__()] - config_file: /home/klippy/.config/moonraker.conf
[loghelper.py:__init__()] - startup_warnings: []
[loghelper.py:__init__()] - verbose: False
[loghelper.py:__init__()] - debug: False
[loghelper.py:__init__()] - asyncio_debug: False
[loghelper.py:__init__()] - is_backup_config: False
[loghelper.py:__init__()] - is_python_package: False
[loghelper.py:__init__()] - log_file: /var/log/klipper/moonraker.log
[loghelper.py:__init__()] - software_version: v0.8.0-30-g110cbd1
[loghelper.py:__init__()] - python_version: 3.10.10 (main, Mar 23 2023, 03:59:34) [GCC 10.2.1 20210110]
[server.py:main()] - Server Config Error
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 936, in _parse_file
    stat = file_path.stat()
  File "/usr/local/lib/python3.10/pathlib.py", line 1097, in stat
    return self._accessor.stat(self, follow_symlinks=follow_symlinks)
FileNotFoundError: [Errno 2] No such file or directory: '/home/klippy/.config/moonraker.conf'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/server.py", line 547, in main
    server = Server(app_args, log_manager, event_loop)
  File "/home/klippy/moonraker/moonraker/server.py", line 75, in __init__
    self.config = config = self._parse_config()
  File "/home/klippy/moonraker/moonraker/server.py", line 139, in _parse_config
    config = confighelper.get_configuration(self, self.app_args)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1052, in get_configuration
    source.read_file(start_path)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1040, in read_file
    self._parse_file(main_conf, [])
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1025, in _parse_file
    raise ConfigError(
moonraker.confighelper.ConfigError: Configuration File Not Found: '/home/klippy/.config/moonraker.conf''
[server.py:main()] - Server Shutdown
2023-03-29 14:08:52,683 WARN exited: moonraker (exit status 1; not expected)
2023-03-29 14:08:53,699 INFO spawned: 'moonraker' with pid 18
2023-03-29 14:08:53,687 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:53,688 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STARTING to BACKOFF
2023-03-29 14:08:53,726 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:53,734 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:53,742 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:53,749 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
Executing python /home/klippy/moonraker/moonraker/moonraker.py -l /var/log/klipper/moonraker.log -c /home/klippy/.config/moonraker.conf in /home/klippy/moonraker-env
2023-03-29 14:08:53,763 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
2023-03-29 14:08:53,766 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:53,767 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from BACKOFF to STARTING
2023-03-29 14:08:53,780 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:53,788 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:53,795 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:53,801 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:53,814 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
[loghelper.py:__init__()] - data_path: /home/klippy/printer_data
[loghelper.py:__init__()] - is_default_data_path: True
[loghelper.py:__init__()] - config_file: /home/klippy/.config/moonraker.conf
[loghelper.py:__init__()] - startup_warnings: []
[loghelper.py:__init__()] - verbose: False
[loghelper.py:__init__()] - debug: False
[loghelper.py:__init__()] - asyncio_debug: False
[loghelper.py:__init__()] - is_backup_config: False
[loghelper.py:__init__()] - is_python_package: False
[loghelper.py:__init__()] - log_file: /var/log/klipper/moonraker.log
[loghelper.py:__init__()] - software_version: v0.8.0-30-g110cbd1
[loghelper.py:__init__()] - python_version: 3.10.10 (main, Mar 23 2023, 03:59:34) [GCC 10.2.1 20210110]
[server.py:main()] - Server Config Error
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 936, in _parse_file
    stat = file_path.stat()
  File "/usr/local/lib/python3.10/pathlib.py", line 1097, in stat
    return self._accessor.stat(self, follow_symlinks=follow_symlinks)
FileNotFoundError: [Errno 2] No such file or directory: '/home/klippy/.config/moonraker.conf'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/server.py", line 547, in main
    server = Server(app_args, log_manager, event_loop)
  File "/home/klippy/moonraker/moonraker/server.py", line 75, in __init__
    self.config = config = self._parse_config()
  File "/home/klippy/moonraker/moonraker/server.py", line 139, in _parse_config
    config = confighelper.get_configuration(self, self.app_args)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1052, in get_configuration
    source.read_file(start_path)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1040, in read_file
    self._parse_file(main_conf, [])
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1025, in _parse_file
    raise ConfigError(
moonraker.confighelper.ConfigError: Configuration File Not Found: '/home/klippy/.config/moonraker.conf''
[server.py:main()] - Server Shutdown
2023-03-29 14:08:54,552 WARN exited: moonraker (exit status 1; not expected)
2023-03-29 14:08:55,556 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:55,557 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STARTING to BACKOFF
2023-03-29 14:08:55,579 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:55,593 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:55,603 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:55,613 - supervisord_dependent_startup - [INFO   ]  - moonraker         BACKOFF                         dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:08:55,632 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
2023-03-29 14:08:56,651 INFO spawned: 'moonraker' with pid 21
Executing python /home/klippy/moonraker/moonraker/moonraker.py -l /var/log/klipper/moonraker.log -c /home/klippy/.config/moonraker.conf in /home/klippy/moonraker-env
2023-03-29 14:08:56,715 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:56,716 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from BACKOFF to STARTING
2023-03-29 14:08:56,734 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:56,741 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:56,748 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:56,754 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
RESULT 2
OKREADY
2023-03-29 14:08:56,766 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
[loghelper.py:__init__()] - data_path: /home/klippy/printer_data
[loghelper.py:__init__()] - is_default_data_path: True
[loghelper.py:__init__()] - config_file: /home/klippy/.config/moonraker.conf
[loghelper.py:__init__()] - startup_warnings: []
[loghelper.py:__init__()] - verbose: False
[loghelper.py:__init__()] - debug: False
[loghelper.py:__init__()] - asyncio_debug: False
[loghelper.py:__init__()] - is_backup_config: False
[loghelper.py:__init__()] - is_python_package: False
[loghelper.py:__init__()] - log_file: /var/log/klipper/moonraker.log
[loghelper.py:__init__()] - software_version: v0.8.0-30-g110cbd1
[loghelper.py:__init__()] - python_version: 3.10.10 (main, Mar 23 2023, 03:59:34) [GCC 10.2.1 20210110]
[server.py:main()] - Server Config Error
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 936, in _parse_file
    stat = file_path.stat()
  File "/usr/local/lib/python3.10/pathlib.py", line 1097, in stat
    return self._accessor.stat(self, follow_symlinks=follow_symlinks)
FileNotFoundError: [Errno 2] No such file or directory: '/home/klippy/.config/moonraker.conf'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/server.py", line 547, in main
    server = Server(app_args, log_manager, event_loop)
  File "/home/klippy/moonraker/moonraker/server.py", line 75, in __init__
    self.config = config = self._parse_config()
  File "/home/klippy/moonraker/moonraker/server.py", line 139, in _parse_config
    config = confighelper.get_configuration(self, self.app_args)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1052, in get_configuration
    source.read_file(start_path)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1040, in read_file
    self._parse_file(main_conf, [])
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1025, in _parse_file
    raise ConfigError(
moonraker.confighelper.ConfigError: Configuration File Not Found: '/home/klippy/.config/moonraker.conf''
[server.py:main()] - Server Shutdown
2023-03-29 14:08:57,532 WARN exited: moonraker (exit status 1; not expected)
2023-03-29 14:08:58,537 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:08:58,538 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STARTING to BACKOFF
2023-03-29 14:08:58,555 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:08:58,563 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:08:58,571 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:08:58,580 - supervisord_dependent_startup - [INFO   ]  - moonraker         BACKOFF                         dependent_startup: True   wait_for: 'klipper:RUNNING'
RESULT 2
2023-03-29 14:08:58,596 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
OKREADY
2023-03-29 14:09:00,617 INFO spawned: 'moonraker' with pid 24
Executing python /home/klippy/moonraker/moonraker/moonraker.py -l /var/log/klipper/moonraker.log -c /home/klippy/.config/moonraker.conf in /home/klippy/moonraker-env
2023-03-29 14:09:00,675 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:09:00,675 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from BACKOFF to STARTING
2023-03-29 14:09:00,695 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:09:00,704 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:09:00,712 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:09:00,721 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:09:00,732 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
[loghelper.py:__init__()] - data_path: /home/klippy/printer_data
[loghelper.py:__init__()] - is_default_data_path: True
[loghelper.py:__init__()] - config_file: /home/klippy/.config/moonraker.conf
[loghelper.py:__init__()] - startup_warnings: []
[loghelper.py:__init__()] - verbose: False
[loghelper.py:__init__()] - debug: False
[loghelper.py:__init__()] - asyncio_debug: False
[loghelper.py:__init__()] - is_backup_config: False
[loghelper.py:__init__()] - is_python_package: False
[loghelper.py:__init__()] - log_file: /var/log/klipper/moonraker.log
[loghelper.py:__init__()] - software_version: v0.8.0-30-g110cbd1
[loghelper.py:__init__()] - python_version: 3.10.10 (main, Mar 23 2023, 03:59:34) [GCC 10.2.1 20210110]
[server.py:main()] - Server Config Error
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 936, in _parse_file
    stat = file_path.stat()
  File "/usr/local/lib/python3.10/pathlib.py", line 1097, in stat
    return self._accessor.stat(self, follow_symlinks=follow_symlinks)
FileNotFoundError: [Errno 2] No such file or directory: '/home/klippy/.config/moonraker.conf'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/klippy/moonraker/moonraker/server.py", line 547, in main
    server = Server(app_args, log_manager, event_loop)
  File "/home/klippy/moonraker/moonraker/server.py", line 75, in __init__
    self.config = config = self._parse_config()
  File "/home/klippy/moonraker/moonraker/server.py", line 139, in _parse_config
    config = confighelper.get_configuration(self, self.app_args)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1052, in get_configuration
    source.read_file(start_path)
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1040, in read_file
    self._parse_file(main_conf, [])
  File "/home/klippy/moonraker/moonraker/confighelper.py", line 1025, in _parse_file
    raise ConfigError(
moonraker.confighelper.ConfigError: Configuration File Not Found: '/home/klippy/.config/moonraker.conf''
[server.py:main()] - Server Shutdown
2023-03-29 14:09:01,457 WARN exited: moonraker (exit status 1; not expected)
2023-03-29 14:09:02,460 INFO gave up: moonraker entered FATAL state, too many start retries too quickly
2023-03-29 14:09:02,461 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:09:02,461 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STARTING to BACKOFF
2023-03-29 14:09:02,481 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:09:02,492 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:09:02,503 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:09:02,514 - supervisord_dependent_startup - [INFO   ]  - moonraker         FATAL                           dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:09:02,533 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
RESULT 2
OKREADY
2023-03-29 14:09:02,536 - supervisord_dependent_startup - [INFO   ] 
2023-03-29 14:09:02,536 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from BACKOFF to FATAL
2023-03-29 14:09:02,555 - supervisord_dependent_startup - [INFO   ] Services:
2023-03-29 14:09:02,564 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True 
2023-03-29 14:09:02,573 - supervisord_dependent_startup - [INFO   ]  - klipper_mcu       RUNNING                         dependent_startup: True 
2023-03-29 14:09:02,582 - supervisord_dependent_startup - [INFO   ]  - moonraker         FATAL                           dependent_startup: True   wait_for: 'klipper:RUNNING'
2023-03-29 14:09:02,607 - supervisord_dependent_startup - [INFO   ] No more processes to start for initial startup, ignoring all future events.
RESULT 2
OK2023-03-29 14:09:02,764 INFO exited: dependentstartup (exit status 0; expected)

Can't get multiple klipper/moonrakers to connect to fluidd

I've been trying for days to get two klippers running. I used the sample docker-compose.yml but still run into issues. Here is the latest version of my docker-compose.yml.

version: '3.4'

services:
  klipper:
    image: dimalo/klipper-moonraker
    build:
      dockerfile: ./klipper/Dockerfile
      context: .
      # args:
      #   DEVICE_GROUP: device
      #   DEVICE_GID: 987
    container_name: klipper
    ports:
      - 7125:7125
    restart: unless-stopped
    volumes:
      - gcode_files:/home/klippy/gcode_files
      # be aware to create your own branch if you mount the config folder as it will be updated on the main branch
      # that way you can merge upstream changes to your customized configs
      - ./config:/home/klippy/.config
      - moonraker_data:/home/klippy/.moonraker
      # - <<your_config_path>>:/home/klippy/.config
      # - ./printer.cfg:/home/klippy/.config/printer.cfg
    # mount serial device - take care to grant sufficient permissions to the device: <host_dev>:<container_dev>
    # put <container_dev> into your printer.cfg
    devices:
      - /home/nathan/docker/usbmap/usb5.4.2:/dev/ttymxc3

  ##################################################################
  # Example config for a second printer on a different serial port
  ##################################################################

  klipper_top:
    image: dimalo/klipper-moonraker
    build:
      dockerfile: ./klipper/Dockerfile
      context: .
      # args:
      #   DEVICE_GROUP: device
      #   DEVICE_GID: 987
    container_name: klipper_top
    ports:
      # As 7125 is already used by the first printer, we map this moonraker's port to 7126 on the host
      - 7126:7125
    restart: unless-stopped
    volumes:
      # Let both klipper instances use the same storage for gcode files
      - gcode_files:/home/klippy/gcode_files
      # be aware to create your own branch if you mount the config folder as it will be updated on the main branch
      # that way you can merge upstream changes to your (developed) configs...
      - ./config_top:/home/klippy/.config
      #- ./config_top/moonraker_data:/home/klippy/.moonraker #NATHAN: not sure if this can be shared or not
      - moonraker_data:/home/klippy/.moonraker
      # - <<your_config_path>>:/home/klippy/.config
      # - ./another_printer.cfg:/home/klippy/.config/printer.cfg
    # mount serial device - take care to grant sufficient permissions to the device: <host_dev>:<container_dev>
    # put <container_dev> into your printer.cfg
    devices:
      - /home/nathan/docker/usbmap/usb5.4.3:/dev/ttymxc3

  fluidd:
    #image: dimalo/fluidd
    #image: cadriel/fluidd
    build:
        dockerfile: Dockerfile
        context: frontend
    restart: unless-stopped
    container_name: fluidd
    ports:
      - 81:80
    depends_on: 
      - klipper
      - klipper_top
    links:
      - klipper:klipper
      - klipper_top:klipper_top

  mainsail:
    image: dimalo/mainsail
    build:
      dockerfile: Dockerfile
      context: frontend
      args:
        FRONTEND_ZIP_URL: https://github.com/meteyou/mainsail/releases/latest/download/mainsail.zip
    container_name: mainsail
    ports:
      - 8011:80
    depends_on: 
      - klipper
      - klipper_top
    links:
      - klipper:klipper
      - klipper_top:klipper_top

volumes: 
  gcode_files:
  moonraker_data:

Fluidd somehow is connecting to the 7125 moonraker although I am not sure how it knows to do that. Fluidd is hosted on ubuntu port 81. When I load up fluidd under printers it shows it's own address under printers - shouldn't it show the moonraker web server at 7126?
image

I then try to add the second moonraker at 7126 (http://ubuntu:7126/) but it gives me an error "blocked by CORS policy". However, I am able to access the same URL from my browser without an error. The moonraker.conf in both ./config folders are the same. Interestingly if I try and add the first printer at 7125 it also gives me the cors error. However, it is clearly connected to that printer because I am can controll it.

image

I am sure I am missing something fundamental here but I cannot figure out what it is. Any help would be greatly appreciated.

Unable build docker-compose

Hello Dimalo. I run docker-compose build on my custom board with S905X2 SoC. Image builded in the buildroot project. It has docker engine and docker-compose. And I get the error:

    × Building wheel for ninja (pyproject.toml) did not run successfully.
   │ exit code: 1
   ╰─> [13 lines of output]
       /tmp/pip-build-env-5eyd4zei/overlay/lib/python3.10/site-packages/setuptools_scm/git.py:308: UserWarning: git archive did not  support describe output

I apply this patch:

diff --git a/klipper/Dockerfile b/klipper/Dockerfile
index fa602f9..a1c1557 100644
--- a/klipper/Dockerfile
+++ b/klipper/Dockerfile
@@ -19,6 +19,7 @@ RUN apt-get update && \
        git \
        sudo \
        wget \
+       ninja-build \
        curl \
        gzip \
        tar \

And this solves my problem, maybe it will help others too

Klipper crashes on startup on RPI4

Klipper crashes with log similar to:
klipper Fatal Python error: pyinit_main: can't initialize time
klipper | Python runtime state: core initialized
klipper | PermissionError: [Errno 1] Operation not permitted

Solution:
on the host where you run docker compose do:

wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb
sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb

and klipper works. Issue can be closed. just thought i'd post it here for others - was quite a headscratcher for me

Moonraker permission issue

Hello!
I've just built the image with sudo docker-compose build then run docker-compose up.

I have the following issue:

klipper     | [file_manager.py:register_directory()] - 
klipper     | Moonraker does not have permission to access path (/home/klippy/.config) for (config).
klipper     | [moonraker.py:load_plugin()] - Unable to load plugin (file_manager)
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 166, in load_plugin
klipper     |     plugin = load_func(config)
klipper     |   File "/home/klippy/moonraker/moonraker/plugins/file_manager.py", line 739, in load_plugin
klipper     |     return FileManager(config)
klipper     |   File "/home/klippy/moonraker/moonraker/plugins/file_manager.py", line 64, in __init__
klipper     |     raise config.error(
klipper     | confighelper.ConfigError: Option 'config_path' is not a valid directory
klipper     | [moonraker.py:main()] - Moonraker Error
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 166, in load_plugin
klipper     |     plugin = load_func(config)
klipper     |   File "/home/klippy/moonraker/moonraker/plugins/file_manager.py", line 739, in load_plugin
klipper     |     return FileManager(config)
klipper     |   File "/home/klippy/moonraker/moonraker/plugins/file_manager.py", line 64, in __init__
klipper     |     raise config.error(
klipper     | confighelper.ConfigError: Option 'config_path' is not a valid directory
klipper     | 
klipper     | During handling of the above exception, another exception occurred:
klipper     | 
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 663, in main
klipper     |     server = Server(system_args, file_logger)
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 108, in __init__
klipper     |     self._load_plugins(config)
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 137, in _load_plugins
klipper     |     self.load_plugin(config, plugin)
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 172, in load_plugin
klipper     |     raise ServerError(msg)
klipper     | utils.ServerError: Unable to load plugin (file_manager)
klipper     | [moonraker.py:main()] - Server Shutdown
klipper     | 2021-03-06 11:03:35,299 INFO exited: moonraker (exit status 1; not expected)
klipper     | 2021-03-06 11:03:36,303 INFO gave up: moonraker entered FATAL state, too many start retries too quickly
klipper     | 2021-03-06 11:03:36,301 - supervisord_dependent_startup - [INFO   ] 
klipper     | 2021-03-06 11:03:36,302 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STARTING to BACKOFF

What can cause this issue?

HW: RPI 4 4GB

Include file '/home/klippy/.config/fluidd.cfg' does not exist

klipper    | [moonraker.py:add_warning()] - file_manager: Klipper configuration file not located in 'config' folder.
klipper    | 
klipper    | Klipper Config Path: /home/klippy/.config/printer.cfg
klipper    | 
klipper    | Config Folder: /home/klippy/printer_data/config
klipper    | [klippy_connection.py:_check_ready()] - 
klipper    | Include file '/home/klippy/.config/fluidd.cfg' does not exist
klipper    | 
klipper    | Once the underlying issue is corrected, use the "RESTART"
klipper    | command to reload the config and restart the host software.
klipper    | Printer is halted

It looks originally like I don't have the printer.cfg file within Klipper Config Path: /home/klippy/.config/printer.cfg

But that isn't the case:
image
image

Adding fluidd.cfg (as a copy of printer.cfg) causes 'recursive fluidd.cfg file'.

issues trying to use adxl345

Hello, firstly thank you for this amazing repo

I'm trying to use adxl345 to configure inputshaper
i'm using a rpi4, latest docker image (even tried next tag and building manually)
My adxl345 unit is working properly, I tested spi mode using another software on the same rpi

First issue I got is

Failed to import `numpy` module, make sure it was installed via `~/klippy-env/bin/pip install` (refer to docs/Measuring_Resonances.md for more details). 

as a workaround I manually installed numpy in the venv directly in the container.

Then I get this error

Invalid adxl345 id (got 0 vs e5)

I put klipper's recommended configuration like this

[adxl345]
cs_pin: host:None

[resonance_tester]
accel_chip: adxl345
probe_points:
    110, 110, 20  # an example

I also tried multiple docker-compose config, using what you did in you adxl345 variant. Currently I have

  klipper:
    image: dimalo/klipper-moonraker:next
    privileged: true
    build:
      dockerfile: ./klipper/Dockerfile
      context: .
    # if klipper cannot connect to the printer check permissions on rpi then add the group here
    group_add:
      - "996"
      - "998"
      - "5"
      - "20"
    cap_add:
      - ALL
    container_name: klipper
    ports:
      - 7125:7125
    restart: unless-stopped
    volumes:
      - /dev:/dev
      - gcode_files:/home/klippy/printer_data/gcodes
      # be aware to create your own branch if you mount the config folder as it will be updated on the main branch
      # that way you can merge upstream changes to your customized configs
      - ./config:/home/klippy/printer_data/config
      - moonraker_data:/home/klippy/.moonraker_database
      # - <<your_config_path>>:/home/klippy/.config
      # - ./printer.cfg:/home/klippy/.config/printer.cfg
    # mount serial device - take care to grant sufficient permissions to the device: <host_dev>:<container_dev>
    # put <container_dev> into your printer.cfg
    devices:
    #  - /dev/ttyACM0:/dev/ttyACM0
      - /dev/spidev0.0:/dev/spidev0.0
      - /dev/gpiomem:/dev/gpiomem
      - /dev/gpiochip0:/dev/gpiochip0

as you can see I even tried privileged mode, mounting /dev directly but still I get that same error
Do you have any tips ? since you provide a specific docker-compose file for adxl345 I guess you succeed to use it ?

How-to: automatic restart klipper in docker container when printer is turned on

Leaving this here for anyone else wondering how to do this:

  1. run lsusb to get the vendor ID and productID of your hardware. In my case it's 1d50 and 614e:
    Bus 001 Device 025: ID 1d50:614e OpenMoko, Inc. stm32f103xe
  2. create a udev rule:
    sudo nano /etc/udev/rules.d/98-klipper.rules
  3. put this line in that file:
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="614e", ACTION=="add", RUN+="/usr/bin/docker exec --user klippy klipper /bin/sh -c '/bin/echo RESTART > /tmp/printer'"
  4. reload your udev rule with sudo udevadm control --reload
  5. Turn off your printer and turn it back on. The klipper service should automatically restart.

How it works: it uses docker exec to run a command inside the klipper container as user klippy (important!) which sends a RESTART command to the virtual printer device.

Wrong CPU temp on Intel NUC

Hi,
I'm running this on an Intel NUC and I observed that the CPU temp readings give erroneous data, in klipper-fluidd:

The reason was the one I mentioned here:
As Klipper was made for the PI, if it runs on a different architecture the temp sensor readings may differ.

On a NUC for ex. /sys/class/thermal/thermal_zone0/temp will be an invalid temp, but
/sys/class/thermal/thermal_zone1/temp will be ok.

A quick solution was to map/change the path in the compose.yaml:

    volumes:
      - '/sys/class/thermal/thermal_zone1/temp:/sys/class/thermal/thermal_zone0/temp'

Python Module(s) Build Errors

Attaching docker-compose up output, specifically error output.

Building wheel for cffi (setup.py): finished with status 'error'
cffi.txt

Building wheel for greenlet (setup.py): finished with status 'error'
greenlet.txt

Is z_calibration plugin supported?

Hi,
I have done with the guide at https://github.com/protoloft/klipper_z_calibration#preconditions
But the moonraker log show below:
[update_manager client z_calibration] path = /home/klippy/klipper_z_calibration origin = https://github.com/protoloft/klipper_z_calibration.git 2022-02-01 12:10:59,968 [shell_command.py:_check_proc_success()] - Command (git -C /home/klippy/klipper_z_calibration status -u no) successfully finished 2022-02-01 12:10:59,978 [shell_command.py:_check_proc_success()] - Command (git -C /home/klippy/klipper_z_calibration config --get branch.master.remote) successfully finished 2022-02-01 12:10:59,988 [shell_command.py:_check_proc_success()] - Command (git -C /home/klippy/klipper_z_calibration remote get-url origin) successfully finished 2022-02-01 12:11:02,523 [git_deploy.py:initialize()] - Git Repo z_calibration: Initialization failure

How do I fix that?

Can’t access config files in Fluidd

Hi! Unfortunately I’ve got an error which actually winning against me. I hope someone can help me with this.

So every services up and running. The moonraker has access to moonraker.conf in host machine. When i enter the Fluidd (dimalo’s) its not showing the config files and i cannot upload (internal server error)

Someone met with this struggle before? :)

Thank you everyone who helps me!!

invalid YAML in docker-compose.yml

Hi,
I'm trying to follow the instructions on setup, and when I run

docker-compose pull && docker-compose up

I get

ERROR: yaml.parser.ParserError: while parsing a block collection
  in "./docker-compose.yml", line 80, column 7
expected <block end>, but found '?'
  in "./docker-compose.yml", line 81, column 7

If I paste the raw docker-compose.yml file from the repo (https://raw.githubusercontent.com/dimalo/klipper-web-control-docker/main/docker-compose.yml) into a yaml checker, http://www.yamllint.com/, I get the error

(<unknown>): did not find expected '-' indicator while parsing a block collection at line 80 column 7

I tried replacing the spaces and the dash on line 80 just in case it was a weird white space or special dash character issue, but it didn't help. Any advice?

Thanks
Ruth

Permission denied: '/home/klippy/.config/moonraker.conf' leads to 502 Bad Gateway issue

Hi,

I've tried to pull latest version and started getting 502 Bad Gateway on fluidd and mainsail, after investigation it seems they're not able to connect moonraker

From container startup log:
PermissionError: [Errno 13] Permission denied: '/home/klippy/.config/moonraker.conf' [moonraker.py:main()] - Server Shutdown return self._accessor.stat(self, follow_symlinks=follow_symlinks) File "/usr/local/lib/python3.10/pathlib.py", line 1097, in stat File "/usr/local/lib/python3.10/pathlib.py", line 1322, in is_file return S_ISREG(self.stat().st_mode) if not file_path.is_file(): File "/home/klippy/moonraker/moonraker/confighelper.py", line 1012, in _parse_file self._parse_file(main_conf, []) File "/home/klippy/moonraker/moonraker/confighelper.py", line 1028, in read_file source.read_file(start_path) File "/home/klippy/moonraker/moonraker/confighelper.py", line 1040, in get_configuration config = confighelper.get_configuration(self, self.app_args) File "/home/klippy/moonraker/moonraker/moonraker.py", line 129, in _parse_config self.config = config = self._parse_config() File "/home/klippy/moonraker/moonraker/moonraker.py", line 67, in __init__ server = Server(app_args, file_logger, event_loop) File "/home/klippy/moonraker/moonraker/moonraker.py", line 460, in main Traceback (most recent call last): During handling of the above exception, another exception occurred: stat = file_path.stat() File "/home/klippy/moonraker/moonraker/confighelper.py", line 924, in _parse_file [moonraker.py:main()] - Moonraker Error [utils.py:setup_logging()] - python_version: 3.10.7 (main, Sep 13 2022, 03:02:33) [GCC 10.2.1 20210110] [utils.py:setup_logging()] - software_version: v0.7.1-660-g5d856b9 [utils.py:setup_logging()] - log_file: /var/log/klipper/moonraker.log [utils.py:setup_logging()] - startup_warnings: []
Have something changed in the last docker images updates?

Moonraker GPIO support not working

It appears that Moonraker needs the gpiod module from libgpiod, not the gpiod PyPI package.
In the current images, both are installed, leading it to pick up the wrong one. Removing the PyPI package isn't sufficient however, because the gpiod module from libgpiod is being installed from the Debian repository, which contains Python 3.9, while the Docker image is based on Python 3.10.

The (verified working) path of least resistance appears to be downgrading the Docker image to python:3.9-slim-bullseye and removing the unnecessary installation of the gpiod PyPI package.
However the ideal solution would probably be reworking Moonraker to use the PyPI package instead. I'm not sure if there is any particular reason for them to stick with the old libgpiod module though.

Moonraker fails to run

Fresh raspbian install using the docker-compose file.Moonraker seems to be getting an error similar to this project xirixiz/dsmr-reader-docker#186

klipper     | 2021-10-08 21:53:14,569 - supervisord_dependent_startup - [INFO   ]
klipper     | 2021-10-08 21:53:14,570 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STOPPED to STARTING
klipper     | 2021-10-08 21:53:14,582 - supervisord_dependent_startup - [INFO   ] Services:
klipper     | 2021-10-08 21:53:14,590 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True
klipper     | 2021-10-08 21:53:14,598 - supervisord_dependent_startup - [INFO   ]  - moonraker         STARTING                        dependent_startup: True   wait_for: 'klipper:RUNNING'
klipper     | 2021-10-08 21:53:14,606 - supervisord_dependent_startup - [INFO   ] Services not yet running (1): moonraker
klipper     | RESULT 2
klipper     | OKREADY
klipper     | 2021-10-08 21:53:15,610 INFO success: moonraker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 789, in <module>
klipper     | [utils.py:setup_logging()] - config_file: /home/klippy/.config/moonraker.conf
klipper     | 2021-10-08 21:53:16,305 - supervisord_dependent_startup - [INFO   ]
klipper     | 2021-10-08 21:53:16,306 - supervisord_dependent_startup - [INFO   ] New event: Service moonraker went from STARTING to RUNNING
klipper     | [utils.py:setup_logging()] - log_file: /var/log/klipper/moonraker.log
klipper     | [utils.py:setup_logging()] - software_version: v0.7.1-64-gc3f1b29
klipper     |     main()
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 757, in main
klipper     |     event_loop = EventLoop()
klipper     |   File "/home/klippy/moonraker/moonraker/eventloop.py", line 27, in __init__
klipper     |     self.aioloop = asyncio.get_event_loop()
klipper     |   File "/usr/local/lib/python3.9/asyncio/events.py", line 639, in get_event_loop
klipper     |     self.set_event_loop(self.new_event_loop())
klipper     |   File "/usr/local/lib/python3.9/asyncio/events.py", line 659, in new_event_loop
klipper     |     return self._loop_factory()
klipper     |   File "/usr/local/lib/python3.9/asyncio/unix_events.py", line 54, in __init__
klipper     | 2021-10-08 21:53:16,325 - supervisord_dependent_startup - [INFO   ] Services:
klipper     |     super().__init__(selector)
klipper     |   File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 55, in __init__
klipper     |     super().__init__()
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 397, in __init__
klipper     | 2021-10-08 21:53:16,337 - supervisord_dependent_startup - [INFO   ]  - klipper           RUNNING                         dependent_startup: True
klipper     |     self._clock_resolution = time.get_clock_info('monotonic').resolution
klipper     | PermissionError: [Errno 1] Operation not permitted
klipper     | 2021-10-08 21:53:16,346 - supervisord_dependent_startup - [INFO   ]  - moonraker         RUNNING                         dependent_startup: True   wait_for: 'klipper:RUNNING'
klipper     | 2021-10-08 21:53:16,362 - supervisord_dependent_startup - [INFO   ] No more processes to start for initial startup, ignoring all future events.
klipper     | RESULT 2
klipper     | OKException ignored in: <function BaseEventLoop.__del__ at 0x75f9a2b0>
klipper     | Traceback (most recent call last):
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 681, in __del__
klipper     |     _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 419, in __repr__
klipper     |     f'closed={self.is_closed()} debug={self.get_debug()}>'
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1909, in get_debug
klipper     |     return self._debug
klipper     | AttributeError: '_UnixSelectorEventLoop' object has no attribute '_debug'
klipper     | 2021-10-08 21:53:16,530 INFO exited: dependentstartup (exit status 0; expected)
klipper     | 2021-10-08 21:53:16,569 INFO exited: moonraker (exit status 1; not expected)
klipper     | 2021-10-08 21:53:17,579 INFO spawned: 'moonraker' with pid 24
klipper     | 2021-10-08 21:53:18,583 INFO success: moonraker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 789, in <module>
klipper     |     main()
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 757, in main
klipper     | [utils.py:setup_logging()] - config_file: /home/klippy/.config/moonraker.conf
klipper     |     event_loop = EventLoop()
klipper     |   File "/home/klippy/moonraker/moonraker/eventloop.py", line 27, in __init__
klipper     |     self.aioloop = asyncio.get_event_loop()
klipper     |   File "/usr/local/lib/python3.9/asyncio/events.py", line 639, in get_event_loop
klipper     |     self.set_event_loop(self.new_event_loop())
klipper     |   File "/usr/local/lib/python3.9/asyncio/events.py", line 659, in new_event_loop
klipper     |     return self._loop_factory()
klipper     |   File "/usr/local/lib/python3.9/asyncio/unix_events.py", line 54, in __init__
klipper     |     super().__init__(selector)
klipper     |   File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 55, in __init__
klipper     |     super().__init__()
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 397, in __init__
klipper     | [utils.py:setup_logging()] - log_file: /var/log/klipper/moonraker.log
klipper     |     self._clock_resolution = time.get_clock_info('monotonic').resolution
klipper     | PermissionError: [Errno 1] Operation not permitted
klipper     | Exception ignored in: <function BaseEventLoop.__del__ at 0x75f4b2f8>
klipper     | Traceback (most recent call last):
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 681, in __del__
klipper     |     _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 419, in __repr__
klipper     |     f'closed={self.is_closed()} debug={self.get_debug()}>'
klipper     |   File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1909, in get_debug
klipper     |     return self._debug
klipper     | AttributeError: '_UnixSelectorEventLoop' object has no attribute '_debug'
klipper     | 2021-10-08 21:53:18,922 INFO exited: moonraker (exit status 1; not expected)
klipper     | 2021-10-08 21:53:19,933 INFO spawned: 'moonraker' with pid 29

Moonraker : Unable to load component: (database)

Hello there 👋

First of all, thanks for your work
I've been trying to install & run this stack but here are the different errors I kept getting :

klipper    | [moonraker.py:load_component()] - Unable to load component: (database)
klipper    | Traceback (most recent call last):
klipper    |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 200, in load_component
klipper    |     component = load_func(config)
klipper    |   File "/home/klippy/moonraker/moonraker/components/database.py", line 518, in load_component
klipper    |     return MoonrakerDatabase(config)
klipper    |   File "/home/klippy/moonraker/moonraker/components/database.py", line 74, in __init__
klipper    |     os.mkdir(self.database_path)
klipper    | PermissionError: [Errno 13] Permission denied: '/home/klippy/.moonraker/database'
klipper    | [moonraker.py:main()] - Moonraker Error
klipper    | Traceback (most recent call last):
klipper    |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 200, in load_component
klipper    |     component = load_func(config)
klipper    |   File "/home/klippy/moonraker/moonraker/components/database.py", line 518, in load_component
klipper    |     return MoonrakerDatabase(config)
klipper    |   File "/home/klippy/moonraker/moonraker/components/database.py", line 74, in __init__
klipper    |     os.mkdir(self.database_path)
klipper    | PermissionError: [Errno 13] Permission denied: '/home/klippy/.moonraker/database'
klipper    | 
klipper    | During handling of the above exception, another exception occurred:
klipper    | 
klipper    | Traceback (most recent call last):
klipper    |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 755, in main
klipper    |     server = Server(app_args, file_logger)
klipper    |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 138, in __init__
klipper    |     self._load_components(config)
klipper    |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 176, in _load_components
klipper    |     self.load_component(config, component)
klipper    |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 206, in load_component
klipper    |     raise ServerError(msg)
klipper    | utils.ServerError: Unable to load component: (database)
klipper    | [moonraker.py:main()] - Server Shutdown
klipper    | 2021-07-11 23:42:21,495 INFO exited: moonraker (exit status 1; not expected)
  • I didn't test the repo as-is beforehand so I also tried to git restore * before a docker-compose pull && docker-compose up.
    • Unfortunately resulted in the same issue.
  • I decided I didn't need Mainsail so I uncommented the build part for Fluidd and commented the whole Mainsail part.
    • Same result

I've also seen the #3 issue so I decided to try and run a shell to chmod 664 as advised and this specific error disappeared.
But, here's the funny part, now the issue seems to be another EACCESS but somewhere else.
The message I keep getting over and over :

klipper    | 2021-07-11 23:48:08,240 INFO spawned: 'klipper' with pid 10
klipper    | supervisor: couldn\'t exec /home/klippy/klippy-env/bin/python: EACCES
klipper    | supervisor: child process was not spawned
klipper    | 2021-07-11 23:48:08,246 INFO exited: klipper (exit status 127; not expected)

Since everything happens in volumes built by the different Dockerfiles, aren't permissions supposed to be "good to go" by default ?
Also, there are some warnings caused by pip installing as root so I'm wondering if that might be the source 🤔


Setup :

  • Docker
  • Docker-Compose
  • Portainer
  • Ubuntu 20.04

Configuration File Not Found: '/home/klippy/.config/moonraker.conf'

I am stuck at this point, the moonraker start and shutdown. Please see below

RESULT 2
klipper     | OK2022-01-11 18:42:19,363 - supervisord_dependent_startup - [INFO   ] No more processes to start for initial startup, ignoring all future events.
klipper     | 2022-01-11 18:42:19,576 INFO exited: dependentstartup (exit status 0; expected)
klipper     | 2022-01-11 18:42:19,576 INFO exited: moonraker (exit status 1; not expected)
klipper     | 2022-01-11 18:42:20,584 INFO spawned: 'moonraker' with pid 18
klipper     | [utils.py:setup_logging()] - config_file: /home/klippy/.config/moonraker.conf
klipper     | [utils.py:setup_logging()] - log_file: /var/log/klipper/moonraker.log
klipper     | [utils.py:setup_logging()] - software_version: v0.7.1-285-g505c1bf
klipper     | [moonraker.py:main()] - Moonraker Error
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 867, in main
klipper     |     server = Server(app_args, file_logger, event_loop)
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 77, in __init__
klipper     |     self.config = config = confighelper.get_configuration(self, args)
klipper     |   File "/home/klippy/moonraker/moonraker/confighelper.py", line 409, in get_configuration
klipper     |     raise ConfigError(
klipper     | confighelper.ConfigError: Configuration File Not Found: '/home/klippy/.config/moonraker.conf''
klipper     | [moonraker.py:main()] - Server Shutdown
klipper     | 2022-01-11 18:42:21,780 INFO success: moonraker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
klipper     | 2022-01-11 18:42:21,781 INFO exited: moonraker (exit status 1; not expected)
klipper     | 2022-01-11 18:42:22,789 INFO spawned: 'moonraker' with pid 21
klipper     | [utils.py:setup_logging()] - config_file: /home/klippy/.config/moonraker.conf
klipper     | [utils.py:setup_logging()] - log_file: /var/log/klipper/moonraker.log
klipper     | [utils.py:setup_logging()] - software_version: v0.7.1-285-g505c1bf
klipper     | [moonraker.py:main()] - Moonraker Error
klipper     | Traceback (most recent call last):
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 867, in main
klipper     |     server = Server(app_args, file_logger, event_loop)
klipper     |   File "/home/klippy/moonraker/moonraker/moonraker.py", line 77, in __init__
klipper     |     self.config = config = confighelper.get_configuration(self, args)
klipper     |   File "/home/klippy/moonraker/moonraker/confighelper.py", line 409, in get_configuration
klipper     |     raise ConfigError(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.