When you say you have an app locally is that n8n or are you embedding n8n as part of your app? Assuming you are just trying to get your node to appear in n8n you could publish it as a community node or if it is private you could build image using something like this…
ARG N8N_VERSION
FROM n8nio/n8n:$N8N_VERSION
RUN npm config set -g production false
RUN mkdir /working-dir
COPY . /working-dir
RUN cd /working-dir && npm install && npm run build && npm pack && \
cd /usr/local/lib/node_modules/n8n && npm install /working-dir/*.tgz
RUN rm -rf /working-dir
RUN npm config set -g production true
When I say I have an app locally I mean that I’m using n8n as part of my app. I use it to be able to see the UI and interact, I would like to deploy that with my nodes. If that makes any sense.
What I do locally is: npm i & npm run build (inside my repository folder) npm install n8n -g npm link (inside my repository folder) npm link my-nodes in the n8n folder (AppData\Roaming\npm\node_modules\n8n) n8n start to get the localhost
That way I can get the localhost with the nodes that I made, that’s what I would like to replicate but deploying it on AWS
Typically adding n8n as part of an application is considered embedding depending on what n8n use used for in the application, while our source is available we are not open source and our license has some terms to it, you can find a bit more here: Faircode license - n8n Documentation
The path probably wouldn’t be appdata in docker it would be whatever the path your container uses for npm packages. You could make the image without the node the use the docker cli to check what the paths should be and work from there.