Развёртывание проекта ultraworkers/claw-code на Ubuntu 22.04

Руководство по развертыванию проекта ultraworkers/claw-code на Ubuntu 22.04 с использованием Rust и Gajae-Code / LazyCodex без участия человека.

Средний
Алексей Кузнецов
Алексей Кузнецов
Системный администратор11 июня 2026 г.3 мин чтения

Требования

  • Виртуальная или физическая машина с 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
Поделиться:TelegramX / TwitterVK