Skip to main content

Cyberstrike is now open source! AI-powered penetration testing for security professionals. Star on GitHub

Переменные окружения

Переменные окружения настраивают учётные данные провайдеров и переключают поведение во время выполнения — полезно для CI/CD и контейнерных сред.

Info

Cyberstrike не читает настройки, такие как модель, агент или тема, из переменных окружения. Они хранятся в файле конфигурации (см. Справочник по конфигурации). Переменные CYBERSTRIKE_* ниже ограничены учётными данными, путями конфигурации и переключателями поведения.

📸 SCREENSHOT: env-vars-terminal.png

Установка переменных окружения в терминале

API-ключи провайдеров

Ключи провайдеров используют стандартные имена переменных SDK. Полный список см. в ИИ-провайдеры.

Anthropic

Terminal window
export ANTHROPIC_API_KEY="sk-ant-api03-..."

OpenAI

Terminal window
export OPENAI_API_KEY="sk-proj-..."

Google (Gemini)

Terminal window
export GOOGLE_GENERATIVE_AI_API_KEY="AI..."
# GEMINI_API_KEY также принимается

OpenRouter

Terminal window
export OPENROUTER_API_KEY="sk-or-..."

Groq

Terminal window
export GROQ_API_KEY="gsk_..."

Azure OpenAI

Terminal window
export AZURE_RESOURCE_NAME="your-resource"
export AZURE_API_KEY="..."

AWS Bedrock

Terminal window
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# или bearer-токен:
export AWS_BEARER_TOKEN_BEDROCK="..."

Переменные пути конфигурации

ПеременнаяОписание
CYBERSTRIKE_CONFIGПолный путь к пользовательскому файлу конфигурации
CYBERSTRIKE_CONFIG_DIRДополнительный каталог .cyberstrike для сканирования
CYBERSTRIKE_CONFIG_CONTENTВстроенная JSON-конфигурация (переопределяет файловые источники)
CYBERSTRIKE_DISABLE_PROJECT_CONFIGУстановите truthy для пропуска загрузки конфигурации проекта
CYBERSTRIKE_PERMISSIONПереопределение разрешений как JSON-строка

Флаги поведения

Эти переменные переключают поведение во время выполнения. Булевы флаги включаются при установке truthy значения (1, true).

ПеременнаяОписание
CYBERSTRIKE_AUTO_SHAREАвтоматический общий доступ к новым сессиям
CYBERSTRIKE_DISABLE_AUTOUPDATEОтключить автоматические обновления
CYBERSTRIKE_DISABLE_AUTOCOMPACTОтключить автоматическую компактификацию контекста
CYBERSTRIKE_DISABLE_PRUNEОтключить очистку старых выводов инструментов
CYBERSTRIKE_DISABLE_TERMINAL_TITLEНе обновлять заголовок терминала
CYBERSTRIKE_DISABLE_DEFAULT_PLUGINSПропустить загрузку встроенных плагинов
CYBERSTRIKE_DISABLE_LSP_DOWNLOADНе скачивать LSP-серверы
CYBERSTRIKE_DISABLE_MODELS_FETCHНе загружать удалённый каталог моделей
CYBERSTRIKE_DISABLE_EXTERNAL_SKILLSПропустить загрузку внешних навыков
CYBERSTRIKE_ENABLE_EXAВключить веб-поиск на базе Exa
CYBERSTRIKE_MODELS_URLПереопределить URL каталога моделей
CYBERSTRIKE_MODELS_PATHЗагрузить каталог моделей из локального пути

Учётные данные сервера

Используются cyberstrike serve и cyberstrike web:

Terminal window
export CYBERSTRIKE_SERVER_PASSWORD="..." # обязательно для запуска сервера
export CYBERSTRIKE_SERVER_USERNAME="admin" # необязательно, есть значения по умолчанию

Ссылки на переменные в конфигурации

Файлы конфигурации поддерживают две подстановки — и только эти две:

Переменные окружения — {env:VAR}

~/.config/cyberstrike/cyberstrike.jsonc
{
"provider": {
"anthropic": {
"options": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
}
}
}
}

{env:VAR} заменяется значением VAR или пустой строкой, если не установлена. Shell-синтаксис ${VAR}, $VAR и синтаксис значений по умолчанию ({env:VAR:-default}) не поддерживаются.

Содержимое файлов — {file:path}

{
"instructions": ["{file:./SECURITY.md}"]
}

Пути могут быть относительными к файлу конфигурации, абсолютными или начинаться с ~/ для домашнего каталога.

Переопределение разрешений для автоматизации

cyberstrike run (неинтерактивный) автоматически отклоняет любой вызов инструмента, который потребовал бы запроса. Для предварительного одобрения инструментов в CI передайте JSON-карту разрешений через CYBERSTRIKE_PERMISSION:

Terminal window
export CYBERSTRIKE_PERMISSION='{"bash":"allow","edit":"allow","read":"allow"}'

Значение имеет ту же форму, что и поле конфигурации permission. См. Разрешения.

Настройка оболочки

Bash / Zsh

~/.bashrc / ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-..."
export CYBERSTRIKE_AUTO_SHARE=1

Fish

~/.config/fish/config.fish
set -gx ANTHROPIC_API_KEY "sk-ant-..."
set -gx CYBERSTRIKE_AUTO_SHARE 1

Файлы .env

.env
ANTHROPIC_API_KEY=sk-ant-...
CYBERSTRIKE_PERMISSION={"bash":"allow"}
Terminal window
# Загрузить перед запуском
source .env && cyberstrike

Caution

Никогда не коммитьте файлы .env в систему контроля версий. Добавьте .env в .gitignore.

Интеграция CI/CD

GitHub Actions

env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CYBERSTRIKE_PERMISSION: '{"bash":"allow","read":"allow","edit":"allow"}'
steps:
- name: Security Scan
run: cyberstrike run "scan for vulnerabilities"

GitLab CI

variables:
CYBERSTRIKE_PERMISSION: '{"bash":"allow","read":"allow"}'
security_scan:
script:
- cyberstrike run "analyze code for security issues"

Docker

Docker Run

Terminal window
docker run -it \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
-e CYBERSTRIKE_PERMISSION='{"bash":"allow"}' \
cyberstrike/cyberstrike

Docker Compose

docker-compose.yml
services:
cyberstrike:
image: cyberstrike/cyberstrike
environment:
- ANTHROPIC_API_KEY
- CYBERSTRIKE_AUTO_SHARE=1
env_file:
- .env

Порядок приоритетов

Источники конфигурации объединяются в этом порядке (наивысший побеждает):

1. Аргументы командной строки
2. Управляемая корпоративная конфигурация
3. CYBERSTRIKE_CONFIG_CONTENT (встроенный JSON)
4. Конфигурация каталога .cyberstrike/
5. Конфигурация проекта (cyberstrike.json / .jsonc)
6. CYBERSTRIKE_CONFIG (пользовательский файл)
7. Глобальная конфигурация (~/.config/cyberstrike/)
8. Удалённая .well-known/cyberstrike
9. Значения по умолчанию

Подробности см. в Справочнике по конфигурации.

Проверка переменных

Terminal window
# Список активных переменных Cyberstrike
env | grep CYBERSTRIKE
# Проверка установки ключа провайдера (без полного вывода)
echo "${ANTHROPIC_API_KEY:0:12}..."

Безопасность

  1. Никогда не выводите полные API-ключи
  2. Используйте управление секретами в CI/CD
  3. Регулярно ротируйте ключи
  4. Ограничьте права .env: chmod 600 .env

Tip

Используйте менеджер секретов, такой как HashiCorp Vault, AWS Secrets Manager или 1Password CLI для продакшен-сред.

Связанная документация