Hallo zusammen,
ich wollte die linuxmuster-api auf meinem Testsystem (7.3) installieren. Allerdings startet der Service linuxmuster-apinicht:
Nov 16 12:53:25 server.pn.steinbeis.schule systemd[1]: Started linuxmuster-api.service - linuxmuster.net API.
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: Traceback (most recent call last):
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/usr/lib/python3/dist-packages/linuxmusterApi/main.py", line 156, in <module>
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: uvicorn.run("main:app", **config['uvicorn'])
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/uvicorn/main.py", line 593, in run
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: server.run()
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/uvicorn/server.py", line 67, in run
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: return runner.run(main)
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: return self._loop.run_until_complete(task)
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: return future.result()
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/uvicorn/server.py", line 71, in serve
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: await self._serve(sockets)
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/uvicorn/server.py", line 78, in _serve
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: config.load()
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/uvicorn/config.py", line 439, in load
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: self.loaded_app = import_from_string(self.app)
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: module = importlib.import_module(module_str)
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: return _bootstrap._gcd_import(name[level:], package, level)
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "<frozen importlib._bootstrap_external>", line 995, in exec_module
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/usr/lib/python3/dist-packages/linuxmusterApi/main.py", line 35, in <module>
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: app.mount("/static", StaticFiles(directory="static"), name="static")
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: File "/opt/linuxmuster/lib/python3.12/site-packages/starlette/staticfiles.py", line 56, in __init__
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: raise RuntimeError(f"Directory '{directory}' does not exist")
Nov 16 12:53:27 server.pn.steinbeis.schule python3[93895]: RuntimeError: Directory 'static' does not exist
Nov 16 12:53:28 server.pn.steinbeis.schule systemd[1]: linuxmuster-api.service: Main process exited, code=exited, status=1/FAILURE
Nov 16 12:53:28 server.pn.steinbeis.schule systemd[1]: linuxmuster-api.service: Failed with result 'exit-code'.
Nov 16 12:53:28 server.pn.steinbeis.schule systemd[1]: linuxmuster-api.service: Consumed 2.781s CPU time.
Irgendein Problem mit dem „static“ Verzeichnis, welches nicht existiert.
Woran könnte das liegen?
Viele Grüße
Raphael