From 26be464f2b4b63344b4d5af48d290b6db19e8a66 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sat, 21 Feb 2026 18:40:52 +0300 Subject: [PATCH] =?UTF-8?q?feat(bash):=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B8=D0=B2=D0=B0=D1=82=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Зачем: разделение публичных и приватных переменных окружения для безопасного хранения API ключей. Что: создан шаблон .env.secrets.example, обновлен .bashrc для загрузки ~/.env.secrets, добавлено исключение в .gitignore, обновлена документация. Проверка: cp bash/.env.secrets.example ~/.env.secrets, source ~/.bashrc, echo $CONTEXT7_API_KEY. --- .gitignore | 3 +++ README.md | 23 ++++++++++++++++++++--- bash/.bashrc | 5 +++++ bash/.custom_env | 25 +++++++++++++++++++++++++ bash/.env.secrets.example | 14 ++++++++++++++ 5 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 bash/.custom_env create mode 100644 bash/.env.secrets.example diff --git a/.gitignore b/.gitignore index f049842..b2cd56d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ .DS_Store +# Secrets +.env.secrets + # Opencode local files opencode/.config/opencode/package.json opencode/.config/opencode/node_modules/ diff --git a/README.md b/README.md index 264c1fc..a4714eb 100644 --- a/README.md +++ b/README.md @@ -91,13 +91,28 @@ stow bash tmux vim zed opencode Для полной настройки создайте: - `~/.bash_prompt` — кастомный prompt -- `~/.custom_env` — переменные окружения +- `~/.custom_env` — публичные переменные окружения (рекомендуется: симлинк на `dotfiles/bash/.custom_env`) - `~/.bash_aliases` — персональные алиасы +- `~/.env.secrets` — приватные переменные окружения (API ключи) ## 🔑 Переменные окружения -Создайте файл `~/.custom_env` и добавьте необходимые API ключи: +### Публичные переменные +Файл `bash/.custom_env` содержит публичные настройки (функции proxy и т.д.). +Рекомендуется создать симлинк: +```bash +ln -s /path/to/dotfiles/bash/.custom_env ~/.custom_env +``` + +### Приватные переменные (секреты) + +1. Скопируйте шаблон: +```bash +cp bash/.env.secrets.example ~/.env.secrets +``` + +2. Отредактируйте и добавьте API ключи: ```bash # Context7 API (https://context7.com) export CONTEXT7_API_KEY="your_context7_api_key_here" @@ -106,7 +121,9 @@ export CONTEXT7_API_KEY="your_context7_api_key_here" export ZAI_API_KEY="your_zai_api_key_here" ``` -См. `.env.example` для шаблона. +Файл `~/.env.secrets` автоматически подгружается при старте shell. + +См. `.env.example` для дополнительной информации. ## 📄 Лицензия diff --git a/bash/.bashrc b/bash/.bashrc index 363f4a3..0c8ea38 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -136,6 +136,11 @@ if [ -f ~/.custom_env ]; then source ~/.custom_env fi +# Приватные переменные окружения (секреты) +if [ -f ~/.env.secrets ]; then + source ~/.env.secrets +fi + # Opencode MCP конфигурация (добавьте в ~/.custom_env): # export CONTEXT7_API_KEY="ваш_ключ_от_context7" # export ZAI_API_KEY="ваш_ключ_от_z.ai" diff --git a/bash/.custom_env b/bash/.custom_env new file mode 100644 index 0000000..2f77729 --- /dev/null +++ b/bash/.custom_env @@ -0,0 +1,25 @@ +# --- Proxy Settings --- +# Переменные для прокси по умолчанию (если нужно, чтобы он был включен всегда) +# export HTTP_PROXY="http://127.0.0.1:10809" +# export HTTPS_PROXY="http://127.0.0.1:10809" + +# Удобные функции-переключатели для терминала +proxy_on() { + export HTTP_PROXY="http://hproxy.local:12334" + export HTTPS_PROXY="http://hproxy.local:12334" + export ALL_PROXY="socks5://hproxy.local:12334" + export NO_PROXY="hproxy.local,localhost,127.0.0.1" + echo "✅ Proxy enabled. Checking route..." + # Подставляем результат выполнения curl прямо в строку + echo "🌍 Current IP: $(curl -s --max-time 3 https://ifconfig.me)" +} + +proxy_off() { + unset HTTP_PROXY HTTPS_PROXY ALL_PROXY + echo "❌ Proxy disabled. Checking route..." + echo "🏠 Current IP: $(curl -s --max-time 3 https://ifconfig.me)" +} + +# Заодно можно добавить алиас, чтобы быстро чекать IP в любой момент без переключения +alias myip='echo "IP: $(curl -s --max-time 3 https://ifconfig.me)"' + diff --git a/bash/.env.secrets.example b/bash/.env.secrets.example new file mode 100644 index 0000000..fd22b02 --- /dev/null +++ b/bash/.env.secrets.example @@ -0,0 +1,14 @@ +# Приватные переменные окружения +# Скопируйте этот файл в ~/.env.secrets и заполните значения + +# Context7 API (https://context7.com) +# Используется для поиска документации библиотек +export CONTEXT7_API_KEY="your_context7_api_key_here" + +# Z.AI API (https://z.ai) +# Используется для: +# - LLM доступа +# - Поиска в интернете (web-search-prime) +# - Чтения веб-страниц (web-reader) +# - Чтения GitHub репозиториев (zread) +export ZAI_API_KEY="your_zai_api_key_here"