How To Publish Docker Templates to Community Applications on unRAID

Recommended Posts

In your example, you're actually making a (very) common mistake on the webUI entry.  The port there refers to the container port, not the host port.  This allows Unraid to look at whatever host port is mapped to the port listed in the webUI entry and adjust the URL accordingly.  ie: In the example, effectively the WebUI will always go to port 8282 regardless if the user has mapped 8080 to be instead 8081 (since 8282 isn't a valid container port).  You want http://[IP]:[PORT:8080] for everything to work correctly.


To expand on why I recommend not including host paths (and as you rightly deduced that is not for things like appdata or special linux folders on the host, but rather for shares) is because if the user just happens to accept the template defaults, then that share that the host path is referencing will automatically be created which may lead to some confusion (or even issues under certain circumstances)


Beyond that, everything looks great :)  Thanks for doing a vid on this....



Link to comment

And something else which most people aren't really aware of.  If in CA you hit "Statistics", there's some info in there regarding the feed.  If you've added a new template to an existing repository and it hasn't showed up within ~2 hours (you can see the last time the feed ran on that screen), you'll see why it's not appearing by clicking on either the Template Errors link, or the Invalid Templates link.  The former lists all the errors (and pet peeves) found on the templates, some of which CA considers to be fatal, and the Invalid Templates are ones where a syntax error in the XML prevent parsing it.


On a new repository being added, I'll reply to the PM either with questions / suggestions / fixes required or let you know that it's in there.  My goal is to get new repositories added within a couple of hours of receiving the PM.

Link to comment
10 hours ago, Roxedus said:

Like the video. But my OCD really don't like the output, many of the fields are just not needed, I dedicated whole section on that on my write up on how to create a template.

The extra / duplicated fields are for backwards compatibility with Unraid 6.0 / 6.1.  


So long as you understand XML formatting and certain character encoding, there is nothing wrong with doing it the manual way.  (But you'd be quite surprised at the number of times manual edits introduce syntax errors)


But, you might want to append your instructions to state (for your own use) that the URL you put into <TemplateURL> is always overwritten by CA.  Upwards of 75% of the authors fill it out incorrectly, so CA always overwrites it with the correct value.  (And adds the entry if its missing).  This is why there's actually no way to set the entry on 6.8 via the GUI.


The only time <TemplateURL> is left alone is if it is


This is a special circumstance used in a template where the author feels that it is undesirable behaviour that when an update is issued to the container that any ports present in the template that are missing in the user's installation are added back in on the user's installation.  (IE: the template won't get updated if/when the container gets updated)

Link to comment
Just now, Roxedus said:

The combability aspect is new for me. 

It's not a real big deal as CA itself isn't compatible back that far, but the elements have to remain for the OS itself to be able to read those entries as there are tons of apps which do not contain the v2 elements within the templates.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.