-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
80 lines (67 loc) · 2.3 KB
/
setup.sh
File metadata and controls
80 lines (67 loc) · 2.3 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
#!/usr/bin/env bash
# ================================================================
# MacroAgent setup helper
# Usage: bash setup.sh
# ================================================================
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VENV_DIR="${SCRIPT_DIR}/.venv"
SERVICE_NAME="macro-agent"
echo "🚀 MacroAgent Setup"
echo "========================="
# --- 1. Python venv ---
# if [ ! -d "${VENV_DIR}" ]; then
# echo "📦 Creating virtual environment..."
# python3 -m venv "${VENV_DIR}"
# fi
# echo "📦 Activating venv and installing dependencies..."
# source "${VENV_DIR}/bin/activate"
# pip install --upgrade pip -q
# pip install -r "${SCRIPT_DIR}/requirements.txt" -q
# echo "✅ Dependencies installed"
# --- 2. 数据目录 ---
# mkdir -p "${SCRIPT_DIR}/data"
# echo "✅ data/ directory ready"
# --- 3. .env 检查 ---
# if [ ! -f "${SCRIPT_DIR}/.env" ]; then
# if [ -f "${SCRIPT_DIR}/.env.example" ]; then
# cp "${SCRIPT_DIR}/.env.example" "${SCRIPT_DIR}/.env"
# echo "⚠️ .env created from .env.example — please fill in your API keys!"
# else
# echo "⚠️ No .env file found. Please create one with your API keys."
# fi
# else
# echo "✅ .env exists"
# fi
# --- 4. systemd unit file ---
UNIT_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
echo "📝 Generating systemd unit file..."
sudo tee "${UNIT_FILE}" > /dev/null <<EOF
[Unit]
Description=MacroAgent skill runtime
After=network.target
[Service]
Type=simple
User=${USER}
WorkingDirectory=${SCRIPT_DIR}
ExecStart=${VENV_DIR}/bin/python ${SCRIPT_DIR}/src/macro_agent/main.py
Restart=on-failure
RestartSec=10
EnvironmentFile=${SCRIPT_DIR}/.env
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=${SERVICE_NAME}
[Install]
WantedBy=multi-user.target
EOF
echo "✅ systemd unit file created at ${UNIT_FILE}"
echo "========================="
echo "🎉 Setup complete!"
echo ""
echo " 配置服务: # sudo systemctl daemon-reload && sudo systemctl enable ${SERVICE_NAME}"
echo " 启动服务: sudo systemctl start ${SERVICE_NAME}"
echo " 查看日志: journalctl -u ${SERVICE_NAME} -f"
echo " 手动运行: source .venv/bin/activate && python src/macro_agent/main.py --cli"
echo ""
echo "⚠️ 请确保 .env 中已填入正确的 API Key"