Docker Logs & Support Bundle
When something goes wrong, logs are your first stop. O.D.I.N. runs 7 supervised processes inside a single container, and each one writes its own logs.
Viewing Container Logs
The quickest way to see what's happening:
docker compose logs -f
To limit output to the last 100 lines:
docker compose logs odin --tail 100
If you have the O.D.I.N. repo cloned locally, use the make targets:
make logs # tail container logs (follow mode)
make shell # open a bash shell inside the container
Supervised Processes
O.D.I.N. uses supervisord to manage its processes. Each process writes logs to /var/log/supervisor/ inside the container.
| Process | Log File | Purpose |
|---|---|---|
| FastAPI backend | odin-stdout.log | API server, web UI |
| Bambu MQTT monitor | bambu-monitor-stdout.log | Bambu Lab printer telemetry |
| Moonraker monitor | moonraker-monitor-stdout.log | Klipper/Moonraker printer telemetry |
| PrusaLink monitor | prusalink-monitor-stdout.log | Prusa printer telemetry |
| Elegoo monitor | elegoo-monitor-stdout.log | Elegoo printer telemetry |
| go2rtc | go2rtc-stdout.log | Camera streaming |
| Vigil AI | vision-monitor-stdout.log | AI print failure detection |
To read a specific process log from outside the container:
docker compose exec odin cat /var/log/supervisor/bambu-monitor-stdout.log
To check process status:
docker compose exec odin supervisorctl status
Support Bundle
When filing a bug report, collect a support bundle to give maintainers the context they need.
What to Include
- Container logs (last 500 lines):
docker compose logs odin --tail 500 > odin-logs.txt
- Supervisor process status:
docker compose exec odin supervisorctl status > odin-supervisor.txt
- System info:
docker version > odin-system.txt
docker compose version >> odin-system.txt
uname -a >> odin-system.txt
- O.D.I.N. version -- visible in the web UI footer or via the API:
curl -s http://localhost:8000/api/v1/health | python3 -m json.tool
Zip these files together and attach them to your GitHub issue or support request. The more context you provide, the faster the issue can be diagnosed.
Logs may contain printer IP addresses and hostnames. If you're posting logs publicly, review them first and redact anything sensitive.