目 录CONTENT

文章目录

自托管AI:面向初学者的完整路线图

Administrator
2026-02-18 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://www.kdnuggets.com/self-hosted-ai-complete-roadmap-for-beginners

原文作者:Shittu Olumide



Image by Author

 

您自己的本地AI中心:构建私有、无云费用的自动化工作流

 
构建您自己的本地AI中心,可以为您提供自动执行任务、处理私有数据和创建定制助手的自由,所有这些都无需依赖云服务或处理月度费用。在本文中,我将引导您在家庭服务器上构建一个自托管的AI工作流中心,让您完全掌控、提高隐私性并实现强大的自动化。

我们将结合使用Docker(用于打包软件)、Ollama(用于运行本地机器学习模型)、n8n(用于创建可视化自动化)以及Portainer(用于轻松管理)。此设置非常适合具有至少8GB内存的中等性能x86-64系统,例如迷你PC或旧台式机,它可以出色地同时处理多个服务。

 

为何构建本地AI中心?

 
当您自托管工具时,您就从服务的使用者转变为基础设施的所有者,这非常强大。本地中心是私有的(您的数据绝不会离开您的网络)、具有成本效益的(没有应用程序编程接口(API)费用)并且完全可定制。

此中心的_核心_是一组强大的组件,其中:

  • Ollama充当您的私有、设备上的AI大脑,运行用于文本生成和分析的模型
  • n8n充当神经系统,将Ollama连接到其他应用程序(如日历、电子邮件或文件)以构建自动化工作流
  • Docker是基础,将每个工具打包成独立、易于管理的容器

 

// 自托管AI中心的核心组件

 

工具 主要角色 对您的中心的关键益处
Docker/Portainer 容器化和管理 隔离应用程序,简化部署,并提供可视化管理仪表板
Ollama 本地大语言模型(LLM)服务器 在本地运行AI模型以保护隐私;为其他工具提供API
n8n 工作流自动化平台 将Ollama与(API、数据库、文件)等其他服务进行可视化连接,以创建强大的自动化
Nginx Proxy Manager 安全访问和路由 提供安全的Web网关访问您的服务,并轻松设置SSL证书

 

准备您的服务器基础

 
首先,请确保您的服务器已准备就绪。我们推荐安装Ubuntu Server LTS的干净版本或类似的Linux发行版。安装完成后,通过安全Shell (SSH) 连接到您的服务器。第一步也是最关键的一步是安装Docker,它将运行我们所有后续工具。

 

// 安装Docker和Docker Compose

在终端中运行以下命令来安装Docker和Docker Compose。Docker Compose是一个工具,允许您使用简单的YAML文件定义和管理多容器应用程序。

sudo apt update && sudo apt upgrade -y sudo apt install apt-transport-https ca-certificates curl software-properties-common -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

 

// 验证和设置权限

验证安装并将您的用户添加到Docker组,以便无需使用sudo即可运行命令:

sudo docker version sudo usermod -aG docker $USER

 

输出:

 

Verify and Set Permissions

 

您需要注销并重新登录才能使此更改生效。

 

// 使用Portainer进行管理

我们不会仅使用命令行,而是部署Portainer,这是一个用于管理Docker的基于Web的图形用户界面(GUI)。使用以下命令创建一个目录并创建一个docker-compose.yml文件。

mkdir -p ~/portainer && cd ~/portainer nano docker-compose.yml

 

将以下配置粘贴到文件中。这告诉Docker下载Portainer镜像,自动重启它,并在端口9000上暴露其Web界面。

services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:

 

保存文件(Ctrl+X,然后按Y,然后按Enter)。现在,部署Portainer:

docker compose up -d

 

您的输出应如下所示:

 

Deploying Portainer

 

现在在浏览器中导航到http://YOUR_SERVER_IP:9000。对我来说是http://localhost:9000

 

Start Portainer

 

您可能需要重新启动服务器。您可以使用以下命令来执行此操作:

sudo docker start portainer

 

创建一个管理员帐户:

 



 

创建帐户后,您将看到Portainer仪表板。

 

Portainer dashboard

 

这是您所有其他容器的指挥中心。您可以从这里启动、停止、查看日志并管理所有其他服务。

 

安装Ollama:您的本地AI引擎

 
Ollama是一个旨在轻松在本地运行开源大语言模型(LLM),如Llama 3.2或Mistral的工具。它提供了一个简单的API,n8n和其他应用程序可以使用。

 

// 使用Docker部署Ollama

虽然可以直接安装Ollama,但使用Docker可以确保一致性。创建一个新目录并使用以下命令为其创建一个docker-compose.yml文件。

mkdir -p ~/ollama && cd ~/ollama nano docker-compose.yml

 

使用此配置。volumes行很重要,因为它会永久存储您下载的机器学习模型,这样即使容器重启也不会丢失它们。

services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped ports: - "11434:11434" volumes: - ollama_data:/root/.ollama volumes: ollama_data:

 

部署它:docker compose up -d

 

// 拉取并运行您的第一个模型

容器运行后,您可以拉取一个模型。我们从一个有能力但高效的模型Llama 3.2开始。

此命令在运行中的容器内执行ollama pull llama3.2

docker exec -it ollama ollama pull llama3.2

 

任务演示:查询Ollama
您现在可以直接与本地AI进行交互。以下命令向容器内运行的模型发送一个提示。

 

Querying Ollama

 

docker exec -it ollama ollama run llama3.2 "Write a short haiku about technology."

 

您应该在终端中看到一首生成的诗。更重要的是,Ollama的API现在可在http://YOUR_SERVER_IP:11434上供n8n使用。

 

Test project

 

使用n8n进行智能自动化集成

 
n8n是一个可视化工作流自动化工具。您可以拖放节点来创建序列;例如,“当我保存一个文档时,用Ollama对其进行总结,然后将总结发送到我的笔记应用。”

 

// 使用Docker部署n8n

为n8n创建一个目录。我们将使用一个Compose文件,该文件包含一个数据库,供n8n保存您的工作流和执行数据。

mkdir -p ~/n8n && cd ~/n8n nano docker-compose.yml

 

将以下内容粘贴到YAML文件中:

services: n8n: image: n8nio/n8n:latest container_name: n8n restart: unless-stopped ports: - "5678:5678" environment: - N8N_PROTOCOL=http - WEBHOOK_URL=http://YOUR_SERVER_IP:5678/ - N8N_ENCRYPTION_KEY=your_secure_encryption_key_here - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=db - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=your_secure_db_password volumes: - n8n_data:/home/node/.n8n depends_on: - db db: image: postgres:17-alpine container_name: n8n_db restart: unless-stopped environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=your_secure_db_password - POSTGRES_DB=n8n volumes: - postgres_data:/var/lib/postgresql/data volumes: n8n_data: postgres_data:

 

替换YOUR_SERVER_IP和占位符密码。使用docker compose up -d进行部署。在http://YOUR_SERVER_IP:5678访问n8n。

任务演示:构建您的第一个AI工作流

让我们创建一个简单的n8n使用Ollama充当创意写作助手的[工作流]。

  1. 在n8n编辑器中,添加一个“Schedule Trigger”节点并将其设置为手动运行以进行测试
  2. 添加一个“HTTP Request”节点。配置它以调用您的Ollama API:
    • 方法:POST
    • URL:http://ollama:11434/api/generate
    • 将Body内容类型设置为JSON
    • 在JSON正文中,输入:{"model": "llama3.2", "prompt": "Generate three ideas for a sci-fi short story."}
  3. 添加一个“Set”节点,仅提取Ollama JSON响应中的文本。将值设置为{{ $json["response"] }}
  4. 添加一个“Code”节点,使用像items = [{"json": {"story_ideas": $input.item.json}}]; return items;这样的简单一行来格式化数据
  5. 最后,连接一个“Email Send”节点(使用您的电子邮件服务配置)或一个“Save to File”节点来输出结果

点击“Execute Workflow”。n8n将向您的本地Ollama容器发送提示,接收想法,并对其进行处理。您刚刚构建了一个私有的、自动化的AI助手。

 

使用Nginx Proxy Manager保护您的中心

 
您现在有服务运行在不同的端口上(Portainer: 9000,n8n: 5678)。Nginx Proxy Manager (NPM) 允许您通过漂亮的子域名(如portainer.home.net)访问它们,并获得来自Let's Encrypt的免费安全套接字层(SSL)加密。

 

// 部署Nginx Proxy Manager

为NPM创建一个最终目录。

mkdir -p ~/npm && cd ~/npm nano docker-compose.yml

 

将以下代码粘贴到您的YAML文件中:

services: app: image: 'jc21/nginx-proxy-manager:latest' container_name: nginx-proxy-manager restart: unless-stopped ports: - '80:80' - '443:443' - '81:81' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt volumes: data: letsencrypt:

 

使用docker compose up -d进行部署。

管理面板位于http://YOUR_SERVER_IP:81。使用默认凭据(admin@example.com / changeme)登录,并立即更改它们。

 

NGINX

 

任务演示:保护n8n访问

  1. 在您的家庭路由器中,将端口80和443转发到您服务器的内部互联网协议(IP)地址。这是唯一需要的端口转发
  2. 在NPM的管理面板(your-server-ip:81)中,转到Hosts -> Proxy Hosts -> Add Proxy Host

 



 

  1. 对于n8n,填写详细信息:
    • 域名:n8n.yourdomain.com(或指向您家庭IP的您拥有的子域名)
    • 协议:http
    • 转发主机名/IP:n8n(Docker的内部网络解析容器名称!)
    • 转发端口:5678
  2. 点击SSL并请求Let's Encrypt证书,强制使用SSL

您现在可以通过https://n8n.yourdomain.com安全地访问n8n。对Portainer(portainer.yourdomain.com转发到portainer:9000)重复此操作。

 

结论

 
您现在拥有一个功能齐全、私有的AI自动化中心。您的下一步操作可能是:

  • 扩展Ollama:试验不同的模型,如Mistral(用于速度)或codellama(用于编程任务)
  • 高级n8n工作流:将您的中心连接到外部API(Google日历、Telegram、RSS源)或内部服务(如本地文件服务器)
  • 监控:添加一个工具(如Uptime Kuma,也可以通过Docker部署)来监控所有服务的状态

此设置将您适度的硬件转变为强大的、私有的数字大脑。您控制软件,拥有数据,并且无需支付持续的费用。您在管理容器、编排服务以及使用AI进行自动化方面所学的技能,是现代独立技术基础设施的基础。

 

// 延伸阅读

 
 

Shittu Olumide是一位软件工程师和技术作家,热衷于利用尖端技术来构建引人入胜的叙事,对细节有敏锐的洞察力,并擅长简化复杂概念。您也可以在Twitter上找到Shittu。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区