Expand local_machine docs and automation for connectivity, games, and ops.
Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs; document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,17 +1,30 @@
|
||||
# LaunchAgent: SOCKS-туннель для Telegram при входе в систему
|
||||
|
||||
Поднимает `ssh -D 1081 ahau@149.154.64.19` при логине и перезапускает при обрыве.
|
||||
**Основной сценарий:** выход в интернет с **IP DO** только по цепочке **Mac→RU→DO** — `install-via-do.sh` ставит **`telegram-socks-launch.sh`**, который всегда запускает **`telegram-socks-via-do`**. Прямой Mac→DO для SOCKS не используется. Нужны **`Host telegram-socks-via-do`** (с `ProxyJump hsites-ahau`) и доступ к RU. См. [TELEGRAM_GUIDE.md](../TELEGRAM_GUIDE.md).
|
||||
|
||||
**Альтернатива:** только RU прокси — `install.sh` (`ssh -D 1081 ahau@149.154.64.19`).
|
||||
|
||||
- **Порт:** 1081 (отдельно от Cursor 10809, конфликтов нет)
|
||||
- **Сервер:** 149.154.64.19 (ru.hunab.app), пользователь ahau
|
||||
|
||||
## Установка (один раз — дальше работает при каждом входе)
|
||||
## Установка (один раз — дальше работает при каждом входе и после перезагрузки)
|
||||
|
||||
**Через DO (основной):** ключи **ahau** + **`hunab_deploy_key`**, Host **`telegram-socks-via-do`** — [PROXY_GUIDE.md](../PROXY_GUIDE.md).
|
||||
|
||||
```bash
|
||||
# из корня репо local_machine
|
||||
./connectivity/launchd/install.sh
|
||||
./docs/connectivity/launchd/install-via-do.sh
|
||||
```
|
||||
|
||||
Лог: `/tmp/telegram-socks-tunnel-via-do.log`. Снять: `./docs/connectivity/launchd/uninstall-via-do.sh`.
|
||||
|
||||
### Только RU (без DO)
|
||||
|
||||
```bash
|
||||
./docs/connectivity/launchd/install.sh
|
||||
```
|
||||
|
||||
Не держите оба plist на **1081** одновременно — перед `install-via-do` скрипт выгружает старый `com.hunab.telegram-socks` при наличии.
|
||||
|
||||
Скрипт копирует plist в `~/Library/LaunchAgents/` и выполняет `launchctl load`. После этого туннель будет автоматически подниматься при каждом старте/входе в систему.
|
||||
|
||||
Проверка: туннель уже должен быть поднят (RunAtLoad), порт слушает:
|
||||
@@ -19,26 +32,29 @@
|
||||
```bash
|
||||
lsof -i :1081
|
||||
# или
|
||||
./connectivity/scripts/telegram-socks-tunnel.sh status
|
||||
./docs/connectivity/scripts/telegram-socks-tunnel.sh status
|
||||
```
|
||||
|
||||
## Удаление
|
||||
|
||||
```bash
|
||||
./connectivity/launchd/uninstall.sh
|
||||
./docs/connectivity/launchd/uninstall-via-do.sh # сценарий через DO
|
||||
./docs/connectivity/launchd/uninstall.sh # сценарий только RU
|
||||
```
|
||||
|
||||
Файлы в репозитории: **telegram-socks-launch.sh** (только `telegram-socks-via-do`), **com.hunab.telegram-socks-via-do.plist**. Копия скрипта: **`~/Library/Application Support/hunab/telegram-socks-launch.sh`**.
|
||||
|
||||
## Поведение
|
||||
|
||||
- **RunAtLoad** — запуск при входе в систему
|
||||
- **KeepAlive** — при обрыве SSH launchd перезапускает туннель
|
||||
- **ThrottleInterval 30** — не чаще одного перезапуска в 30 секунд при постоянных падениях
|
||||
- Лог: `/tmp/telegram-socks-tunnel.log` (при желании замените путь в plist после копирования)
|
||||
- Логи: `/tmp/telegram-socks-tunnel-via-do.log` (via-DO), `/tmp/telegram-socks-tunnel.log` (только RU)
|
||||
|
||||
## Требования
|
||||
|
||||
- SSH-ключ для `ahau@149.154.64.19` должен быть доступен при логине (в клюchain или без пароля), иначе туннель не поднимется. Проверка вручную: `ssh -D 1081 -N ahau@149.154.64.19`.
|
||||
- Если используете алиас из `~/.ssh/config` (например `hsites-ahau`), в plist можно заменить `ahau@149.154.64.19` на `hsites-ahau`.
|
||||
- **via-DO:** Host `telegram-socks-via-do` (+ jump `hsites-ahau`); ключи **ahau** и **hunab** в keychain. Проверка: `ssh -N -D 1082 telegram-socks-via-do`.
|
||||
- **Только RU:** SSH-ключ для `ahau@149.154.64.19` при логине; проверка: `ssh -D 1081 -N hsites-ahau`.
|
||||
|
||||
## Конфликты портов
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!-- Скрипт: ~/Library/Application Support/hunab/telegram-socks-launch.sh. Только Mac→RU→DO (telegram-socks-via-do). -->
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>com.hunab.telegram-socks-via-do</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/bin/bash</string>
|
||||
<string>-c</string>
|
||||
<string>exec /bin/bash "$HOME/Library/Application Support/hunab/telegram-socks-launch.sh"</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>KeepAlive</key>
|
||||
<true/>
|
||||
<key>ThrottleInterval</key>
|
||||
<integer>15</integer>
|
||||
<key>SoftResourceLimits</key>
|
||||
<dict>
|
||||
<key>NumberOfFiles</key>
|
||||
<integer>65536</integer>
|
||||
</dict>
|
||||
<key>HardResourceLimits</key>
|
||||
<dict>
|
||||
<key>NumberOfFiles</key>
|
||||
<integer>65536</integer>
|
||||
</dict>
|
||||
<key>StandardOutPath</key>
|
||||
<string>/tmp/telegram-socks-tunnel-via-do.log</string>
|
||||
<key>StandardErrorPath</key>
|
||||
<string>/tmp/telegram-socks-tunnel-via-do.log</string>
|
||||
</dict>
|
||||
</plist>
|
||||
29
docs/connectivity/launchd/install-via-do.sh
Executable file
29
docs/connectivity/launchd/install-via-do.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
# LaunchAgent: SOCKS на 1081 с выходом через DigitalOcean (прокси → DO), см. PROXY_GUIDE.md.
|
||||
# Требуется блок Host telegram-socks-via-do в ~/.ssh/config.
|
||||
set -e
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PLIST_NAME="com.hunab.telegram-socks-via-do.plist"
|
||||
DST="$HOME/Library/LaunchAgents/$PLIST_NAME"
|
||||
|
||||
mkdir -p "$HOME/Library/LaunchAgents"
|
||||
HUNAB_SUPPORT="$HOME/Library/Application Support/hunab"
|
||||
mkdir -p "$HUNAB_SUPPORT"
|
||||
cp "$SCRIPT_DIR/telegram-socks-launch.sh" "$HUNAB_SUPPORT/telegram-socks-launch.sh"
|
||||
chmod +x "$HUNAB_SUPPORT/telegram-socks-launch.sh"
|
||||
# Не использовать имя UID — в bash это readonly (присваивание ломает скрипт).
|
||||
GUI_UID=$(id -u)
|
||||
launchctl unload "$HOME/Library/LaunchAgents/com.hunab.telegram-socks.plist" 2>/dev/null || true
|
||||
launchctl bootout "gui/$GUI_UID/com.hunab.telegram-socks-via-do" 2>/dev/null || true
|
||||
launchctl unload "$DST" 2>/dev/null || true
|
||||
cp "$SCRIPT_DIR/$PLIST_NAME" "$DST"
|
||||
if launchctl bootstrap "gui/$GUI_UID" "$DST" 2>/dev/null; then
|
||||
:
|
||||
else
|
||||
launchctl load "$DST" || true
|
||||
fi
|
||||
echo "Installed: $DST (loaded). Survives reboot while this plist exists."
|
||||
echo "Launch helper: $HUNAB_SUPPORT/telegram-socks-launch.sh (only Mac→RU→DO via telegram-socks-via-do)."
|
||||
echo "Ensure ~/.ssh/config defines Host telegram-socks-via-do (+ ProxyJump hsites-ahau) — PROXY_GUIDE.md / TELEGRAM_GUIDE.md."
|
||||
echo "Verify autostart: launchctl list | grep telegram-socks"
|
||||
lsof -i :1081 -sTCP:LISTEN 2>/dev/null && echo "Port 1081 is listening." || echo "Check in a few seconds: lsof -i :1081"
|
||||
13
docs/connectivity/launchd/telegram-socks-launch.sh
Executable file
13
docs/connectivity/launchd/telegram-socks-launch.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# LaunchAgent: SOCKS на 1081 только по цепочке Mac → RU → DO (Host telegram-socks-via-do).
|
||||
# Прямой Mac → DO для SOCKS не используется.
|
||||
ulimit -n 65536 2>/dev/null || ulimit -n 10240 2>/dev/null || true
|
||||
|
||||
SSH_CMD=(/usr/bin/ssh -D 1081 -N \
|
||||
-o TCPKeepAlive=yes \
|
||||
-o IPQoS=throughput \
|
||||
-o ServerAliveInterval=60 \
|
||||
-o ServerAliveCountMax=4 \
|
||||
-o ConnectTimeout=30)
|
||||
|
||||
exec "${SSH_CMD[@]}" telegram-socks-via-do
|
||||
12
docs/connectivity/launchd/uninstall-via-do.sh
Executable file
12
docs/connectivity/launchd/uninstall-via-do.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
# Снимает LaunchAgent com.hunab.telegram-socks-via-do.
|
||||
set -e
|
||||
PLIST_NAME="com.hunab.telegram-socks-via-do.plist"
|
||||
DST="$HOME/Library/LaunchAgents/$PLIST_NAME"
|
||||
|
||||
GUI_UID=$(id -u)
|
||||
launchctl bootout "gui/$GUI_UID/com.hunab.telegram-socks-via-do" 2>/dev/null || true
|
||||
launchctl unload "$DST" 2>/dev/null || true
|
||||
rm -f "$DST"
|
||||
rm -f "$HOME/Library/Application Support/hunab/telegram-socks-launch.sh"
|
||||
echo "Uninstalled: $DST (and launch helper if present)"
|
||||
Reference in New Issue
Block a user