Развёртывание проекта ultraworkers/claw-code на Ubuntu 22.04
Руководство по развертыванию проекта ultraworkers/claw-code на Ubuntu 22.04 с использованием Rust и Gajae-Code / LazyCodex без участия человека.
Требования
- Виртуальная или физическая машина с Ubuntu 22.04 LTS
- Доступ к пользователю с правами sudo
- Подключение к интернету для загрузки зависимостей
- Базовые знания работы в терминале Linux
Установка системных зависимостей
Сначала убедитесь, что все необходимые пакеты установлены. Rust требует компилятор clang и утилиту pkg-config, а также библиотеки OpenSSL и libsqlite3 для LazyCodex.
sudo apt update && sudo apt install -y build-essential clang pkg-config libssl-dev libsqlite3-dev git curlУстановка Rust toolchain через rustup
Рекомендуется использовать официальную установку rustup, которая обеспечивает предсказуемость версий компилятора и cargo.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/envКлонирование репозитория claw-code
Склонируйте проект в домашний каталог. При необходимости проверьте, что ветка main актуальна.
git clone https://github.com/ultraworkers/claw-code.git
cd claw-codeПроверка конфигурации Gajae‑Code / LazyCodex
В проекте файлы конфигурации находятся в каталоге config/. Убедитесь, что путь к базе данных SQLite указан корректно и доступен для записи.
sed -i 's|/var/lib/claw-code/db.sqlite|$HOME/claw-code/data/db.sqlite|' config/lazycodex.tomlСборка проекта в режиме release
Для предсказуемой работы в продакшене используем профиль release, который включает оптимизации и отключает отладочную информацию.
cargo build --releaseСоздание systemd‑службы
Systemd обеспечивает надёжный контроль за процессом агента. Сначала создайте файл unit‑файла, затем перезагрузите демона и включите автозапуск.
[Unit]
Description=Claw Code museum exhibit agent
After=network.target
[Service]
Type=simple
ExecStart=$HOME/claw-code/target/release/claw-code --config $HOME/claw-code/config/agent.toml
Restart=on-failure
RestartSec=5
User=$USER
Group=$USER
Environment=RUST_LOG=info
[Install]
WantedBy=multi-user.target
# Сохраните как /etc/systemd/system/claw-code.service
sudo cp claw-code.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable claw-code.service
sudo systemctl start claw-code.serviceПроверка статуса службы
Убедитесь, что агент запустился без ошибок. Журналы systemd позволяют быстро отследить проблемы.
systemctl status claw-code.service
journalctl -u claw-code.service -fНастройка обратного прокси (опционально)
Если планируется доступ к веб‑интерфейсу экспозиции, настройте Nginx как обратный прокси на порт 443. Сначала проверьте, что порт свободен.
sudo apt install -y nginx
sudo rm /etc/nginx/sites-enabled/default
cat <<'EOF' | sudo tee /etc/nginx/sites-available/claw-code
server {
listen 443 ssl;
server_name museum.example.com;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
location / {
proxy_pass http://127.0.0.1:8080; # порт, на котором агент слушает HTTP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/claw-code /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginxТестовый запуск экспозиции
Откройте браузер и перейдите по адресу https://museum.example.com. Если всё настроено правильно, вы увидите стартовую страницу, управляемую AI‑агентом.
Автоматическое обновление кода (опционально)
Для полной автономии можно добавить systemd‑таймер, который будет периодически выполнять git pull и пересборку. Пример unit‑файла:
[Unit]
Description=Обновление Claw Code
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=$USER
ExecStart=/usr/bin/bash -c 'cd $HOME/claw-code && git fetch && git reset --hard origin/main && cargo build --release && systemctl restart claw-code.service'
[Install]
WantedBy=timers.target
# Сохраните как /etc/systemd/system/claw-code-update.service
# Затем создайте таймер
cat <<'EOF' | sudo tee /etc/systemd/system/claw-code-update.timer
[Unit]
Description=Запуск обновления Claw Code каждый день
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now claw-code-update.timerРазвёртывание проекта ultraworkers/claw-code на Ubuntu 22.04
Пошаговое руководство по сборке и запуску агент‑управляемой музейной экспозиции, написанной на Rust с использованием Gajae‑Code / LazyCodex, без участия человека.
Предварительные требования
- Виртуальная или физическая машина с Ubuntu 22.04 LTS
- Доступ к пользователю с правами sudo
- Подключение к интернету для загрузки зависимостей
- Базовые знания работы в терминале Linux
Шаг 1: Установка системных зависимостей
Сначала убедитесь, что все необходимые пакеты установлены. Rust требует компилятор clang и утилиту pkg-config, а также библиотеки OpenSSL и libsqlite3 для LazyCodex.
sudo apt update && sudo apt install -y build-essential clang pkg-config libssl-dev libsqlite3-dev git curl
Шаг 2: Установка Rust toolchain через rustup
Рекомендуется использовать официальную установку rustup, которая обеспечивает предсказуемость версий компилятора и cargo.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
Шаг 3: Клонирование репозитория claw-code
Склонируйте проект в домашний каталог. При необходимости проверьте, что ветка main актуальна.
git clone https://github.com/ultraworkers/claw-code.git
cd claw-code
Шаг 4: Проверка конфигурации Gajae‑Code / LazyCodex
В проекте файлы конфигурации находятся в каталоге config/. Убедитесь, что путь к базе данных SQLite указан корректно и доступен для записи.
sed -i 's|/var/lib/claw-code/db.sqlite|$HOME/claw-code/data/db.sqlite|' config/lazycodex.toml
Шаг 5: Сборка проекта в режиме release
Для предсказуемой работы в продакшене используем профиль release, который включает оптимизации и отключает отладочную информацию.
cargo build --release
Шаг 6: Создание systemd‑службы
Systemd обеспечивает надёжный контроль за процессом агента. Сначала создайте файл unit‑файла, затем перезагрузите демона и включите автозапуск.
[Unit]
Description=Claw Code museum exhibit agent
After=network.target
[Service]
Type=simple
ExecStart=$HOME/claw-code/target/release/claw-code --config $HOME/claw-code/config/agent.toml
Restart=on-failure
RestartSec=5
User=$USER
Group=$USER
Environment=RUST_LOG=info
[Install]
WantedBy=multi-user.target
# Сохраните как /etc/systemd/system/claw-code.service
sudo cp claw-code.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable claw-code.service
sudo systemctl start claw-code.service
Шаг 7: Проверка статуса службы
Убедитесь, что агент запустился без ошибок. Журналы systemd позволяют быстро отследить проблемы.
systemctl status claw-code.service
journalctl -u claw-code.service -f
Шаг 8: Настройка обратного прокси (опционально)
Если планируется доступ к веб‑интерфейсу экспозиции, настройте Nginx как обратный прокси на порт 443. Сначала проверьте, что порт свободен.
sudo apt install -y nginx
sudo rm /etc/nginx/sites-enabled/default
cat <<'EOF' | sudo tee /etc/nginx/sites-available/claw-code
server {
listen 443 ssl;
server_name museum.example.com;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
location / {
proxy_pass http://127.0.0.1:8080; # порт, на котором агент слушает HTTP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/claw-code /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx
Шаг 9: Тестовый запуск экспозиции
Откройте браузер и перейдите по адресу https://museum.example.com. Если всё настроено правильно, вы увидите стартовую страницу, управляемую AI‑агентом.
Шаг 10: Автоматическое обновление кода (опционально)
Для полной автономии можно добавить systemd‑таймер, который будет периодически выполнять git pull и пересборку. Пример unit‑файла:
[Unit]
Description=Обновление Claw Code
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=$USER
ExecStart=/usr/bin/bash -c 'cd $HOME/claw-code && git fetch && git reset --hard origin/main && cargo build --release && systemctl restart claw-code.service'
[Install]
WantedBy=timers.target
# Сохраните как /etc/systemd/system/claw-code-update.service
# Затем создайте таймер
cat <<'EOF' | sudo tee /etc/systemd/system/claw-code-update.timer
[Unit]
Description=Запуск обновления Claw Code каждый день
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now claw-code-update.timer