Compare commits

...
Author SHA1 Message Date
autonomic-bot 032ca011e8 chore: upgrade n8nio/n8n to 2.35.2
cc-ci/testme cc-ci: success
2026-08-15 21:02:07 +00:00
autonomic-bot cdfded83ef chore: upgrade n8n to 2.35.3
cc-ci/testme cc-ci: success
2026-08-15 20:20:14 +00:00
javielico c8525c3fb6 chore: publish 3.4.2+2.34.4 release 2026-08-10 22:06:08 +01:00
javielico bdda157477 chore: update image tags 2026-08-10 22:06:03 +01:00
javielico 05b2d4cb24 chore: publish 3.4.1+2.34.3 release 2026-08-10 22:03:53 +01:00
javielico 865ab87409 chore: update image tags 2026-08-10 22:03:20 +01:00
notplants db9d5939fb chore: publish 3.2.1+2.34.2 release 2026-08-10 15:02:54 -04:00
notplants 51c7190946 Merge pull request 'chore: upgrade n8n to 2.34.2 + postgres autoupgrade' (#12) from upgrade-3.4.0+2.25.3 into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/12
2026-08-10 19:02:21 +00:00
notplants ba71403a69 chore: upgrade n8n to 2.34.2 + postgres autoupgrade
cc-ci/testme cc-ci: success
- bump image n8nio/n8n:2.1.4 -> 2.34.2
- switch postgres image to pgautoupgrade/pgautoupgrade:18-alpine
- adjust postgres volume mount path for pgautoupgrade
- version label bump deferred to 'abra recipe release'

# Conflicts:
#	compose.yml
2026-08-10 19:01:18 +00:00
trav d7c4aa46b5 chore: publish 3.4.0+2.27.2 release 2026-06-22 15:31:49 -04:00
trav 9d5952d416 Merge pull request 'upgrade-3.4.1+2.27.0' (#11) from upgrade-3.4.1+2.27.0 into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/11
2026-06-22 19:31:19 +00:00
autonomic-bot 95bdb7ca81 chore: upgrade n8n to 2.27.2
cc-ci/testme cc-ci: success
2026-06-19 03:39:19 +00:00
notplants b515b233f0 chore: upgrade to 3.4.1+2.27.0
cc-ci/testme cc-ci: success
2026-06-17 00:58:20 +01:00
trav 5260a4aa05 Merge pull request 'chore: upgrade to 3.3.0+2.23.2' (#10) from upgrade-3.3.0+2.23.2 into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/10
2026-06-02 18:00:25 +00:00
autonomic-bot 0abac7df49 chore: upgrade to 3.3.0+2.23.2
cc-ci/testme cc-ci: success
2026-06-02 05:12:40 +00:00
trav 63dd3e0f94 chore: upgrade to 3.2.0+2.20.6 2026-05-11 14:14:56 -04:00
cyrnel b8a8c5ca88 chore: upgrade to 2.9.4 2026-03-01 11:28:05 -05:00
joe-irving b4f10e64d2 Merge pull request 'chore: publish 3.0.0+2.1.4 release' (#7) from 3.0.0 into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/7
Reviewed-by: cyrnel <cyrnel@noreply.git.coopcloud.tech>
2026-01-04 09:48:08 +00:00
Joe Irving b3c6c364f9 feat: 3.0.0+2.1.4 2026-01-02 15:59:02 +00:00
Joe Irving 068485f2d6 feat: update 2026-01-02 12:35:32 +00:00
Philipp Rothmann 93dc4b8bb6 chore: publish 2.1.0+1.120.1 release 2025-11-13 20:46:11 +01:00
cyrnel 09c06ecbc4 Merge pull request 'chore: upgrade to 1.114.4' (#6) from v1-106-2 into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/6
2025-10-12 13:34:24 +00:00
cyrnel 8b089791f6 chore: upgrade to 1.114.4 2025-10-11 13:46:51 -04:00
cyrnel d09218c03a chore: upgrade to 1.106.2 2025-10-11 13:39:36 -04:00
cyrnel 4fa5340e4c Merge pull request '[mass update] fix supporting multiple domains while enforcing ssl' (#5) from forceSsl into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/5
Reviewed-by: cyrnel <cyrnel@noreply.git.coopcloud.tech>
2025-10-08 03:35:51 +00:00
Ammar Hussein a659454cab [mass update] fix supporting multiple domains while enforcing ssl 2025-09-08 08:11:47 -07:00
Simon 1561d42450 chore: publish 1.0.0+1.81.2 release 2025-03-03 13:46:49 +01:00
cas 570915151d Update .drone.yml 2025-01-08 10:09:13 -08:00
3wordchant da168a62cc Merge pull request 'default_sqlite' (#4) from default_sqlite into main
Reviewed-on: https://git.coopcloud.tech/coop-cloud/n8n/pulls/4
2024-04-11 21:01:44 +00:00
cas d450ef32f0 Add release notes 2024-04-11 13:48:15 -07:00
cas daa00ec73c Fix version in compose.postgres.yml 2024-04-09 09:40:40 -07:00
cas 7f5744f02e Remove stray swp file 2024-04-09 09:32:28 -07:00
cas da957caf81 Split postgres support into separate compose so that it defaults to sqlite instead 2024-04-09 09:31:12 -07:00
3wordchant db29a2ec3c chore: publish 0.7.0+0.237.0 release 2024-01-20 21:40:59 -03:00
3wordchant e1e9a05be3 Add postgres upgrade magic 2024-01-20 21:40:15 -03:00
3wordchant a9bb848aba chore: publish 0.6.2+0.236.3 release 2023-07-25 15:47:15 +01:00
3wordchant 30d9f2976e Don't specify image in compose.sso..
..otherwise it sneakily upgrades us to n8n:latest which is Not Good
2023-07-25 15:46:41 +01:00
3wordchant f4f7f6d720 chore: publish 0.6.1+0.236.3 release 2023-07-24 14:24:15 +01:00
3wordchant 89e09081cf chore: publish 0.6.0+0.236.0 release 2023-07-08 19:46:02 +01:00
3wordchant 09dd23d512 chore: publish 0.5.0+0.226.0 release 2023-04-27 14:57:25 -04:00
3wordchant 4457cc7d28 Switch to self-hosted stack-ssh-deploy image [mass update] 2023-01-21 11:49:56 -08:00
3wordchant 0815a8ed69 Add drone configs / secrets [mass update] 2023-01-20 21:32:06 -08:00
3wordchant d970a329fb Add CI and catalogue generation [mass update] 2023-01-20 10:45:03 -08:00
3wordchant 5b4591fb8b Update abra syntax in examples (finally) [mass update] 2023-01-19 16:02:28 -08:00
3wordchant abbbb96751 Update README 2022-11-26 12:25:31 -08:00
3wordchant 9a7455acc0 chore: publish 0.4.1+0.204.0 release 2022-11-26 11:53:27 -08:00
13 changed files with 175 additions and 65 deletions
+39
View File
@@ -0,0 +1,39 @@
---
kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: n8n
generate_secrets: true
purge: true
deploy_key:
from_secret: drone_ssh_swarm_test
networks:
- proxy
environment:
DOMAIN: n8n.swarm-test.autonomic.zone
STACK_NAME: n8n
LETS_ENCRYPT_ENV: production
SECRET_DB_PASSWORD_VERSION: v1
trigger:
branch:
- main
---
kind: pipeline
name: generate recipe catalogue
steps:
- name: release a new version
image: plugins/downstream
settings:
server: https://build.coopcloud.tech
token:
from_secret: drone_abra-bot_token
fork: true
repositories:
- toolshed/auto-recipes-catalogue-json
trigger:
event: tag
+7 -5
View File
@@ -6,8 +6,6 @@ DOMAIN=n8n.example.com
#EXTRA_DOMAINS=', `www.n8n.example.com`' #EXTRA_DOMAINS=', `www.n8n.example.com`'
LETS_ENCRYPT_ENV=production LETS_ENCRYPT_ENV=production
SECRET_DB_PASSWORD_VERSION=v1
# Change to `true` to enable sending "anonymous" telemetry data to n8n # Change to `true` to enable sending "anonymous" telemetry data to n8n
# https://docs.n8n.io/reference/data-collection/ # https://docs.n8n.io/reference/data-collection/
N8N_DIAGNOSTICS_ENABLED=false N8N_DIAGNOSTICS_ENABLED=false
@@ -15,16 +13,20 @@ N8N_DIAGNOSTICS_ENABLED=false
# Change to `true` to enable questionnaire-based customisation of the UI # Change to `true` to enable questionnaire-based customisation of the UI
N8N_PERSONALIZATION_ENABLED=false N8N_PERSONALIZATION_ENABLED=false
# "Permit users to import specific built-in modules in the Code node"
#NODE_FUNCTION_ALLOW_BUILTIN=*
COMPOSE_FILE="compose.yml" COMPOSE_FILE="compose.yml"
# SSO using traefik-forward-auth # SSO using traefik-forward-auth
#COMPOSE_FILE="$COMPOSE_FILE:compose.sso.yml" #COMPOSE_FILE="$COMPOSE_FILE:compose.sso.yml"
# Disable user management completely, useful for SSO
#N8N_USER_MANAGEMENT_DISABLED=false
# Basic auth # Basic auth
#COMPOSE_FILE="$COMPOSE_FILE:compose.basicauth.yml" #COMPOSE_FILE="$COMPOSE_FILE:compose.basicauth.yml"
#N8N_BASIC_AUTH_ACTIVE=true #N8N_BASIC_AUTH_ACTIVE=true
#N8N_BASIC_AUTH_USER=username #N8N_BASIC_AUTH_USER=username
#SECRET_ADMIN_PASSWORD_VERSION=v1 #SECRET_ADMIN_PASSWORD_VERSION=v1
# Use Postgres instead of SQLite
#COMPOSE_FILE="$COMPOSE_FILE:compose.postgres.yml"
#SECRET_DB_PASSWORD_VERSION=v1
BIN
View File
Binary file not shown.
+5 -5
View File
@@ -6,7 +6,7 @@ Extensible environment for interactive and reproducible computing
* **Category**: Utilities * **Category**: Utilities
* **Status**: 1 * **Status**: 1
* **Image**: `n8nio/n8n` * **Image**: [`n8nio/n8n`](https://hub.docker.com/n8nio/n8n), 4, upstream
* **Healthcheck**: No * **Healthcheck**: No
* **Backups**: No * **Backups**: No
* **Email**: N/A * **Email**: N/A
@@ -21,19 +21,19 @@ Extensible environment for interactive and reproducible computing
2. Deploy [`coop-cloud/traefik`] 2. Deploy [`coop-cloud/traefik`]
3. `abra app new ${REPO_NAME} --secrets` (optionally with `--pass` if you'd like 3. `abra app new ${REPO_NAME} --secrets` (optionally with `--pass` if you'd like
to save secrets in `pass`) to save secrets in `pass`)
4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to 4. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to
your Docker swarm box your Docker swarm box
5. `abra app YOURAPPDOMAIN deploy` 5. `abra app deploy YOURAPPDOMAIN`
6. Open the configured domain in your browser to finish set-up 6. Open the configured domain in your browser to finish set-up
Currently, you have to manually run a command to generate an initial Currently, you have to manually run a command to generate an initial
configuration (see #1): configuration (see #1):
`abra app YOURAPPDOMAIN run app jupyter notebook --generate-config` `abra app run YOURAPPDOMAIN app jupyter notebook --generate-config`
And then run this command to get a token for initial login: And then run this command to get a token for initial login:
`abra app YOURAPPDOMAIN run app jupyter notebook list` `abra app run YOURAPPDOMAIN app jupyter notebook list`
You can enter this token at the bottom of the login page to set a password You can enter this token at the bottom of the login page to set a password
instead (see #2). instead (see #2).
+1
View File
@@ -0,0 +1 @@
export DB_ENTRYPOINT_VERSION=v1
-2
View File
@@ -1,5 +1,3 @@
version: '3.8'
services: services:
app: app:
environment: environment:
+57
View File
@@ -0,0 +1,57 @@
# Compose for PostGres mode instead of the default sqlite mode.
services:
app:
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=${STACK_NAME}_db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=root
- DB_POSTGRESDB_PASSWORD_FILE=/run/secrets/db_password
depends_on:
- db
secrets:
- db_password
db:
image: pgautoupgrade/pgautoupgrade:18-alpine
networks:
- internal_network
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
- POSTGRES_DB=n8n
configs:
- source: db_entrypoint
target: /docker-entrypoint.sh
mode: 0555
secrets:
- db_password
healthcheck:
test: ["CMD", "pg_isready", "-U", "root", "-d", "n8n"]
volumes:
- 'postgresql_data:/var/lib/postgresql'
entrypoint: /docker-entrypoint.sh
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: "bash -c 'PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /tmp/backup.sql'"
backupbot.backup.post-hook: "rm -rf /tmp/backup.sql"
backupbot.backup.path: "/tmp/backup.sql"
secrets:
# db_non_root_password:
# external: true
# name: ${STACK_NAME}_db_non_root_password_${SECRET_DB_NON_ROOT_PASSWORD_VERSION}
db_password:
external: true
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
volumes:
postgresql_data:
configs:
db_entrypoint:
name: ${STACK_NAME}_db_entrypoint_${DB_ENTRYPOINT_VERSION}
file: entrypoint.postgres.sh.tmpl
template_driver: golang
-5
View File
@@ -1,10 +1,5 @@
---
version: '3.8'
services: services:
app: app:
image: n8nio/n8n
environment: environment:
- N8N_BASIC_AUTH_ACTIVE=false - N8N_BASIC_AUTH_ACTIVE=false
deploy: deploy:
+4 -48
View File
@@ -1,31 +1,18 @@
---
version: '3.8'
services: services:
app: app:
image: n8nio/n8n:0.204.0 image: n8nio/n8n:2.35.2
environment: environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=${STACK_NAME}_db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=root
- DB_POSTGRESDB_PASSWORD_FILE=/run/secrets/db_password
- N8N_PERSONALIZATION_ENABLED - N8N_PERSONALIZATION_ENABLED
- N8N_DIAGNOSTICS_ENABLED - N8N_DIAGNOSTICS_ENABLED
- N8N_USER_MANAGEMENT_DISABLED - N8N_USER_MANAGEMENT_DISABLED
- N8N_BASIC_AUTH_ACTIVE=false - N8N_BASIC_AUTH_ACTIVE=false
- WEBHOOK_URL=https://${DOMAIN} - WEBHOOK_URL=https://${DOMAIN}
- NODE_FUNCTION_ALLOW_EXTERNAL=moment - NODE_FUNCTION_ALLOW_EXTERNAL=moment
depends_on:
- db
networks: networks:
- proxy - proxy
- internal_network - internal_network
volumes: volumes:
- n8n:/home/node/.n8n - n8n:/home/node/.n8n
secrets:
- db_password
deploy: deploy:
update_config: update_config:
failure_action: rollback failure_action: rollback
@@ -38,45 +25,14 @@ services:
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" - "traefik.http.middlewares.${STACK_NAME}-redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - "traefik.http.middlewares.${STACK_NAME}-redirect.redirectscheme.permanent=true"
- "coop-cloud.${STACK_NAME}.version=0.3.0+0.204.0" - "coop-cloud.${STACK_NAME}.version=3.4.2+2.34.4"
- "backupbot.backup=true" - "backupbot.backup=true"
- "backupbot.backup.path=/home/node/.n8n" - "backupbot.backup.path=/home/node/.n8n"
db:
image: postgres:11
networks:
- internal_network
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
- POSTGRES_DB=n8n
secrets:
- db_password
healthcheck:
test: ["CMD", "pg_isready", "-U", "root", "-d", "n8n"]
volumes:
- 'postgresql_data:/var/lib/postgresql/data'
# - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: "bash -c 'PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /tmp/backup.sql'"
backupbot.backup.post-hook: "rm -rf /tmp/backup.sql"
backupbot.backup.path: "/tmp/backup.sql"
secrets:
# db_non_root_password:
# external: true
# name: ${STACK_NAME}_db_non_root_password_${SECRET_DB_NON_ROOT_PASSWORD_VERSION}
db_password:
external: true
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
volumes: volumes:
n8n: n8n:
postgresql_data:
networks: networks:
proxy: proxy:
+44
View File
@@ -0,0 +1,44 @@
#!/bin/bash
set -e
MIGRATION_MARKER=$PGDATA/migration_in_progress
OLDDATA=$PGDATA/old_data
NEWDATA=$PGDATA/new_data
if [ -e $MIGRATION_MARKER ]; then
echo "FATAL: migration was started but did not complete in a previous run. manual recovery necessary"
exit 1
fi
if [ -f $PGDATA/PG_VERSION ]; then
DATA_VERSION=$(cat $PGDATA/PG_VERSION)
if [ -n "$DATA_VERSION" -a "$PG_MAJOR" != "$DATA_VERSION" ]; then
echo "postgres data version $DATA_VERSION found, but need $PG_MAJOR. Starting migration"
echo "Installing postgres $DATA_VERSION"
sed -i "s/$/ $DATA_VERSION/" /etc/apt/sources.list.d/pgdg.list
apt-get update && apt-get install -y --no-install-recommends \
postgresql-$DATA_VERSION \
&& rm -rf /var/lib/apt/lists/*
echo "shuffling around"
gosu postgres mkdir $OLDDATA $NEWDATA
chmod 700 $OLDDATA $NEWDATA
mv $PGDATA/* $OLDDATA/ || true
touch $MIGRATION_MARKER
echo "running initdb"
# abuse entrypoint script for initdb by making server error out
gosu postgres bash -c "export PGDATA=$NEWDATA ; /usr/local/bin/docker-entrypoint.sh --invalid-arg || true"
echo "running pg_upgrade"
cd /tmp
gosu postgres pg_upgrade --link -b /usr/lib/postgresql/$DATA_VERSION/bin -d $OLDDATA -D $NEWDATA -U $POSTGRES_USER
cp $OLDDATA/pg_hba.conf $NEWDATA/
mv $NEWDATA/* $PGDATA
rm -rf $OLDDATA
rmdir $NEWDATA
rm $MIGRATION_MARKER
echo "migration complete"
fi
fi
/usr/local/bin/docker-entrypoint.sh postgres
+9
View File
@@ -0,0 +1,9 @@
ALERTA ALERTA
N8N recipe is switching from deploying a PostgreSQL and setting it as the database to using the
built-in SQLite database instead. PostgreSQL can still be enabled, see .env.sample for the
lines to add to your configuration to enable it (should retain data that was in Postgres).
There is no clean migration path between sqlite and postgres. Committing to one pretty much
sticks you to that one (there are hacks but it is involved and incomplete).
+3
View File
@@ -0,0 +1,3 @@
There are lots of changes between v1.81 and v1.114, but seems like there's
only one breaking change involving pyiode/python runners.
See here more for info: https://docs.n8n.io/release-notes/#n8n11132
+6
View File
@@ -0,0 +1,6 @@
This is a major release from n8n. There have been lots of changes,
some of which that need manual migration before update.
You can see the summary of breaking changes here: https://docs.n8n.io/2-0-breaking-changes/
And you can follow the guide of the migration tool here: https://docs.n8n.io/migration-tool-v2/