diff --git a/.github/workflows/docker-image-beta.yml b/.github/workflows/docker-image-beta.yml
new file mode 100644
index 000000000..8dbe8082f
--- /dev/null
+++ b/.github/workflows/docker-image-beta.yml
@@ -0,0 +1,45 @@
+name: Docker Image - Beta
+
+on:
+ schedule:
+ - cron: '0 2 * * *'
+ workflow_dispatch:
+ branch:
+ description: 'Branch to create image off.'
+ required: true
+ default: 'ai-tool-creation-breaking'
+ tag:
+ description: 'Name of the docker tag to create.'
+ required: true
+ default: 'ai-beta'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3.5.3
+ with:
+ fetch-depth: 0
+ ref: ${{ github.event.inputs.branch || 'ai-tool-creation-breaking' }}
+
+ - uses: docker/setup-qemu-action@v2
+ - uses: docker/setup-buildx-action@v2
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v2.2.0
+ with:
+ username: ${{ secrets.DOCKER_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Build and push
+ uses: docker/build-push-action@v4.1.1
+ with:
+ context: .
+ file: ./docker/images/n8n-custom/Dockerfile
+ build-args: |
+ N8N_RELEASE_TYPE=beta
+ platforms: linux/amd64
+ provenance: false
+ push: true
+ tags: ${{ secrets.DOCKER_USERNAME }}/n8n:${{ github.event.inputs.tag || 'ai-beta' }}
+ no-cache: true
diff --git a/.github/workflows/docker-images-nightly.yml b/.github/workflows/docker-images-nightly.yml
index f804c1088..2be6e4061 100644
--- a/.github/workflows/docker-images-nightly.yml
+++ b/.github/workflows/docker-images-nightly.yml
@@ -73,6 +73,8 @@ jobs:
uses: docker/build-push-action@v4.1.1
with:
context: .
+ build-args: |
+ N8N_RELEASE_TYPE=nightly
file: ./docker/images/n8n-custom/Dockerfile
platforms: linux/amd64
provenance: false
diff --git a/docker/images/n8n-custom/Dockerfile b/docker/images/n8n-custom/Dockerfile
index 5c5f37c8d..0d6f9e54d 100644
--- a/docker/images/n8n-custom/Dockerfile
+++ b/docker/images/n8n-custom/Dockerfile
@@ -1,4 +1,5 @@
ARG NODE_VERSION=18
+ARG N8N_RELEASE_TYPE=dev
# 1. Create an image to build n8n
FROM n8nio/base:${NODE_VERSION} as builder
@@ -35,4 +36,5 @@ RUN \
chown node:node .n8n
USER node
ENV NODE_ENV=production
+ENV N8N_RELEASE_TYPE=${N8N_RELEASE_TYPE}
ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]
diff --git a/docker/images/n8n/Dockerfile b/docker/images/n8n/Dockerfile
index 75892ddff..a69956363 100644
--- a/docker/images/n8n/Dockerfile
+++ b/docker/images/n8n/Dockerfile
@@ -6,6 +6,7 @@ RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!"
ENV N8N_VERSION=${N8N_VERSION}
ENV NODE_ENV=production
+ENV N8N_RELEASE_TYPE=stable
RUN set -eux; \
apkArch="$(apk --print-arch)"; \
case "$apkArch" in \
diff --git a/packages/cli/src/Server.ts b/packages/cli/src/Server.ts
index 22b67be6e..93a6128df 100644
--- a/packages/cli/src/Server.ts
+++ b/packages/cli/src/Server.ts
@@ -249,7 +249,7 @@ export class Server extends AbstractServer {
urlBaseWebhook,
urlBaseEditor: instanceBaseUrl,
versionCli: '',
- isBetaRelease: config.getEnv('generic.isBetaRelease'),
+ releaseChannel: config.getEnv('generic.releaseChannel'),
oauthCallbackUrls: {
oauth1: `${instanceBaseUrl}/${this.restEndpoint}/oauth1-credential/callback`,
oauth2: `${instanceBaseUrl}/${this.restEndpoint}/oauth2-credential/callback`,
diff --git a/packages/cli/src/config/schema.ts b/packages/cli/src/config/schema.ts
index b8052444f..4e7420cf5 100644
--- a/packages/cli/src/config/schema.ts
+++ b/packages/cli/src/config/schema.ts
@@ -432,11 +432,11 @@ export const schema = {
default: 'main',
},
- isBetaRelease: {
- doc: 'If it is a beta release',
- format: 'Boolean',
- default: false,
- env: 'IS_BETA_RELEASE',
+ releaseChannel: {
+ doc: 'N8N release channel',
+ format: ['stable', 'beta', 'nightly', 'dev'] as const,
+ default: 'dev',
+ env: 'N8N_RELEASE_TYPE',
},
},
diff --git a/packages/editor-ui/public/n8n-dev-logo.svg b/packages/editor-ui/public/n8n-dev-logo.svg
new file mode 100644
index 000000000..4752c9ca1
--- /dev/null
+++ b/packages/editor-ui/public/n8n-dev-logo.svg
@@ -0,0 +1,2 @@
+
diff --git a/packages/editor-ui/public/n8n-nightly-logo.svg b/packages/editor-ui/public/n8n-nightly-logo.svg
new file mode 100644
index 000000000..7df119fe5
--- /dev/null
+++ b/packages/editor-ui/public/n8n-nightly-logo.svg
@@ -0,0 +1,2 @@
+
diff --git a/packages/editor-ui/src/components/Logo.vue b/packages/editor-ui/src/components/Logo.vue
index a4347825d..8504ae28c 100644
--- a/packages/editor-ui/src/components/Logo.vue
+++ b/packages/editor-ui/src/components/Logo.vue
@@ -5,19 +5,16 @@