Compare commits

...

13 Commits

6 changed files with 92 additions and 20 deletions

39
.drone.yml Normal file
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:
- coop-cloud/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -6,13 +6,28 @@ DOMAIN=n8n.example.com
#EXTRA_DOMAINS=', `www.n8n.example.com`'
LETS_ENCRYPT_ENV=production
# Only required if you're not using SSO
N8N_BASIC_AUTH_USER=username
SECRET_DB_PASSWORD_VERSION=v1
SECRET_ADMIN_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
# Change to `true` to enable questionnaire-based customisation of the UI
N8N_PERSONALIZATION_ENABLED=false
# "Permit users to import specific built-in modules in the Code node"
#NODE_FUNCTION_ALLOW_BUILTIN=*
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

BIN
.env.sample.swp Normal file

Binary file not shown.

View File

@ -6,7 +6,7 @@ Extensible environment for interactive and reproducible computing
* **Category**: Utilities
* **Status**: 1
* **Image**: `n8nio/n8n`
* **Image**: [`n8nio/n8n`](https://hub.docker.com/n8nio/n8n), 4, upstream
* **Healthcheck**: No
* **Backups**: No
* **Email**: N/A
@ -21,19 +21,19 @@ Extensible environment for interactive and reproducible computing
2. Deploy [`coop-cloud/traefik`]
3. `abra app new ${REPO_NAME} --secrets` (optionally with `--pass` if you'd like
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
5. `abra app YOURAPPDOMAIN deploy`
5. `abra app deploy YOURAPPDOMAIN`
6. Open the configured domain in your browser to finish set-up
Currently, you have to manually run a command to generate an initial
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:
`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
instead (see #2).

15
compose.basicauth.yml Normal file
View File

@ -0,0 +1,15 @@
version: '3.8'
services:
app:
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER
- N8N_BASIC_AUTH_PASSWORD_FILE=/run/secrets/admin_password
secrets:
- admin_password
secrets:
admin_password:
external: true
name: ${STACK_NAME}_admin_password_${SECRET_ADMIN_PASSWORD_VERSION}

View File

@ -1,10 +1,9 @@
---
version: '3.8'
services:
app:
image: n8nio/n8n:0.162.0
image: n8nio/n8n:0.236.3
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=${STACK_NAME}_db
@ -12,9 +11,10 @@ services:
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=root
- DB_POSTGRESDB_PASSWORD_FILE=/run/secrets/db_password
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER
- N8N_BASIC_AUTH_PASSWORD_FILE=/run/secrets/admin_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:
@ -26,7 +26,6 @@ services:
- n8n:/home/node/.n8n
secrets:
- db_password
- admin_password
deploy:
update_config:
failure_action: rollback
@ -41,7 +40,9 @@ services:
- "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.2.0+0.162.0"
- "coop-cloud.${STACK_NAME}.version=0.6.1+0.236.3"
- "backupbot.backup=true"
- "backupbot.backup.path=/home/node/.n8n"
db:
image: postgres:11
@ -58,7 +59,12 @@ services:
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:
@ -67,9 +73,6 @@ secrets:
db_password:
external: true
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
admin_password:
external: true
name: ${STACK_NAME}_admin_password_${SECRET_ADMIN_PASSWORD_VERSION}
volumes:
n8n: