19 Commits

Author SHA1 Message Date
93dc4b8bb6 chore: publish 2.1.0+1.120.1 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-11-13 20:46:11 +01:00
09c06ecbc4 Merge pull request 'chore: upgrade to 1.114.4' (#6) from v1-106-2 into main
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #6
2025-10-12 13:34:24 +00:00
8b089791f6 chore: upgrade to 1.114.4 2025-10-11 13:46:51 -04:00
d09218c03a chore: upgrade to 1.106.2 2025-10-11 13:39:36 -04:00
4fa5340e4c Merge pull request '[mass update] fix supporting multiple domains while enforcing ssl' (#5) from forceSsl into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #5
Reviewed-by: cyrnel <cyrnel@noreply.git.coopcloud.tech>
2025-10-08 03:35:51 +00:00
a659454cab [mass update] fix supporting multiple domains while enforcing ssl 2025-09-08 08:11:47 -07:00
1561d42450 chore: publish 1.0.0+1.81.2 release
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-03-03 13:46:49 +01:00
570915151d Update .drone.yml
All checks were successful
continuous-integration/drone/push Build is passing
2025-01-08 10:09:13 -08:00
da168a62cc Merge pull request 'default_sqlite' (#4) from default_sqlite into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #4
2024-04-11 21:01:44 +00:00
d450ef32f0 Add release notes 2024-04-11 13:48:15 -07:00
daa00ec73c Fix version in compose.postgres.yml 2024-04-09 09:40:40 -07:00
7f5744f02e Remove stray swp file 2024-04-09 09:32:28 -07:00
da957caf81 Split postgres support into separate compose so that it defaults to sqlite instead 2024-04-09 09:31:12 -07:00
3wc
db29a2ec3c chore: publish 0.7.0+0.237.0 release
Some checks failed
continuous-integration/drone/push Build is failing
2024-01-20 21:40:59 -03:00
3wc
e1e9a05be3 Add postgres upgrade magic 2024-01-20 21:40:15 -03:00
3wc
a9bb848aba chore: publish 0.6.2+0.236.3 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 15:47:15 +01:00
3wc
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
3wc
f4f7f6d720 chore: publish 0.6.1+0.236.3 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 14:24:15 +01:00
3wc
89e09081cf chore: publish 0.6.0+0.236.0 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-08 19:46:02 +01:00
11 changed files with 123 additions and 61 deletions

View File

@ -33,7 +33,7 @@ steps:
from_secret: drone_abra-bot_token
fork: true
repositories:
- coop-cloud/auto-recipes-catalogue-json
- toolshed/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -6,8 +6,6 @@ DOMAIN=n8n.example.com
#EXTRA_DOMAINS=', `www.n8n.example.com`'
LETS_ENCRYPT_ENV=production
SECRET_DB_PASSWORD_VERSION=v1
# Change to `true` to enable sending "anonymous" telemetry data to n8n
# https://docs.n8n.io/reference/data-collection/
N8N_DIAGNOSTICS_ENABLED=false
@ -23,11 +21,12 @@ COMPOSE_FILE="compose.yml"
# SSO using traefik-forward-auth
#COMPOSE_FILE="$COMPOSE_FILE:compose.sso.yml"
# Disable user management completely, useful for SSO
#N8N_USER_MANAGEMENT_DISABLED=false
# Basic auth
#COMPOSE_FILE="$COMPOSE_FILE:compose.basicauth.yml"
#N8N_BASIC_AUTH_ACTIVE=true
#N8N_BASIC_AUTH_USER=username
#SECRET_ADMIN_PASSWORD_VERSION=v1
# Use Postgres instead of SQLite
#COMPOSE_FILE="$COMPOSE_FILE:compose.postgres.yml"
#SECRET_DB_PASSWORD_VERSION=v1

Binary file not shown.

1
abra.sh Normal file
View File

@ -0,0 +1 @@
export DB_ENTRYPOINT_VERSION=v1

View File

@ -1,5 +1,3 @@
version: '3.8'
services:
app:
environment:

57
compose.postgres.yml Normal file
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: postgres:16
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/data'
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

View File

@ -1,10 +1,5 @@
---
version: '3.8'
services:
app:
image: n8nio/n8n
environment:
- N8N_BASIC_AUTH_ACTIVE=false
deploy:

View File

@ -1,31 +1,18 @@
---
version: '3.8'
services:
app:
image: n8nio/n8n:0.226.0
image: n8nio/n8n:1.120.1
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_DIAGNOSTICS_ENABLED
- N8N_USER_MANAGEMENT_DISABLED
- N8N_BASIC_AUTH_ACTIVE=false
- WEBHOOK_URL=https://${DOMAIN}
- NODE_FUNCTION_ALLOW_EXTERNAL=moment
depends_on:
- db
networks:
- proxy
- internal_network
volumes:
- n8n:/home/node/.n8n
secrets:
- db_password
deploy:
update_config:
failure_action: rollback
@ -38,45 +25,14 @@ services:
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=0.5.0+0.226.0"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.${STACK_NAME}-redirect.redirectscheme.permanent=true"
- "coop-cloud.${STACK_NAME}.version=2.1.0+1.120.1"
- "backupbot.backup=true"
- "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:
n8n:
postgresql_data:
networks:
proxy:

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
release/1.0.0+1.81.2 Normal file
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
release/2.0.0+1.114.4 Normal file
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