Добавь установку Swift-приложения VPN
This commit is contained in:
47
README.md
47
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
CLI-установка корпоративного VPN `vpn.lemanapro.ru` для macOS.
|
||||
|
||||
**Модули по умолчанию:** Core: включён; Bitwarden: включён; Touch ID: включён; DNS cleanup: включён; runtime-патчи: применяются автоматически перед подключением.
|
||||
**Модули по умолчанию:** Core: включён; Bitwarden: включён; Touch ID: включён; DNS cleanup: включён; Swift Menu Bar app: включён; автозапуск приложения: включён; runtime-патчи: применяются автоматически перед подключением.
|
||||
|
||||
Репозиторий собирает в один воспроизводимый пакет то, что раньше было ручной локальной настройкой:
|
||||
|
||||
@@ -10,6 +10,7 @@ CLI-установка корпоративного VPN `vpn.lemanapro.ru` дл
|
||||
- `openconnect-lite` для SAML SSO через Keycloak;
|
||||
- опциональный Bitwarden CLI для LDAP-пароля и TOTP seed;
|
||||
- опциональный Touch ID helper для мастер-пароля Bitwarden;
|
||||
- Swift Menu Bar app `LemanaVPN.app`;
|
||||
- безопасный DNS cleanup через root-owned wrapper;
|
||||
- алиасы `vpn`, `vpn-debug`, `vpn-fix-dns`.
|
||||
|
||||
@@ -80,6 +81,8 @@ curl -fsSL https://example.org/dokril/lemana-vpn/raw/branch/main/install.sh \
|
||||
| `~/bin/vpn-lemanapro.sh` | Основной CLI для подключения, статуса и sync секретов |
|
||||
| `~/bin/uninstall-lemana-vpn.sh` | Локальный uninstall helper |
|
||||
| `~/bin/keychain-fingerprint` | Опциональный Touch ID helper для мастер-пароля Bitwarden |
|
||||
| `~/Applications/LemanaVPN.app` | Swift Menu Bar app для подключения из status bar |
|
||||
| `~/Library/LaunchAgents/ru.dokops.LemanaVPN.plist` | Автозапуск Menu Bar app при логине |
|
||||
| `~/.config/lemana-vpn/env` | Локальная конфигурация модулей |
|
||||
| `~/.config/lemana-vpn/patch-backups/` | Backup исходника `openconnect-lite` перед runtime-патчами |
|
||||
| `~/.config/openconnect-lite/config.toml` | Профиль SSO и auto-fill правила Keycloak |
|
||||
@@ -128,6 +131,9 @@ Detected state:
|
||||
openconnect-lite: yes
|
||||
Bitwarden CLI: no
|
||||
Touch ID helper: no
|
||||
Swift: yes
|
||||
Menu Bar app: no
|
||||
LaunchAgent: no
|
||||
DNS cleanup: no
|
||||
sudoers: no/no
|
||||
shell aliases: no
|
||||
@@ -139,6 +145,8 @@ Detected state:
|
||||
|
||||
- поставить ли Bitwarden CLI, если `bw` не найден;
|
||||
- собрать ли Touch ID helper, если его нет и Bitwarden включён;
|
||||
- собрать ли Swift Menu Bar app, если `~/Applications/LemanaVPN.app` не найден;
|
||||
- включить ли автозапуск Menu Bar app при логине;
|
||||
- настроить ли sudoers для `openconnect` и DNS cleanup;
|
||||
- добавить ли алиасы в `~/.zshrc`;
|
||||
- записать ли LDAP-пароль и TOTP seed в Keychain, если Bitwarden отключён.
|
||||
@@ -218,6 +226,40 @@ curl -fsSL https://git.dokops.ru/dokril/lemana-vpn/raw/branch/main/install.sh \
|
||||
sh install.sh --without-touchid
|
||||
```
|
||||
|
||||
### Swift Menu Bar app
|
||||
|
||||
Включён по умолчанию. Установщик собирает Swift-приложение из исходников в репозитории и кладёт bundle в:
|
||||
|
||||
```sh
|
||||
~/Applications/LemanaVPN.app
|
||||
```
|
||||
|
||||
Приложение живёт в macOS status bar, запускает `~/bin/vpn-lemanapro.sh --json`, показывает состояние VPN, IP, оставшееся время сессии, health-check тоннеля и строку состояния модулей.
|
||||
|
||||
Для сборки нужен Swift 5.9+ из Xcode Command Line Tools:
|
||||
|
||||
```sh
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
Отключить установку приложения:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://git.dokops.ru/dokril/lemana-vpn/raw/branch/main/install.sh | sh -s -- --without-app
|
||||
```
|
||||
|
||||
Оставить приложение, но отключить автозапуск:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://git.dokops.ru/dokril/lemana-vpn/raw/branch/main/install.sh | sh -s -- --without-autostart
|
||||
```
|
||||
|
||||
Ручной запуск:
|
||||
|
||||
```sh
|
||||
open ~/Applications/LemanaVPN.app
|
||||
```
|
||||
|
||||
## Использование
|
||||
|
||||
```sh
|
||||
@@ -226,6 +268,7 @@ vpn --status # статус без нового подключения
|
||||
vpn --status --json # статус в JSON
|
||||
vpn-debug # видимый браузер и debug-логи
|
||||
vpn-fix-dns # сбросить корпоративные DNS после аварийного завершения
|
||||
open ~/Applications/LemanaVPN.app # открыть Swift-приложение в menu bar
|
||||
```
|
||||
|
||||
Первый запуск с Bitwarden:
|
||||
@@ -343,6 +386,7 @@ uninstall-lemana-vpn.sh
|
||||
- удаляет sudoers rules и DNS cleanup wrapper;
|
||||
- удаляет блок `lemana-vpn` из `~/.zshrc`;
|
||||
- удаляет `~/.config/openconnect-lite/config.toml`;
|
||||
- удаляет `~/Applications/LemanaVPN.app` и LaunchAgent автозапуска;
|
||||
- удаляет `~/.config/lemana-vpn`, если не передан `--keep-config`.
|
||||
|
||||
Опциональные режимы:
|
||||
@@ -350,6 +394,7 @@ uninstall-lemana-vpn.sh
|
||||
```sh
|
||||
uninstall-lemana-vpn.sh --dry-run
|
||||
uninstall-lemana-vpn.sh --keep-config
|
||||
uninstall-lemana-vpn.sh --keep-app
|
||||
uninstall-lemana-vpn.sh --remove-keychain
|
||||
uninstall-lemana-vpn.sh --remove-touchid-helper
|
||||
uninstall-lemana-vpn.sh --remove-openconnect-lite
|
||||
|
||||
Reference in New Issue
Block a user