-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·82 lines (73 loc) · 3.51 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·82 lines (73 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
# ═══════════════════════════════════════════════════════
# Claude Code Web — Installation Script
# 安装脚本:安装依赖、配置 systemd 服务、启动服务
#
# Usage / 用法:
# chmod +x install.sh && ./install.sh
# ═══════════════════════════════════════════════════════
set -e
cd "$(dirname "$0")"
echo "═══ Claude Code Web — Install / 安装 ═══"
echo ""
# Step 1: Install Node.js dependencies / 安装 Node.js 依赖
echo "[1/4] Installing dependencies / 安装依赖..."
npm install
echo " Done / 完成"
# Step 2: Verify Claude CLI is available / 验证 Claude CLI 是否可用
echo "[2/4] Checking Claude CLI / 检查 Claude CLI..."
if command -v claude &>/dev/null; then
echo " OK: $(claude --version)"
else
echo " Error: claude command not found / 找不到 claude 命令"
echo " Please install first / 请先安装: npm install -g @anthropic-ai/claude-code"
echo " Then authenticate / 然后认证: claude"
exit 1
fi
# Step 3: Install systemd service / 安装 systemd 服务
echo "[3/4] Installing systemd service / 安装 systemd 服务..."
# Prompt for auth token / 提示输入认证令牌
echo " Enter auth token (press Enter to skip / 直接回车跳过):"
read -r AUTH_INPUT
if [ -n "$AUTH_INPUT" ]; then
sed -i "s/AUTH_TOKEN=changeme/AUTH_TOKEN=$AUTH_INPUT/" claude-web.service
fi
# Update service file paths to match current user / 更新服务文件路径为当前用户
CURRENT_USER=$(whoami)
CURRENT_HOME=$HOME
INSTALL_DIR=$(pwd)
sed -i "s|User=myclaw|User=$CURRENT_USER|" claude-web.service
sed -i "s|/home/myclaw/claude-web|$INSTALL_DIR|g" claude-web.service
sed -i "s|HOME=/home/myclaw|HOME=$CURRENT_HOME|" claude-web.service
sed -i "s|/home/myclaw/.npm-global|$CURRENT_HOME/.npm-global|" claude-web.service
sed -i "s|ReadWritePaths=/home/myclaw|ReadWritePaths=$CURRENT_HOME|" claude-web.service
sudo cp claude-web.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable claude-web.service
sudo systemctl start claude-web.service
echo " Done / 完成"
# Step 4: Check service status / 检查服务状态
echo "[4/4] Checking service / 检查服务状态..."
sleep 2
if systemctl is-active --quiet claude-web.service; then
IP=$(hostname -I | awk '{print $1}')
echo ""
echo "═══════════════════════════════════════"
echo " Install complete! / 安装完成!"
echo "═══════════════════════════════════════"
echo " Status / 状态: Running / 运行中"
echo " URL: http://${IP}:8080"
if [ -n "$AUTH_INPUT" ]; then
echo " Auth URL: http://${IP}:8080?token=${AUTH_INPUT}"
fi
echo ""
echo " Useful commands / 常用命令:"
echo " View logs / 查看日志: sudo journalctl -u claude-web -f"
echo " Restart / 重启: sudo systemctl restart claude-web"
echo " Stop / 停止: sudo systemctl stop claude-web"
echo "═══════════════════════════════════════"
echo ""
else
echo " Failed to start / 启动失败, check logs / 查看日志:"
sudo journalctl -u claude-web -n 20 --no-pager
fi