Update to 2023-07-25 16:00

This commit is contained in:
Daniel Berteaud 2023-07-25 16:00:09 +02:00
parent e033ed4f44
commit 0c2cd214b7
9 changed files with 63 additions and 63 deletions

View File

@ -1,7 +1,7 @@
--- ---
# Version to deploy # Version to deploy
n8n_version: 0.233.1 n8n_version: 1.0.5
# Root directory where n8n will be installed # Root directory where n8n will be installed
n8n_root_dir: /opt/n8n n8n_root_dir: /opt/n8n
# User account under which n8n will run # User account under which n8n will run
@ -14,30 +14,13 @@ n8n_port: 8021
# List of IP / CIDR allowed to access n8n_port # List of IP / CIDR allowed to access n8n_port
n8n_src_ip: [] n8n_src_ip: []
n8n_db_server: "{{ mysql_server | default('localhost') }}" n8n_db_server: "{{ pg_server | default('localhost') }}"
n8n_db_port: 3306 n8n_db_port: 5432
n8n_db_name: n8n n8n_db_name: n8n
n8n_db_user: n8n n8n_db_user: n8n
# If not defined, a random one will be created and stored in the {{ n8n_root_dir }}/meta/ansible_dbpass # If not defined, a random one will be created and stored in the {{ n8n_root_dir }}/meta/ansible_dbpass
#n8n_db_pass: S3cR3t. #n8n_db_pass: S3cR3t.
# Config dfirectives, will be translated to json in {{ n8n_root_dir }}/etc/n8n.json
n8n_config_base:
database:
type: mysqldb
mysqldb:
database: "{{ n8n_db_name }}"
host: "{{ n8n_db_server }}"
port: "{{ n8n_db_port }}"
user: "{{ n8n_db_user }}"
password: "{{ n8n_db_pass }}"
generic:
timezone: "{{ system_tz | default('Europe/Paris') }}"
port: "{{ n8n_port }}"
# This lets you override just part of the defaults
n8n_config_extra: {}
n8n_config: "{{ n8n_config_base | combine(n8n_config_extra,recursive=True) }}"
# An optional list of extra module to install # An optional list of extra module to install
n8n_extra_node_modules: [] n8n_extra_node_modules: []
@ -65,11 +48,6 @@ n8n_mem_limit: 2048
# NODE_FUNCTION_ALLOW_BUILTIN: request-promise-native # NODE_FUNCTION_ALLOW_BUILTIN: request-promise-native
n8n_env_var: {} n8n_env_var: {}
# Should user management be enabled ?
# If False, n8n editor will be accessible wihtout authentication at all
# so be sure to protect it by other mean (eg, at the reverse proxy level)
n8n_user_management: True
# SMTP settings # SMTP settings
n8n_smtp_server: localhost n8n_smtp_server: localhost
n8n_smtp_port: 25 n8n_smtp_port: 25

View File

@ -2,5 +2,5 @@
dependencies: dependencies:
- role: repo_nodejs - role: repo_nodejs
- role: mysql_server - role: postgresql_server
when: n8n_db_server in ['localhost','127.0.0.1'] when: n8n_db_server in ['localhost','127.0.0.1']

View File

@ -20,18 +20,17 @@
delegate_to: "{{ inventory_hostname }}" delegate_to: "{{ inventory_hostname }}"
tags: n8n tags: n8n
- name: Dump the database - name: Backup the database
mysql_db: command: >
state: dump /usr/pgsql-15/bin/pg_dump
name: "{{ n8n_db_name }}" --format=custom
target: "{{ n8n_root_dir }}/archives/{{ n8n_current_version }}/{{ n8n_db_name }}.sql.xz" --clean
login_host: "{{ n8n_db_server }}" --create
login_port: "{{ n8n_db_port }}" --host={{ n8n_db_server }}
login_user: "{{ n8n_db_user }}" --port={{ n8n_db_port }}
login_password: "{{ n8n_db_pass }}" --username={{ n8n_db_user }}
quick: True {{ n8n_db_name }}
single_transaction: True --file={{ n8n_root_dir }}/archives/{{ n8n_current_version }}/{{ n8n_db_name }}.sqlc
environment: environment:
XZ_OPT: -T0 - PGPASSWORD: "{{ n8n_db_pass }}"
tags: n8n tags: n8n

View File

@ -3,7 +3,6 @@
- name: Deploy n8n config - name: Deploy n8n config
template: src={{ item }}.j2 dest={{ n8n_root_dir }}/etc/{{ item }} group={{ n8n_user }} mode=640 template: src={{ item }}.j2 dest={{ n8n_root_dir }}/etc/{{ item }} group={{ n8n_user }} mode=640
loop: loop:
- n8n.json
- env - env
notify: restart n8n notify: restart n8n
tags: n8n tags: n8n

View File

@ -1,7 +1,7 @@
--- ---
- name: Install nodejs and dependencies - name: Install nodejs and dependencies
yum: package:
name: name:
- nodejs - nodejs
- gcc - gcc
@ -9,6 +9,7 @@
- make - make
- sqlite-devel - sqlite-devel
- python3 - python3
- postgresql15
tags: n8n tags: n8n
- name: Wipe node_module on upgrade - name: Wipe node_module on upgrade
@ -37,13 +38,29 @@
loop: "{{ n8n_extra_node_modules }}" loop: "{{ n8n_extra_node_modules }}"
tags: n8n tags: n8n
# Create the database - name: Create the PostgreSQL role
- import_tasks: ../includes/webapps_create_mysql_db.yml postgresql_user:
vars: db: postgres
- db_name: "{{ n8n_db_name }}" name: "{{ n8n_db_user }}"
- db_user: "{{ n8n_db_user }}" password: "{{ n8n_db_pass }}"
- db_server: "{{ n8n_db_server }}" login_host: "{{ n8n_db_server }}"
- db_pass: "{{ n8n_db_pass }}" login_port: "{{ n8n_db_port }}"
login_user: sqladmin
login_password: "{{ pg_admin_pass }}"
tags: n8n
- name: Create the PostgreSQL database
postgresql_db:
name: "{{ n8n_db_name }}"
encoding: UTF-8
lc_collate: C
lc_ctype: C
template: template0
owner: "{{ n8n_db_user }}"
login_host: "{{ n8n_db_server }}"
login_port: "{{ n8n_db_port }}"
login_user: sqladmin
login_password: "{{ pg_admin_pass }}"
tags: n8n tags: n8n
- name: Deploy systemd unit - name: Deploy systemd unit

View File

@ -1,7 +1,5 @@
N8N_CONFIG_FILES={{ n8n_root_dir }}/etc/n8n.json N8N_PORT={{ n8n_port }}
N8N_USER_FOLDER={{ n8n_root_dir }}/data N8N_USER_FOLDER={{ n8n_root_dir }}/data
WEBHOOK_URL={{ n8n_public_url }}
VUE_APP_URL_BASE_API={{ n8n_public_url }}
N8N_ENCRYPTION_KEY={{ n8n_secret_key | quote }} N8N_ENCRYPTION_KEY={{ n8n_secret_key | quote }}
EXECUTIONS_DATA_PRUNE=true EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE={{ n8n_data_max_age }} EXECUTIONS_DATA_MAX_AGE={{ n8n_data_max_age }}
@ -10,7 +8,6 @@ N8N_CUSTOM_EXTENSIONS={{ n8n_root_dir }}/.n8n/custom
{{ env }}={{ n8n_env_var[env] }} {{ env }}={{ n8n_env_var[env] }}
{% endfor %} {% endfor %}
N8N_DIAGNOSTICS_ENABLED=false N8N_DIAGNOSTICS_ENABLED=false
N8N_USER_MANAGEMENT_DISABLED=true
N8N_EMAIL_MODE=smtp N8N_EMAIL_MODE=smtp
N8N_SMTP_HOST={{ n8n_smtp_server }} N8N_SMTP_HOST={{ n8n_smtp_server }}
N8N_SMTP_PORT={{ n8n_smtp_port }} N8N_SMTP_PORT={{ n8n_smtp_port }}
@ -19,7 +16,18 @@ N8N_SMTP_SENDER={{ n8n_smtp_sender }}
# Note : n8n requires N8N_SMTP_USER and N8N_SMTP_PASS, even if no login is required for relay # Note : n8n requires N8N_SMTP_USER and N8N_SMTP_PASS, even if no login is required for relay
N8N_SMTP_USER={{ n8n_smtp_user | default('smtp') }} N8N_SMTP_USER={{ n8n_smtp_user | default('smtp') }}
N8N_SMTP_PASS={{ n8n_smtp_pass | default('smtp') }} N8N_SMTP_PASS={{ n8n_smtp_pass | default('smtp') }}
N8N_EDITOR_BASE_URL={{ n8n_public_url }}
{% if system_tz is defined %} {% if system_tz is defined %}
GENERIC_TIMEZONE={{ system_tz }} GENERIC_TIMEZONE={{ system_tz }}
{% endif %} {% endif %}
N8N_HIRING_BANNER_ENABLED=false
VUE_APP_URL_BASE_API={{ n8n_public_url }}
N8N_EDITOR_BASE_URL={{ n8n_public_url }}
WEBHOOK_URL={{ n8n_public_url }}
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST={{ n8n_db_server }}
DB_POSTGRESDB_PORT={{ n8n_db_port }}
DB_POSTGRESDB_DATABASE={{ n8n_db_name }}
DB_POSTGRESDB_USER={{ n8n_db_user }}
DB_POSTGRESDB_PASSWORD={{ n8n_db_pass }}

View File

@ -1 +0,0 @@
{{ n8n_config | to_nice_json(indent=4) }}

View File

@ -1,3 +1,3 @@
#!/bin/bash -e #!/bin/bash -e
rm -f {{ n8n_root_dir }}/backup/*.sql.zst rm -f {{ n8n_root_dir }}/backup/*.sqlc

View File

@ -2,12 +2,12 @@
set -eo pipefail set -eo pipefail
/usr/bin/mysqldump \ PGPASSWORD='{{ n8n_db_pass }}' /usr/pgsql-15/bin/pg_dump \
{% if n8n_db_server not in ['localhost','127.0.0.1'] %} --format=custom \
--user={{ n8n_db_user | quote }} \ --clean \
--password={{ n8n_db_pass | quote }} \ --create \
--username={{ n8n_db_user | quote }} \
--host={{ n8n_db_server | quote }} \ --host={{ n8n_db_server | quote }} \
--port={{ n8n_db_port | quote }} \ {{ n8n_db_name | quote }} \
{% endif %} -f {{ n8n_root_dir }}/backup/{{ n8n_db_name | quote }}.sqlc
--quick --single-transaction \
--add-drop-table {{ n8n_db_name | quote }} | zstd -c > {{ n8n_root_dir }}/backup/{{ n8n_db_name }}.sql.zst