N8n on Unraid: XML Template for use as Private Community App

In case anyone else is on Unraid and wants to run this in a docker container, I created the following XML which works to add it as a “private” app using the Community Apps plugin.

  1. Create a folder at /boot/config/plugins/community.applications/private/n8n
  2. Put the XML at bottom of post into a file (e.g bobbyt1-n8n.xml) at /boot/config/plugins/community.applications/private/n8n/bobbyt1-n8n.xml.
  3. Go to the Community Apps section within your unraid dashboard, and on the left side, look for “private apps”. Click on it, and you’ll see your n8n custom app there.
  4. Tap the install button, and change whatever values you need to (e.g. Timezone and where the app data should live).
<?xml version="1.0"?>
<Container version="2">
  <Name>n8n</Name>
  <Repository>n8nio/n8n</Repository>
  <Registry>https://hub.docker.com/r/n8nio/n8n/</Registry>
  <Network>bridge</Network>
  <MyIP/>
  <Shell>sh</Shell>
  <Privileged>false</Privileged>
  <Support>https://community.n8n.io/</Support>
  <Project>https://n8n.io/</Project>
  <Overview>n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database.</Overview>
  <Category>HomeAutomation: Tools:</Category>
  <WebUI>http://[IP]:[PORT:5678]/</WebUI>
  <TemplateURL/>
  <Icon>https://i.imgur.com/cL1XvTm.png</Icon>
  <ExtraParams>--restart unless-stopped</ExtraParams>
  <PostArgs/>
  <CPUset/>
  <DateInstalled>1602556511</DateInstalled>
  <DonateText/>
  <DonateLink/>
  <Description>n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database.</Description>
  <Networking>
    <Mode>bridge</Mode>
    <Publish>
      <Port>
        <HostPort>5678</HostPort>
        <ContainerPort>5678</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
    </Publish>
  </Networking>
  <Data>
    <Volume>
      <HostDir>/mnt/cache/appdata/n8n</HostDir>
      <ContainerDir>/root/.n8n</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
  </Data>
  <Environment>
    <Variable>
      <Value>America/Los_Angeles</Value>
      <Name>GENERIC_TIMEZONE</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>http://192.168.1.161:5678/</Value>
      <Name>WEBHOOK_TUNNEL_URL</Name>
      <Mode/>
    </Variable>
  </Environment>
  <Labels/>
  <Config Name="Timezone" Target="GENERIC_TIMEZONE" Default="America/Los_Angeles" Mode="" Description="Required for scheduling to know what time zone the workflows should be started. See  https://momentjs.com/timezone/ to find your timezone string." Type="Variable" Display="always" Required="false" Mask="false">America/Los_Angeles</Config>
  <Config Name="Config" Target="/root/.n8n" Default="/mnt/cache/appdata/n8n" Mode="rw" Description="Where to save config and SQL Lite Database which holds your workflows." Type="Path" Display="always" Required="true" Mask="false">/mnt/cache/appdata/n8n</Config>
  <Config Name="Webhook Tunnel URL" Target="WEBHOOK_TUNNEL_URL" Default="" Mode="" Description="Set the webhook URL manually to correctly display in Editor UI and for it to get registered correctly with external services. Must have trailing slash. (e.g.'http://192.168.1.161:5678/')" Type="Variable" Display="always" Required="false" Mask="false">http://192.168.1.161:5678/</Config>
  <Config Name="Port" Target="5678" Default="5678" Mode="tcp" Description="Container Port: 5678" Type="Port" Display="always" Required="true" Mask="false">5678</Config>
</Container>


2 Likes

Welcome to the community @tmchow!

Thanks a lot for this write-up. I am sure will be very helpful for people!

1 Like

FYI, this is out of date already as I published the app to the Unraid Community apps so not local XML files are necessary. See this thread:

2 Likes

This is how I got aware of n8n and tried it out with a few simple clicks. Thank you tmchow

4 Likes