**Цель проекта:**
Разработать скрипт, который автоматически развёртывает на одном VPS с Ubuntu 24 следующие сервисы:
- **n8n** – платформа для автоматизации бизнес-процессов
- **NocoDB** – база данных с веб-интерфейсом (установка по аналогии с автоустановкой из документации)
- **Adminer** – инструмент для управления базами данных
- **Traefik** – реверс-прокси для маршрутизации запросов и автоматического получения SSL-сертификатов
- **PostgreSQL** – основная СУБД
- **Redis** – кэширование и управление очередями
- **MinIO** – объектное хранилище, доступное по отдельному доменному имени
**Особенность:**
Пользователь указывает ссылку (например, на GitHub-репозиторий), откуда скрипт скачивается и запускает автоматическую установку всей инфраструктуры.
---
**Требования к окружению:**
- Операционная система: Ubuntu 24 (с возможностью работы на Debian 11 или Ubuntu 20.04/22.04)
- Предустановленные компоненты: Docker, Docker Compose (версия 2+); наличие root/sudo-доступа
- При отсутствии компонентов – автоматическая установка необходимых утилит (curl, wget, jq, netstat, certbot и пр.)
---
**Функциональные требования:**
1. **Проверка окружения:**
Наличие Docker, Docker Compose и системных утилит
Проверка доступности требуемых портов с выводом предупреждения при их занятии
2. **Ввод данных:**
Доменные имена для сервисов (например, `n8n.example.com`, `db.example.com`) и отдельный домен для MinIO (`minio.example.com`)
Логины и пароли для каждого сервиса (с возможностью автогенерации)
Email для получения SSL-сертификатов (certbot, Let’s Encrypt)
3. **Установка и настройка сервисов:**
Создание структуры каталогов, например, `/opt/services/{n8n, nocodb, adminer, traefik, postgres, redis, minio}`
Развёртывание каждого сервиса в Docker-контейнере
Автоматическая генерация единого файла `docker-compose.yml` и соответствующих `.env` файлов
Настройка Traefik: маршрутизация через HTTPS, автоматическое получение SSL-сертификатов, обеспечение доступа к MinIO по отдельному доменному имени
Автоустановка NocoDB по аналогии с примером из документации
4. **Дополнительные настройки Docker Compose:**
Применение директивы `restart: always` для критически важных сервисов (Traefik, n8n, NocoDB, PostgreSQL, Redis, MinIO)
Настройка healthcheck для проверки доступности сервисов (например, для Traefik: команда curl для проверки ответа на порту, интервал 30s, timeout 10s, retries 3)
5. **Мониторинг и управление:**
Создание systemd-сервисов для автоматического запуска `docker-compose up -d` при старте системы
Регулярная проверка состояния контейнеров (docker ps, curl) с автоматическим перезапуском при сбоях
Логирование событий в файл `/var/log/install_script.log`
Автоматическая проверка и обновление контейнеров при наличии новых версий
6. **Запуск установки по ссылке:**
Скрипт скачивает последнюю версию установочного скрипта с указанного GitHub-репозитория
Автоматически выполняет установку и настройку всей описанной инфраструктуры согласно данному ТЗ
---
**Результат:**
После успешной установки скрипт выводит на экран ссылки для доступа к каждому сервису, учетные данные, а также сохраняет всю конфигурационную информацию в файл `/opt/services/setup_info.txt`.
Разделы:
Заказ
Опубликован:
26.02.2025 | 12:56 [поднят: 26.02.2025 | 12:56] [последние изменения: 28.02.2025 | 14:06]
Заказ находится в архиве