Ai Install Hermes In Incus
راهنمای جامع صفر تا صد: نصب Incus، راهاندازی کانتینر Ubuntu و داشبورد وب Hermes Agent
بخش اول: نصب و راهاندازی Incus روی سرور اصلی (Host)
- ۱. نصب پیشنیازها و افزودن مخزن رسمی Zabbly
sudo apt-get update sudo apt-get install -y curl gpg sudo mkdir -p /etc/apt/keyrings/ curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
sudo sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources Enabled: yes Types: deb URIs: https://pkgs.zabbly.com/incus/stable Suites: $(. /etc/os-release && echo ${VERSION_CODENAME}) Components: main Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/zabbly.asc EOF'
- ۲. نصب بستههای Incus و فعالسازی
sudo apt-get update sudo apt-get install -y incus incus-ui-canonical sudo usermod -aG incus-admin $USER newgrp incus-admin
- ۳. مقداردهی اولیه استوریج و شبکه Incus
incus admin init --auto
- ۴. ساخت کانتینر اختصاصی Ubuntu 24.04
incus launch images:ubuntu/24.04 incus-ubuntu-hermes
- ۵. مشاهده لیست و وضعیت کانتینرها
incus list
- ۶. ورود مستقیم به محیط شل (Bash) کانتینر با دسترسی Root
incus exec incus-ubuntu-hermes -- bash
بخش دوم: مراحل داخل کانتینر (incus-ubuntu-hermes)
- ۱. بهروزرسانی و نصب ابزارهای پایه و ضروری
apt update && apt install -y curl git tar xz-utils socat python3 nano
- ۲. نصب رسمی Hermes Agent
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash source ~/.bashrc
- ۳. تولید هش امن رمز عبور با الگوریتم scrypt اختصاصی Hermes
- (به جای PASSWORD_HERE رمز دلخواه خود را بگذارید)
HASH=$(/root/.hermes/bin/uv run python - << 'EOF' import sys sys.path.insert(0, '/usr/local/lib/hermes-agent') from plugins.dashboard_auth.basic import hash_password print(hash_password("Password!2345")) EOF )
- ۴. تنظیم دامین و احراز هویت در فایل config.yaml
mkdir -p /root/.hermes sed -i '/^dashboard:/,$d' /root/.hermes/config.yaml
cat << EOF >> /root/.hermes/config.yaml
dashboard:
public_url: "http://s5.sovi.ir:9119" basic_auth: username: "karavi" password_hash: "$HASH"
EOF
- ۵. ایجاد سرویس خودکار systemd برای وبسرور Hermes
cat << 'EOF' > /etc/systemd/system/hermes-dashboard.service [Unit] Description=Hermes Agent Web Dashboard After=network.target
[Service] Type=simple User=root WorkingDirectory=/root Environment="PATH=/usr/local/bin:/root/.hermes/bin:/usr/local/share/uv/bin:/usr/bin:/bin" ExecStart=/usr/local/bin/hermes dashboard --host 127.0.0.1 --port 9119 --no-open --skip-build Restart=always RestartSec=5 StandardOutput=journal StandardError=journal
[Install] WantedBy=multi-user.target EOF
- ۶. ایجاد سرویس فوروارد پورت شبکه (socat)
cat << 'EOF' > /etc/systemd/system/hermes-proxy.service [Unit] Description=Expose Hermes Dashboard to Network After=hermes-dashboard.service
[Service] Type=simple ExecStart=/usr/bin/socat TCP4-LISTEN:9120,fork,reuseaddr TCP4:127.0.0.1:9119 Restart=always RestartSec=3
[Install] WantedBy=multi-user.target EOF
- ۷. فعالسازی و استارت سرویسها داخل کانتینر
systemctl daemon-reload systemctl enable --now hermes-dashboard hermes-proxy
- ۸. خروج از کانتینر به هاست اصلی
exit
بخش سوم: پورت فورواردینگ روی سرور اصلی (Host)
- ۱. هدایت پورت 9119 سرور اصلی به پورت 9120 کانتینر از طریق پروکسی بومی Incus
incus config device add incus-ubuntu-hermes hermes-web-port proxy listen=tcp:0.0.0.0:9119 connect=tcp:127.0.0.1:9120
- ۲. بررسی وضعیت پورت روی هاست
ss -tulpn | grep 9119
بخش چهارم: دسترسی به داشبورد و مدیریت
- آدرس در مرورگر: http://s5.sovi.ir:9119
- نام کاربری (Username): karavi
- رمز عبور (Password): رمز عبور تنظیمشده در مرحله ۳
دستورات مفید مدیریتی:
- ورود مجدد به کانتینر: incus exec incus-ubuntu-hermes -- bash
- مشاهده لاگ زنده داشبورد: journalctl -u hermes-dashboard -f
- ریستارت داشبورد: systemctl restart hermes-dashboard
- متوقف کردن کانتینر: incus stop incus-ubuntu-hermes
- روشن کردن کانتینر: incus start incus-ubuntu-hermes