乐于分享
好东西不私藏

角色卡AI写作软件:Piney (小兄许) 本地部署,从安装到完全卸载

角色卡AI写作软件:Piney (小兄许) 本地部署,从安装到完全卸载

角色卡写作软件:Piney (小兄许) 本地部署完全指南

从安装到完全卸载全流程

先介绍,支持接入自定义api,支持ai写卡,支持ai美化前端,支持AI 驱动的前端样式生成系统,一次性生成样式、正则和世界书

本指南基于 Windows + Docker 环境,提供了从零开始部署 Piney 角色卡工作站的详细步骤,并附带了实际操作中可能遇到的问题及解决方法。

📋 第一部分:环境检查与准备

在开始部署前,请先确认你的电脑满足以下条件。如果不满足,请根据提示安装对应软件。
PowerShell背景为蓝色
CMD背景为黑色

1. 检查 Docker Desktop

Piney 官方推荐使用 Docker 部署,这是最简便且隔离性最好的方式。

  • • 检查方法:打开 PowerShell 或 CMD(win+R,在输入框中输入CMD或者PowerShell,然后回车),输入命令 docker --version
  • • 预期输出Docker version 24.x.x 或更高版本。
  • • 若未安装
    1. 1. 访问 Docker Desktop 官网 下载 Windows 版本。(600mb,需要魔法)
      好吧,我也上传了百度网盘,夸克后面也会上传,总链接里,方便大家下载
      链接:
      https://pan.baidu.com/s/11JvTKQnBJ9gG_LvMyeYrJA?pwd=3872 提取码: 3872
    2. 2. 双击安装包,保持默认选项完成安装。
    3. 3. 安装完成后,务必重启电脑
    4. 4. 重启后,Docker Desktop 会自动启动(鲸鱼图标出现在任务栏右下角),等待其状态变为 Engine is running 即可。
    5. 5. 进入软件后无需登录,点最下面的蓝色字母跳过即可

2. 检查 Node.js (可选)

虽然 Docker 部署不需要 Node.js,但我以后的相关文章可能会涉及到这个软件,Node.js也是很多web端软件的必要支持,内存占用很小,建议安装。

  • • 检查方法node -v 和 npm -v。(代码复制输入回车即可)
  • • 若未安装:访问 Node.js 官网 下载 LTS 版本安装。

3. 检查端口占用

Piney 默认使用 9696 端口,部署前需确保该端口未被占用。如果你能看懂这句话可以检查一下,看不懂跳过即可。

  • • 检查命令 (PowerShell)

    netstat -ano | findstr :9696
  • • 结果判断
    • • 无任何输出:端口空闲,可以继续。
    • • 有输出:端口被占用,可记下最后一列数字 (PID),通过 taskkill /PID <进程ID> /F 结束进程,或修改后续配置文件中的端口映射(如改为 "9697:9696")。

🚀 第二部分:一键式部署 Piney (推荐)

为了保持环境整洁、方便日后卸载,我们约定将所有文件统一存放在 C:\Users\<你的用户名>\piney-docker\ 目录下(本例中用户名请自行替换)。

步骤 1:复制并执行自动部署脚本

打开 PowerShell(无需管理员权限),将以下整段代码完整复制并粘贴,按回车执行。脚本会自动创建文件夹、写入配置并拉取镜像启动服务。

# 1. 自动创建文件夹并进入(请自行替换为你的用户名)
$workDir = "C:\Users\用户名\piney-docker"
New-Item-ItemType Directory -Force-Path$workDir | Out-Null
Set-Location$workDir

# 2. 生成官方 docker-compose.yml 配置文件
@'
services:
  piney:
    image: ghcr.io/andclear/piney:latest
    container_name: piney
    restart: unless-stopped
    ports:
      - "9696:9696"
    volumes:
      - ./data:/app/data
    environment:
      - RUN_MODE=server
      - PORT=9696
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:9696/api/health" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
'@
 | Out-File-FilePath docker-compose.yml -Encoding utf8

# 3. 拉取镜像并启动服务(首次启动需下载,耗时几分钟)
docker compose up -d

# 4. 验证部署状态
Write-Host"`n✅ Piney 部署完成!访问地址: http://localhost:9696"-ForegroundColor Green
Write-Host"📁 所有数据保存在: $workDir\data"-ForegroundColor Cyan
Write-Host"🧹 如需彻底卸载,请停止容器并删除 $workDir 文件夹。"-ForegroundColor DarkGray

步骤 2:验证服务状态

部署完成后,运行以下命令确认容器状态为 healthy 且 Up

docker ps

成功示例输出

CONTAINER ID   IMAGE                         STATUS                    PORTS
96445fe3a118   ghcr.io/andclear/piney:latest Up 10 seconds (healthy)   0.0.0.0:9696->9696/tcp

步骤 3:访问 Piney

打开浏览器,输入地址 http://localhost:9696,即可看到 Piney 小兄许工作站界面。


🛠 第三部分:疑难杂症与故障排查

以下是部署过程中常见的问题及解决方案,我们曾在实际操作中遇到过。

问题 1:PowerShell 提示“无法加载文件 npm.ps1,禁止运行脚本”

错误信息

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

原因:Windows PowerShell 默认执行策略为 Restricted,禁止运行任何脚本文件。

解决方法
管理员身份打开 PowerShell(win+X,在弹出的页面中选择带管理员的那个),执行以下命令将当前用户的执行策略修改为 RemoteSigned

Set-ExecutionPolicy-ExecutionPolicy RemoteSigned -Scope CurrentUser

输入 Y 确认后,重新打开 PowerShell 窗口即可正常使用 npm 命令。


问题 2:Docker 拉取镜像失败,提示 unexpected EOF 或下载中断

错误信息

short read: expected 28228487 bytes but got 9651456: unexpected EOF

原因:网络波动导致 Docker 与 GitHub 容器仓库 (ghcr.io) 的连接中断,下载未完成。

解决方法

  1. 1. 进入 Piney 项目目录:

    cd C:\Users\xfl\piney-docker
  2. 2. 清理未完成的镜像缓存并重新拉取:

    docker compose down
    docker system prune -f
    docker pull ghcr.io/andclear/piney:latest

    提示:如果 docker pull 仍然失败,可以多试几次,或考虑使用魔法,在公众号里,手机开热点即可,同时打开魔法分享。

  3. 3. 拉取成功后再次启动:

    docker compose up -d

问题 3:端口冲突,启动时提示 port is already allocated

错误信息

Bind for 0.0.0.0:9696 failed: port is already allocated

原因:本地 9696 端口已被其他程序占用(例如其他 Docker 容器或本地服务)。

解决方法

  1. 1. 检查端口占用情况:

    netstat -ano | findstr :9696
  2. 2. 若确认为其他 Docker 容器占用,可停止该容器或删除它。
  3. 3. 若不想关闭占用端口的程序,可以修改 Piney 的端口映射。编辑 C:\Users\xfl\piney-docker\docker-compose.yml 文件,将 ports 段改为:

    ports:
    -"9697:9696"

    保存后执行 docker compose up -d,之后通过 http://localhost:9697 访问。


问题 4:容器状态显示 exited 或 unhealthy

解决方法

  1. 1. 查看容器详细日志:

    docker logs piney
  2. 2. 根据日志提示排查。常见原因有:
    • • 文件权限问题:尝试删除 data 文件夹,让容器重新生成(注意备份数据)。
    • • 内存不足:确保 Docker Desktop 分配了足够内存(建议至少 2GB,在 Docker Desktop 设置中调整)。

问题 5:如何彻底卸载 Piney(不留残留)

解决方法

  1. 1. 停止并删除容器:

    cd C:\Users\用户名\piney-docker
    docker compose down
  2. 2. 删除整个项目文件夹(包括所有数据):

    cd ..
    Remove-Item-Recurse-Force piney-docker

⚠️ 注意:此操作会永久删除所有角色卡、图片和配置数据。如有需要,请提前备份 data 文件夹。


📦 第四部分:数据备份与恢复

  • • 备份数据:直接复制 C:\Users\用户名\piney-docker\data 文件夹到其他位置即可。
  • • 恢复数据:将备份的 data 文件夹放回原处,重新启动容器即可。

🔄 第五部分:更新 Piney 到最新版本

进入项目目录,拉取最新镜像并重建容器:

cd C:\Users\用户名\piney-docker
docker compose pull
docker compose up -d

📚 附录:常用管理命令

如何在目录打开CMD:点击地址栏将地址栏清空,输入CMD回车即可打开

操作
命令(需在 piney-docker 目录下执行)
启动服务
docker compose up -d
停止服务
docker compose down
查看容器状态
docker ps
查看实时日志
docker logs -f piney
进入容器内部
docker exec -it piney sh

以后怎么启用,打开Docker就会自动启动,进入地址即可,明后天发如何配置Piney的AI自动读写卡程序

公众号指导安装AI进度:有点卡住了说实话,知识库的体量是个大问题,如果以后公众号发更多的教程,巨量的往里面塞资料,这意味着超巨量的上下文,如果做不到快速且正确的加载相应的知识,响应速度和输出效率就会大打折扣,这本质就成了一个大号角色卡。
因为本质是靠着正确的知识库来做回复,所以我在一开始就没想过用超一线的模型来做主体,而是用的二线模型,DS3.2,一是节省成本,二是确实用不到那么好的模型,在拥有相当体量的知识库和限制的情况下,回复内容的质量是可以达到一线模型水平的。