# VPS Auto-Setup Script Автоматический скрипт для настройки VPS с базовыми инструментами, Docker-окружением и расширенными возможностями. > Часть экосистемы **BBox (bbox.wtf)** — «Свободные люди для свободного мира, во имя приватности и безопасности». ## Что устанавливается - 🛠️ **Системные утилиты**: - `tmux` (с выбором варианта установки) - `mc` (Midnight Commander) - `net-tools` (ifconfig и другие сетевые инструменты) - `git` - 🐋 **Docker & Docker Compose** (как плагин, без дефиса) - 🧩 **Dry** (интерфейс для управления Docker) - 📊 **btop** (мониторинг системы с поддержкой GPU) - 🔗 **Клонирование репозитория** [opendoor-base-install](https://git.softuniq.eu/OpenDoor/opendoor-base-install) - 📂 **Копирование файлов из папки `tmux`** в `/root/` ## Скрипты репозитория | Скрипт | Назначение | |--------|-----------| | `setup_vps.sh` | Основная настройка VPS: утилиты, Docker, dry, btop, tmux | | `init_system.sh` | Первичная инициализация устройства (однократно после развёртывания): обновление, базовые утилиты, Docker, hostname, баннер BBox, сброс идентификаторов | | `cleanup_system.sh` | Очистка и оптимизация: apt-кэш, логи, tmp, orphaned-пакеты, Docker-мусор; `--full` дополнительно удаляет Matrix/nginx и сбрасывает идентификаторы | | `install_scripts.sh` | Установка скриптов в `/usr/local/bin` + сервис автозапуска `bbox-firstboot.service` | | `install.sh` | Единая команда установки из репозитория (инициализация + очистка + скрипты) | | `motd/10-armbian-header.tpl` | Шаблон баннера входа BBox (версия и URL подставляются автоматически) | ### 🖥️ Баннер узла — шаблон из репозитория При входе по SSH узел показывает баннер **BBox (bbox.wtf)**: ``` ___ ___ | _ ) _ ) _____ __ | _ \ _ \/ _ \ \ / |___/___/\___/_\_\ v1.2 bbox.wtf on Orange Pi Zero2 running 6.6.36-current-sunxi64, built on Armbian Linux Created by free people for a free world, in the name of privacy and security. ``` Файл хранится как **шаблон** `motd/10-armbian-header.tpl` с плейсхолдерами `__BBOX_VERSION__` и `__BBOX_URL__`. При каждой установке (`install_scripts.sh` / `init_system.sh`) баннер целиком перезаписывается из шаблона с подстановкой актуальной версии: - **Смена версии** → правите `BBOX_VERSION` в скриптах (единый источник), повторный запуск `install.sh` обновляет баннер на всех устройствах. - **Обновление пакета Armbian** → дефолтный файл восстановится, но повторный `install_scripts.sh` вернёт BBox-баннер. - Бэкап дефолтного баннера Armbian: `/etc/update-motd.d/10-armbian-header.bak`. - Локальная копия шаблона для повторных запусков: `/usr/local/share/bbox/motd/`. ### Первичная инициализация (`init_system.sh`) Выполняется один раз на новом устройстве: ```bash sudo ./init_system.sh ``` Что делает: 1. Обновляет систему и устанавливает базовые утилиты (tmux, mc, git, net-tools, curl, wget, build-essential, btop) 2. Устанавливает Docker + Docker Compose 3. Настраивает hostname (по умолчанию `bbox-node`) 4. Обновляет баннер входа: **BBox v1.2 (bbox.wtf)** с подписью «Created by free people for a free world» 5. Сбрасывает machine-id и SSH host keys (для уникальности клонированных образов) 6. Вызывает `install_scripts.sh` для установки автозапуска ### Очистка системы (`cleanup_system.sh`) ```bash sudo ./cleanup_system.sh # стандартная очистка sudo ./cleanup_system.sh --dry-run # показать, что будет очищено sudo ./cleanup_system.sh --full # + удаление Matrix/nginx, сброс идентификаторов ``` ### Автозапуск (firstboot) `install_scripts.sh` создаёт systemd-сервис `bbox-firstboot.service`, который при **первой** загрузке устройства автоматически выполняет инициализацию. Повторный запуск блокируется маркером `/var/lib/bbox-firstboot-done`. ```bash sudo ./install_scripts.sh # установить скрипты + автозапуск systemctl status bbox-firstboot.service # статус автозапуска ``` ## Особенности - 🔧 **Гибкая установка tmux**: - Простая установка из репозитория - Компиляция из исходников с поддержкой GPU - 🚀 **Оптимизированная работа с Docker**: - Автоматическое добавление пользователя в группу docker - Установка последних стабильных версий - 📈 **Мониторинг системы**: - btop с аппаратным ускорением GPU - Настройка прав для доступа к статистике оборудования ## Предварительные требования - Сервер на базе **Ubuntu/Debian** (рекомендуется LTS-версия) - Пользователь с правами **sudo** - **2+ ГБ** свободного места на диске (для компиляции) - **Интернет-соединение** для загрузки пакетов ## Быстрый старт ### ⚡ Единая команда (рекомендуется) Установка BBox из репозитория **одной командой** — инициализация, очистка и установка скриптов с автозапуском. Все диалоги автоматически выбирают значения по умолчанию через **5 секунд**: ```bash bash <(curl -s https://git.softuniq.eu/OpenDoor/opendoor-base-install/raw/branch/main/install.sh) ``` Без вопросов (полный автозапуск): ```bash bash <(curl -s https://git.softuniq.eu/OpenDoor/opendoor-base-install/raw/branch/main/install.sh) --yes ``` Только определённый шаг: ```bash bash <(curl -s .../install.sh) --init-only # только инициализация bash <(curl -s .../install.sh) --cleanup-only # только очистка bash <(curl -s .../install.sh) --scripts-only # только скрипты/автозапуск bash <(curl -s .../install.sh) --timeout=10 # таймер 10 сек ``` ### Ручная установка ```bash bash <(curl -s https://git.softuniq.eu/OpenDoor/opendoor-base-install/raw/branch/main/setup_vps.sh) ``` ## Ручная установка 1. Скачайте скрипт: ```bash wget https://git.softuniq.eu/OpenDoor/opendoor-base-install/raw/branch/main/setup_vps.sh ``` 2. Сделайте исполняемым: ```bash chmod +x setup_vps.sh ``` 3. Запустите: ```bash ./setup_vps.sh ``` ## Варианты установки tmux При запуске скрипт предложит выбрать вариант установки tmux: 1. **Стандартная установка** (из репозитория): - Быстрая установка - Стабильная версия - Без поддержки GPU 2. **Расширенная установка** (с компиляцией): - Последняя версия из исходников - Поддержка GPU - Требует больше времени и ресурсов ## Что делает скрипт 1. Обновляет систему и устанавливает зависимости 2. Устанавливает выбранную версию tmux 3. Настраивает Docker-окружение: - Docker Engine - Docker Compose Plugin - Dry (интерфейс управления) 4. Компилирует и устанавливает btop с поддержкой GPU 5. Клонирует целевой репозиторий 6. Копирует конфигурационные файлы tmux 7. Проверяет версии всех установленных компонентов ## После установки - Для применения изменений прав Docker: ```bash newgrp docker ``` или перезапустите сессию SSH. - Проверьте работу Docker: ```bash docker run hello-world ``` - Запустите мониторинг системы: ```bash btop ``` ## Примеры использования - Работа с Docker Compose: ```bash docker compose up -d ``` - Запуск интерфейса Dry: ```bash dry ``` - Создание новой сессии tmux: ```bash tmux new -s mysession ``` ## Вопросы и устранение неполадок **Проблемы с GPU в btop?** Убедитесь, что: - У вас установлены драйверы GPU - Скрипт выполнен с правами root или пользователь добавлен в нужные группы **Ошибки при компиляции tmux?** Попробуйте: - Установить больше зависимостей: `build-essential libevent-dev libncurses-dev` - Выбрать стандартную установку из репозитория ## Лицензия MIT License. --- **Безопасность**: Всегда проверяйте скрипты перед запуском на production-серверах. **Поддержка**: Только для Ubuntu/Debian-систем. Для других дистрибутивов дополнительная настройка.