Skip to content

feat: add one-shot VPS installer - #49

Open
motioncatcher wants to merge 1 commit into
p1neappleXpress:mainfrom
motioncatcher:feat/vps-installer
Open

feat: add one-shot VPS installer#49
motioncatcher wants to merge 1 commit into
p1neappleXpress:mainfrom
motioncatcher:feat/vps-installer

Conversation

@motioncatcher

Copy link
Copy Markdown
## Что добавлено

Добавлен one-shot установщик OpenFlux для VPS:

```bash
sudo ./scripts/install-vps.sh \
  --transport yandex \
  --url "https://disk.yandex.ru/i/YOUR_DOCUMENT"

Скрипт использует уже существующую Docker-инфраструктуру проекта (Dockerfile, docker/entrypoint.sh, docker-compose.yml) и не дублирует контейнерную логику.

Что умеет установщик

  • устанавливает необходимые зависимости на Debian/Ubuntu;

  • устанавливает Docker и Docker Compose, если они отсутствуют;

  • клонирует или обновляет OpenFlux;

  • поддерживает транспорты:

    • yandex
    • vyandex
    • oneme
  • создаёт .env с нужной конфигурацией;

  • запускает upstream Docker Compose profile exit-node;

  • не добавляет глобальный RST DROP на хост;

  • устанавливает вспомогательные команды:

    • openflux-health
    • openflux-status
    • openflux-log
    • openflux-update
    • openflux-url
  • добавляет безопасный updater с rollback;

  • опционально включает еженедельное автообновление через systemd timer;

  • умеет удалить старое глобальное правило RST DROP, если оно осталось от предыдущей схемы установки.

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

Установщик использует существующую контейнерную изоляцию OpenFlux.

RST suppression остаётся внутри network namespace контейнера exit-node и не влияет на другие сервисы VPS, например SSH, Amnezia или другие Docker-контейнеры.

Скрипт не изменяет конфигурацию сторонних Docker-сетей и сервисов.

Примеры

Yandex

sudo ./scripts/install-vps.sh \
  --transport yandex \
  --url "https://disk.yandex.ru/i/YOUR_DOCUMENT"

OneMe / MAX

sudo ./scripts/install-vps.sh \
  --transport oneme \
  --max-token "TOKEN" \
  --max-uid "OTHER_SIDE_UID"

Включение автообновления

sudo ./scripts/install-vps.sh \
  --transport yandex \
  --url "https://disk.yandex.ru/i/YOUR_DOCUMENT" \
  --enable-auto-update

Обновление

openflux-update:

  1. получает новый origin/main;
  2. собирает candidate Docker image;
  3. только после успешной сборки переключает source checkout;
  4. пересоздаёт exit-node;
  5. проверяет, что контейнер продолжает работать;
  6. при ошибке возвращает предыдущий Git HEAD и предыдущий Docker image.

Документация

Также добавлены инструкции по использованию установщика в:

  • README.md
  • README.ru.md

Тестирование

Проверено на Ubuntu VPS с существующими Docker-сервисами.

Дополнительно проверялись:

  • запуск exit-node;
  • перезапуск контейнера;
  • работа после reboot;
  • отсутствие глобального RST DROP на хосте;
  • обновление через openflux-update;
  • rollback при неудачном запуске новой версии.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant