mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Updated Design: Runnable Project (markdown)
parent
963689405b
commit
c4d3c2d230
@ -19,6 +19,7 @@ We can't quite do this today. Here are the missing pieces:
|
|||||||
> DCJ: Are we pointing Node-RED or npm start ? Which are we calling to run it ? If npm start then don't we already have to be in the correct project directory ? (or use npm start --prefix projdir)
|
> DCJ: Are we pointing Node-RED or npm start ? Which are we calling to run it ? If npm start then don't we already have to be in the correct project directory ? (or use npm start --prefix projdir)
|
||||||
3. it must be possible to provide the credentialSecret for the project without it being part of any of the version controlled files. Options for this include:
|
3. it must be possible to provide the credentialSecret for the project without it being part of any of the version controlled files. Options for this include:
|
||||||
- env var - `NODE_RED_CREDENTIAL_SECRET`
|
- env var - `NODE_RED_CREDENTIAL_SECRET`
|
||||||
|
- [DCJ] easy to add to settings.js - `credentialSecret: process.env.NODE_RED_CREDENTIAL_SECRET` and would suit Docker style deploy.
|
||||||
- command-line flag - `--credentialSecret="..."`
|
- command-line flag - `--credentialSecret="..."`
|
||||||
|
|
||||||
4. Must handle running in a read-only environment. If the package is installed globally (in order to insert a command link into /usr/bin) then the flow file and settings.js will be in root space - which ought not to be writable by the user. Currently even starting Node-RED with -u option pointing somewhere protected will fail. Options include
|
4. Must handle running in a read-only environment. If the package is installed globally (in order to insert a command link into /usr/bin) then the flow file and settings.js will be in root space - which ought not to be writable by the user. Currently even starting Node-RED with -u option pointing somewhere protected will fail. Options include
|
||||||
@ -34,7 +35,14 @@ It could also provide a `bin` section that could allow starting via command line
|
|||||||
### Runtime settings
|
### Runtime settings
|
||||||
|
|
||||||
When deploying the project, there will also be a need to have the runtime settings provided. These are not normally part of a project generated by Node-RED. The question is whether we have some tooling support to generate, or we just document how to do it. For example, the user would manually add a `settings.js` file to their project repo.
|
When deploying the project, there will also be a need to have the runtime settings provided. These are not normally part of a project generated by Node-RED. The question is whether we have some tooling support to generate, or we just document how to do it. For example, the user would manually add a `settings.js` file to their project repo.
|
||||||
> DCJ: If we have the "add node-red as a dependency" checkbox - could it not also... "copy default settings.js into project" ? (but ensuring flowFile doesn't clash)
|
> DCJ: If we have the "add node-red as a dependency" checkbox - could it not also... "copy default settings.js into project" or create a minimal settings.js (i.e. without defaults and comments) ? (but ensuring flowFile doesn't clash) e.g.
|
||||||
|
|
||||||
|
```
|
||||||
|
module.exports = {
|
||||||
|
uiPort: process.env.PORT || 1880,
|
||||||
|
credentialSecret: process.env.NODE_RED_CREDENTIAL_SECRET
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Credentials
|
### Credentials
|
||||||
@ -55,7 +63,13 @@ We should also have an example Dockerfile that can be used to build and run a pr
|
|||||||
# and about resin base images here: http://docs.resin.io/runtime/resin-base-images/
|
# and about resin base images here: http://docs.resin.io/runtime/resin-base-images/
|
||||||
# Note the node:slim image doesn't have node-gyp
|
# Note the node:slim image doesn't have node-gyp
|
||||||
|
|
||||||
FROM resin/%%RESIN_MACHINE_NAME%%-node:8-slim
|
## Uncomment one of the following FROM lines to suit your environment
|
||||||
|
# For generic servers
|
||||||
|
#FROM node:8-slim
|
||||||
|
# For Pi...
|
||||||
|
FROM arm32v7/node:8-slim
|
||||||
|
# For Resin.io
|
||||||
|
#FROM resin/%%RESIN_MACHINE_NAME%%-node:8-slim
|
||||||
|
|
||||||
# Uncomment the next three lines if you want GPIO for Pi
|
# Uncomment the next three lines if you want GPIO for Pi
|
||||||
#RUN apt-get update && apt-get install -yq \
|
#RUN apt-get update && apt-get install -yq \
|
||||||
@ -71,6 +85,7 @@ RUN JOBS=MAX npm install --production --unsafe-perm --no-optional && npm cache c
|
|||||||
COPY . ./
|
COPY . ./
|
||||||
|
|
||||||
ENV INITSYSTEM on
|
ENV INITSYSTEM on
|
||||||
|
ENV HOST_IP=172.17.0.1
|
||||||
ENV NODE_PATH=/usr/src/app/node_modules
|
ENV NODE_PATH=/usr/src/app/node_modules
|
||||||
|
|
||||||
EXPOSE 1880
|
EXPOSE 1880
|
||||||
|
Loading…
x
Reference in New Issue
Block a user