n8n / start.sh
RJuro's picture
Update start.sh
e14c66e verified
#!/bin/sh
# Hugging Face Spaces provides SPACE_HOST as an environment variable
# (e.g., your-username-your-space-name.hf.space).
# We must set WEBHOOK_URL for n8n to correctly generate public URLs for webhooks.
if [ -n "$SPACE_HOST" ]; then
# Ensure the URL scheme is https as HF Spaces are served over HTTPS
export WEBHOOK_URL="https://$(echo $SPACE_HOST)"
echo "INFO: n8n WEBHOOK_URL automatically set to $WEBHOOK_URL"
else
echo "WARNING: SPACE_HOST environment variable not set. WEBHOOK_URL may not be configured correctly for public access."
echo "INFO: n8n will attempt to infer the WEBHOOK_URL, or you can set it manually via environment variables."
fi
# --- IMPORTANT: Encryption Key ---
# N8N_ENCRYPTION_KEY is crucial for securing your credentials.
# If not set, n8n auto-generates one. If this auto-generated key changes (e.g., on pod restart
# without persistent storage for the key itself), your previously saved credentials will be unreadable.
#
# YOU MUST SET N8N_ENCRYPTION_KEY as a SECRET in your Hugging Face Space settings
# for any production or sensitive data use.
# Generate a strong, random string for this key. E.g., using: openssl rand -hex 32
if [ -z "$N8N_ENCRYPTION_KEY" ]; then
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "!! WARNING: N8N_ENCRYPTION_KEY is NOT SET. n8n will auto-generate a temporary one. !!"
echo "!! This is INSECURE for production and may lead to DATA LOSS of credentials. !!"
echo "!! Please set N8N_ENCRYPTION_KEY as a Secret in your Space settings. !!"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
fi
# Optional: Set other n8n environment variables here if needed,
# or preferably as Secrets in your Hugging Face Space settings.
# Example for basic authentication (use with caution, prefer SSO if possible):
# export N8N_BASIC_AUTH_ACTIVE=true
# export N8N_BASIC_AUTH_USER="your_username_secret"
# export N8N_BASIC_AUTH_PASSWORD="your_strong_password_secret"
echo "INFO: Starting n8n..."
# Execute the main n8n command. It will pick up all N8N_* environment variables.
exec n8n