refactor: remove python3 symlink redirection and add default N8N_LOG_LEVEL configuration
Browse files- .env.example +1 -0
- Dockerfile +0 -2
- n8n-sync.py +1 -1
- start.sh +4 -3
.env.example
CHANGED
|
@@ -35,6 +35,7 @@ PUBLIC_PORT=7861
|
|
| 35 |
N8N_PYTHON_NODES_ENABLED=false
|
| 36 |
N8N_TASK_RUNNERS_ENABLED=false
|
| 37 |
N8N_LICENSE_AUTO_RENEW_ENABLED=false
|
|
|
|
| 38 |
|
| 39 |
# -----------------------------------------------------------------------------
|
| 40 |
# BUILD-TIME VARIABLE (HF Spaces: add as Variable, not Secret)
|
|
|
|
| 35 |
N8N_PYTHON_NODES_ENABLED=false
|
| 36 |
N8N_TASK_RUNNERS_ENABLED=false
|
| 37 |
N8N_LICENSE_AUTO_RENEW_ENABLED=false
|
| 38 |
+
N8N_LOG_LEVEL=error
|
| 39 |
|
| 40 |
# -----------------------------------------------------------------------------
|
| 41 |
# BUILD-TIME VARIABLE (HF Spaces: add as Variable, not Secret)
|
Dockerfile
CHANGED
|
@@ -19,8 +19,6 @@ RUN apt-get update && apt-get install -y -q --no-install-recommends \
|
|
| 19 |
tini \
|
| 20 |
&& pip3 install -q --no-cache-dir --break-system-packages huggingface_hub \
|
| 21 |
&& npm install -g --loglevel=error n8n@${N8N_VERSION} \
|
| 22 |
-
&& mv /usr/bin/python3 /usr/bin/python3-sync \
|
| 23 |
-
&& (mv /usr/bin/python3.11 /usr/bin/python3.11-sync || true) \
|
| 24 |
&& rm -rf /var/lib/apt/lists/*
|
| 25 |
|
| 26 |
RUN mkdir -p /home/node/app /home/node/.n8n && \
|
|
|
|
| 19 |
tini \
|
| 20 |
&& pip3 install -q --no-cache-dir --break-system-packages huggingface_hub \
|
| 21 |
&& npm install -g --loglevel=error n8n@${N8N_VERSION} \
|
|
|
|
|
|
|
| 22 |
&& rm -rf /var/lib/apt/lists/*
|
| 23 |
|
| 24 |
RUN mkdir -p /home/node/app /home/node/.n8n && \
|
n8n-sync.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
#!/usr/bin/env python3
|
| 2 |
|
| 3 |
import hashlib
|
| 4 |
import json
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
|
| 3 |
import hashlib
|
| 4 |
import json
|
start.sh
CHANGED
|
@@ -37,6 +37,7 @@ export TZ="${TZ:-$GENERIC_TIMEZONE}"
|
|
| 37 |
export N8N_PYTHON_NODES_ENABLED="${N8N_PYTHON_NODES_ENABLED:-false}"
|
| 38 |
export N8N_TASK_RUNNERS_ENABLED="${N8N_TASK_RUNNERS_ENABLED:-false}"
|
| 39 |
export N8N_LICENSE_AUTO_RENEW_ENABLED="${N8N_LICENSE_AUTO_RENEW_ENABLED:-false}"
|
|
|
|
| 40 |
|
| 41 |
# n8n v2 uses built-in user management.
|
| 42 |
|
|
@@ -53,7 +54,7 @@ echo "Sync every : ${SYNC_INTERVAL}s"
|
|
| 53 |
|
| 54 |
if [ -n "${HF_TOKEN:-}" ]; then
|
| 55 |
echo "Restoring persisted n8n state from HF Dataset..."
|
| 56 |
-
python3
|
| 57 |
else
|
| 58 |
echo "HF_TOKEN is not set. Running without dataset persistence."
|
| 59 |
fi
|
|
@@ -65,14 +66,14 @@ cleanup() {
|
|
| 65 |
[ -n "${PROXY_PID:-}" ] && kill "$PROXY_PID" 2>/dev/null || true
|
| 66 |
if [ -n "${HF_TOKEN:-}" ]; then
|
| 67 |
echo "Running final backup pass..."
|
| 68 |
-
python3
|
| 69 |
fi
|
| 70 |
}
|
| 71 |
|
| 72 |
trap cleanup EXIT INT TERM
|
| 73 |
|
| 74 |
if [ -n "${HF_TOKEN:-}" ]; then
|
| 75 |
-
python3
|
| 76 |
SYNC_PID=$!
|
| 77 |
fi
|
| 78 |
|
|
|
|
| 37 |
export N8N_PYTHON_NODES_ENABLED="${N8N_PYTHON_NODES_ENABLED:-false}"
|
| 38 |
export N8N_TASK_RUNNERS_ENABLED="${N8N_TASK_RUNNERS_ENABLED:-false}"
|
| 39 |
export N8N_LICENSE_AUTO_RENEW_ENABLED="${N8N_LICENSE_AUTO_RENEW_ENABLED:-false}"
|
| 40 |
+
export N8N_LOG_LEVEL="${N8N_LOG_LEVEL:-error}"
|
| 41 |
|
| 42 |
# n8n v2 uses built-in user management.
|
| 43 |
|
|
|
|
| 54 |
|
| 55 |
if [ -n "${HF_TOKEN:-}" ]; then
|
| 56 |
echo "Restoring persisted n8n state from HF Dataset..."
|
| 57 |
+
python3 "$APP_DIR/n8n-sync.py" restore || true
|
| 58 |
else
|
| 59 |
echo "HF_TOKEN is not set. Running without dataset persistence."
|
| 60 |
fi
|
|
|
|
| 66 |
[ -n "${PROXY_PID:-}" ] && kill "$PROXY_PID" 2>/dev/null || true
|
| 67 |
if [ -n "${HF_TOKEN:-}" ]; then
|
| 68 |
echo "Running final backup pass..."
|
| 69 |
+
python3 "$APP_DIR/n8n-sync.py" sync-once || true
|
| 70 |
fi
|
| 71 |
}
|
| 72 |
|
| 73 |
trap cleanup EXIT INT TERM
|
| 74 |
|
| 75 |
if [ -n "${HF_TOKEN:-}" ]; then
|
| 76 |
+
python3 "$APP_DIR/n8n-sync.py" loop &
|
| 77 |
SYNC_PID=$!
|
| 78 |
fi
|
| 79 |
|