Inspiration

Running apps such as Jellyfin, Immich, and Paperless in Docker is a primary use of a home NAS. However, when a container's account does not match its folders' ownership, the result is an empty library or "permission denied," and these threads on the UGREEN forum often take 10 to 17 replies to resolve. One user even noted that they had already tried debugging with AI, which fails because a chatbot cannot see the NAS.

What it does

Docker Doctor reads the app's compose file, its own logs and settings, and the owner and mode of every mapped folder and its parents. It then determines which account the container actually runs as, matches the evidence to one of eleven known causes, and asks the owner a single question only when the fix depends on other users. Finally, it explains the cause with evidence, saves a corrected docker-compose.fixed.yml after approval, and rechecks the log after the restart.

How we built it

The Skill is a six-step Markdown workflow that delegates to file-agent (find, cat, stat, ls) and knowledge-agent (save-text). To evaluate it, a simulated NAS was built with per-case file systems, owners, modes, logs, and a simulated owner. The Skill was frozen before testing and compared against a single AI call, a checklist script that could ask questions, and UGOS built-ins, with a blind AI judge scoring each answer.

Challenges we ran into

A checklist script solved the first ten cases because the same author wrote both, so a separate AI agent wrote eight new cases from real UGREEN, Synology, QNAP, and TrueNAS threads. In addition, the current kit (catalog 2.0.0) has no action for container output, permission changes, or restarts, so the Skill writes the fix for the owner to apply rather than applying it.

Accomplishments that we're proud of

On the eight independent cases, Docker Doctor identified the root cause in 6 of 8 (7 of 8 in a re-run of the final version), against 3.5 for a single AI call, 0.5 for the checklist script, and 0 for UGOS built-ins. It asked at most one question per case, while the original forum posters needed 3 to 35 replies.

What we learned

When one AI call was given all of the evidence, it solved every case; thus, the value of the Skill lies in knowing which evidence to collect and in what order, not in the final reasoning step.

What's next for Docker Doctor

The next step is a run on a real UGREEN NAS, starting with what stat actually returns. If UGREEN adds container and permission actions to the kit, the same workflow can read live container logs and apply the fix after approval, then recheck it.

Built With

Share this project:

Updates

Submission history