230 lines
11 KiB
Markdown
230 lines
11 KiB
Markdown
# 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-систем. Для других дистрибутивов дополнительная настройка. |