在阿里云 ECS 上最小化部署 Marinara Engine:不在服务器上跑本地模型
Marinara Engine 的官方介绍里把它称为一个本地 AI 聊天、角色扮演和游戏引擎。听起来很容易让人以为:既然是“本地”,是不是服务器上还要准备 GPU、下载模型、跑 llama.cpp 或者 embedding 服务? 如果只是想把 Marinara 当成一个 Web 应用来用,答案是不需要。我的阿里云 ECS 现在跑的就是这种最小化部署:Docker 里只跑 Marinara Engine 本体,模型能力走外部 API,容器端口只绑定到 127.0.0.1,再由反向代理对外提供访问。 本文记录的是这个部署方式。版本核对时间是 2026-06-29:官方最新稳定版是 v2.0.6,我当前服务器上实际运行的是 ghcr.nju.edu.cn/pasta-devs/marinara-engine:2.0.5-lite。新部署可以优先用最新稳定版的 *-lite tag;如果你想完全复刻本文环境,就固定到 2.0.5-lite。 先理解这个“最小化”是什么意思 最小化不是功能阉割到不能用,而是把不适合小云服务器承担的部分拿掉。 Marinara Engine 官方提供 lite 镜像。根据官方容器安装文档,lite 镜像去掉了三类较重的离线能力: 本地 sidecar 模型,也就是容器内直接跑本地 LLM 的那部分。 本地 embedding 模型。 依赖本地 embedding 的语义记忆检索。 保留下来的能力仍然包括聊天、角色、游戏模式、agent、lorebook、角色卡、远程 LLM API 连接等。也就是说,只要你本来就打算用 OpenAI、OpenRouter、Gemini、Anthropic 或者其他远程 OpenAI-compatible API,这种部署方式就够了。 我这里的结构是: 浏览器 -> 阿里云安全组开放 80/443 -> Pingap / Nginx / Caddy 这类反向代理 -> 127.0.0.1:7860 -> Docker 容器内的 Marinara Engine -> 远程 LLM / 图片 / TTS API 看到这里,问题就变成了:服务器上到底需要跑什么?答案很少:Docker、一个 compose 文件、一个 .env 文件、一个反向代理入口。 ...