Запуск Quarshell на Linux¶
В инструкции CLI и Gateway работают на Linux-хосте, sandbox создаётся через
Docker Engine. API Quarshell пока нестабильны и остаются в серии 0.x.
Требования¶
- 64-битный Linux на
x86_64илиarm64. - Docker Engine с доступным API socket либо Podman с API socket.
curl,shи shell с~/.local/binвPATH.
Пользователь, запускающий quarshell-gateway, должен иметь доступ к socket
container engine. Доступ к rootful Docker socket даёт контроль над хостом,
эквивалентный root. Используйте отдельный хост и следуйте политике безопасности
вашей системы.
1. Установите container engine¶
Для Docker следуйте официальной инструкции для своего дистрибутива, например для Ubuntu. Запустите сервис и предоставьте текущему пользователю доступ к нему. Проверьте:
Для Podman используйте официальную инструкцию установки. В системе с пользовательской сессией systemd запустите socket:
2. Установите CLI и Gateway¶
curl -fsSL https://raw.githubusercontent.com/KLORQ/quarshell-cli/main/install.sh | CAUTEM_NO_START=1 sh
Установщик проверяет SHA-256 checksum и ставит cautem,
quarshell-gateway и helper-файлы в ~/.local/bin. CAUTEM_NO_START=1
позволяет выбрать и запустить engine до запуска Gateway.
Если нужно, добавьте каталог в PATH через ~/.profile:
Проверьте CLI и Gateway:
3. Выберите Docker или Podman¶
Локальный Gateway по умолчанию использует Docker. Чтобы выбрать Podman, задайте backend до запуска Gateway:
Оставьте переменную в shell, из которого вызываете cautem. Если Gateway уже
работает с другим backend, перезапустите его после смены настройки. Проверьте
доступ к engine от имени пользователя Gateway:
4. Скачайте image и подготовьте политику¶
Для Docker:
Для Podman выполните podman pull ghcr.io/cautem/cautem/sandboxes/base:latest.
Включите alias
base для опубликованного image и сохраните policy:
export CAUTEM_USE_GHCR=1
mkdir -p ~/.config/cautem
cat > ~/.config/cautem/default-policy.yaml <<'EOF'
version: 1
filesystem_policy:
include_workdir: true
read_only:
- /usr
- /lib
- /proc
- /dev/urandom
- /app
- /etc
- /var/log
- /AGENTS.md
read_write:
- /tmp
- /dev/null
- /sandbox
- /workspace
landlock:
compatibility: best_effort
network_policies: {}
EOF
5. Создайте sandbox и выполните в нём команду¶
Запускайте команды из каталога проекта, который нужно загрузить:
cautem sandbox create \
--name demo \
--gateway-workspace default \
--from base \
--policy ~/.config/cautem/default-policy.yaml \
--upload "$PWD"
cautem sandbox list
cautem sandbox exec demo -- uname -a
cautem sandbox connect demo
connect открывает shell; выход — exit. --upload отправляет копию каталога
при создании, но не монтирует живую папку хоста. Политика не разрешает сетевые
адреса, пока вы не добавите точечные правила: сетевая политика.
Удалите sandbox после работы:
Устранение неполадок¶
- Gateway не проходит health check: запустите
cautem gateway ensureи проверьте~/.config/cautem/gateway.log. docker infoилиpodman infoне работает: настройте доступ к сервису/socket для того же пользователя и повторите проверку.- Image не скачивается: проверьте доступ к registry командой
pullengine. - Gateway игнорирует Podman: задайте
CAUTEM_GATEWAY_RUNTIME=podmanдо запуска. Инструкция отключает автозапуск черезCAUTEM_NO_START=1при установке.
