一、本地高级部署
1.下载
docker pull docker.n8n.io/n8nio/n8n
2.运行
docker volume create n8n_data
docker run -dit --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -e N8N_SECURE_COOKIE=false -e N8N_RUNNERS_ENABLED=true -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true -e NODE_FUNCTION_ALLOW_EXTERNAL=iconv-lite -e DB_TYPE=postgresdb -e DB_POSTGRESDB_DATABASE=langfuse_db -e DB_POSTGRESDB_HOST=192.168.1.101 -e DB_POSTGRESDB_PORT=5432 -e DB_POSTGRESDB_USER=langfuse -e DB_POSTGRESDB_SCHEMA=n8n -e DB_POSTGRESDB_PASSWORD=1234~ -e GENERIC_TIMEZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" --restart=always docker.n8n.io/n8nio/n8n
2.1.部分参数说明
-e N8N_SECURE_COOKIE=false:
这个选项控制是否启用安全 Cookie 标志。如果设置为 true,n8n 会将 Secure 属性添加到其 session cookies 中,这意味着 cookies 只能通过 HTTPS 协议发送。当设置为 false 时,即使你的站点通过 HTTP 访问,cookies 也会被发送。这在开发环境中可能是有用的,但在生产环境中强烈建议保持默认值 true 来增强安全性。
-e N8N_RUNNERS_ENABLED=true:
启用工作流运行器(Runners)。n8n 支持一种称为“运行器”的机制,允许你并行执行工作流的不同部分,从而可能提高性能和效率。当你希望利用这种并行处理能力时,可以将此选项设置为 true。默认情况下,该选项可能是关闭的,因此需要显式开启。
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true:
当设置为 true 时,这个选项确保 n8n 检查并强制实施主设置文件的权限。这是为了防止潜在的安全风险,比如敏感信息泄露给不应该访问这些信息的用户。如果 n8n 发现设置文件的权限不符合预期(例如,文件对所有用户可读),它可能会拒绝启动或者给出警告。这对于保护你的 n8n 实例免受未授权访问非常重要,尤其是在多用户系统中。
-e NODE_FUNCTION_ALLOW_EXTERNAL=iconv-lite
通过npm安装的插件
-e DB_TYPE=postgresdb -e DB_POSTGRESDB_DATABASE=langfuse_db -e DB_POSTGRESDB_HOST=192.168.1.101 -e DB_POSTGRESDB_PORT=5432 -e DB_POSTGRESDB_USER=langfuse -e DB_POSTGRESDB_SCHEMA=n8n -e DB_POSTGRESDB_PASSWORD=1234~ postgresql数据库配置
-e GENERIC_TIMEZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" 时区
2.2.n8n的对应表结构
1. 用户与认证相关表
user: 存储系统中的用户信息,包括用户名、密码哈希等。
auth_identity: 存储用户的认证信息,可能用于多因素认证或外部认证服务。
auth_provider_sync_history: 记录认证提供者同步的历史记录。
invalid_auth_token: 存储无效的认证令牌信息。
2. 工作流相关表
workflow_entity: 存储工作流的基本信息,如名称、描述、JSON配置等。
workflows_tags: 关联工作流和标签,实现工作流的分类管理。
workflow_history: 记录工作流执行的历史信息。
workflow_statistics: 存储工作流的统计信息,如执行次数、成功/失败次数等。
3. 执行相关表
execution_entity: 存储执行实例的基本信息。
execution_data: 存储执行过程中的数据。
execution_metadata: 存储执行元数据。
execution_annotations: 存储执行注释信息。
execution_annotation_tags: 关联执行注释和标签。
4. 资源与配置相关表
credentials_entity: 存储凭证信息,用于访问外部服务。
shared_credentials: 共享凭证信息,允许多个工作流使用相同的凭证。
installed_nodes: 存储已安装的节点信息。
installed_packages: 存储已安装的包信息。
settings: 存储系统的全局设置。
variables: 存储变量信息,可以在工作流中引用。
5. 文件夹与标签相关表
folder: 存储文件夹信息,用于组织工作流。
folder_tag: 关联文件夹和标签。
tag_entity: 存储标签信息。
6. 测试相关表
test_case_execution: 存储测试用例执行信息。
test_definition: 存储测试定义信息。
test_metric: 存储测试度量信息。
test_run: 存储测试运行信息。
7. 事件与洞察相关表
event_destinations: 存储事件目的地信息。
insights_by_period: 按周期存储洞察信息。
insights_metadata: 存储洞察元数据。
insights_raw: 存储原始洞察数据。
8. 其他表
migrations: 记录数据库迁移历史。
project: 存储项目信息。
project_relation: 关联项目和用户。
role: 存储角色信息,用于权限管理。
shared_workflow: 存储共享工作流信息。
webhook_entity: 存储Webhook实体信息。
3.可视化界面
http://localhost:5678/