Linux部署神器!Nix-OpenClaw,声明式配置永不崩溃
GitHub星标:489
伟哥最近挖到了一个宝藏——
Nix-OpenClaw,用Nix管理OpenClaw部署。
声明式配置,一键部署,永不崩溃。
01 这是什么神仙项目?
nix-openclaw
GitHub星标:489
一句话介绍:声明式OpenClaw部署,防弹级默认配置
点进去一看,我整个人都兴奋了——
-
• ✅ 声明式配置 -
• ✅ 自动依赖管理 -
• ✅ 一键回滚 -
• ✅ macOS + Linux支持 -
• ✅ 插件系统 -
• ✅ launchd/systemd服务
再也不用担心更新把系统搞崩了。
02 为什么用Nix?
传统部署的痛点
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nix的优势
传统方式:1. 安装Node 182. 安装某个工具3. 工具依赖Node 164. 💥 环境崩了Nix方式:1. 声明需要Node 18和工具2. Nix自动解决依赖3. 所有版本隔离存储4. ✅ 永远不会崩
03 快速开始
方式一:让AI帮你配置(推荐)
复制这段给Claude或Cursor:
我想在我的机器上部署nix-openclaw。仓库:github:openclaw/nix-openclawnix-openclaw是什么:- 完整的Nix打包OpenClaw- 安装gateway + tools;macOS还有app- macOS用launchd服务,Linux用systemd用户服务需要你做的:1. 检查是否安装了Determinate Nix(没有就安装)2. 用templates/agent-first/flake.nix创建本地配置3. 创建AGENTS.md、SOUL.md、TOOLS.md4. 帮我创建Telegram机器人并获取Chat ID5. 设置secrets6. 填充模板并运行home-manager switch7. 验证服务运行正常我的环境:- OS: [macOS / Linux]- CPU: [arm64 / x86_64]
方式二:手动配置
# 安装Determinate Nixcurl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install# 创建配置目录mkdir -p ~/code/openclaw-localcd ~/code/openclaw-local# 复制模板cp -r /path/to/nix-openclaw/templates/agent-first/* .# 编辑flake.nix# 填入你的配置
04 配置示例
最小配置
{ programs.openclaw = { enable = true; config = { gateway = { mode = "local"; auth.token = "your-token"; }; channels.telegram = { tokenFile = "/run/agenix/telegram-bot-token"; allowFrom = [ 12345678 ]; }; }; };}
完整配置
{ programs.openclaw = { documents = ./documents; config = { gateway = { mode = "local"; auth.token = "your-token"; }; channels.telegram = { tokenFile = "/run/agenix/telegram-bot-token"; allowFrom = [ 12345678 # 你自己 -1001234567890 # 群组 ]; groups = { "*" = { requireMention = true; }; "-1001234567890" = { requireMention = false; }; }; }; }; # 插件 plugins = [ { source = "github:openclaw/nix-steipete-tools?dir=tools/peekaboo"; } { source = "github:joshp123/padel-cli"; config = { env.PADEL_AUTH_FILE = "/run/agenix/padel-auth"; settings.default_location = "Barcelona"; }; } ]; };}
05 插件系统
内置插件
|
|
|
|---|---|
summarize |
|
peekaboo |
|
poltergeist |
|
sag |
|
camsnap |
|
gogcli |
|
goplaces |
|
bird |
|
sonoscli |
|
启用插件
programs.openclaw.bundledPlugins = { summarize.enable = true; peekaboo.enable = true; goplaces.enable = true;};
添加社区插件
programs.openclaw.plugins = [ { source = "github:owner/repo-name"; }];
06 服务管理
macOS (launchd)
# 查看服务状态launchctl print gui/$(id -u)/com.openclaw.gateway# 查看日志log show --predicate 'process == "openclaw-gateway"' --last 1h# 重启服务launchctl kickstart gui/$(id -u)/com.openclaw.gateway
Linux (systemd)
# 查看服务状态systemctl --user status openclaw-gateway# 查看日志journalctl --user -u openclaw-gateway -f# 重启服务systemctl --user restart openclaw-gateway
07 回滚操作
查看历史版本
home-manager generations
回滚到上一版本
home-manager switch --rollback
回滚到特定版本
home-manager switch -L /nix/store/xxx-home-manager-generation
30秒恢复到任意历史状态。
08 双实例部署
programs.openclaw.instances = { prod = { enable = true; package = inputs.nix-openclaw.packages.${pkgs.system}.openclaw-gateway; config = { channels.telegram.tokenFile = "/run/agenix/telegram-prod"; }; }; dev = { enable = true; gatewayPath = "/Users/you/code/openclaw"; # 本地开发 gatewayPort = 18790; config = { channels.telegram.tokenFile = "/run/agenix/telegram-dev"; }; };};
09 插件开发指南
插件结构
my-plugin/├── flake.nix # Nix配置├── skills/│ └── my-skill/│ └── SKILL.md└── README.md
flake.nix示例
{ outputs = { self, nixpkgs }: { openclawPlugin = { name = "hello-world"; skills = [ ./skills/hello-world ]; packages = [ pkgs.hello ]; needs = { stateDirs = []; requiredEnv = []; }; }; };}
10 Nix-OpenClaw vs 传统部署
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 适用场景
✅ 强烈推荐:
-
• Linux服务器部署 -
• 多环境管理 -
• 追求稳定的用户 -
• DevOps工程师 -
• Nix爱好者
❌ 不太适合:
-
• 不想学Nix的用户 -
• 简单单机使用 -
• Windows用户(暂不支持)
GitHub地址:
https://github.com/openclaw/nix-openclaw
⚠️ 提醒:需要先学习Nix基础知识,但值得投入。
你想用Nix管理你的OpenClaw部署吗?
评论区聊聊,有问题我尽量回复!
如果这篇文章对你有帮助,点个赞/收藏/转发,我继续给你挖好东西!
📍 原创内容,转载请注明出处📌 关注公众号【AI骑士百科志】,获取更多AI工具深度解读
夜雨聆风