Быстро разворачиваем docker, nginx и certbot

В нашей команде мы часто сталкиваемся с необходимостью развертывания новых серверов с одинаковой конфигурацией: nginx, docker, docker-compose и certbot. nginx используем для проксирования докера и назначения человеческого DNS. Для того чтобы не повторяться мы, мы разработали набор скриптов, которые позволяют быстро и легко устанавливать и настраивать эти компоненты на серверах с операционной системой Ubuntu 22 и выше. В этой статье мы поделимся этими скриптами и расскажем, как они помогают сократить время и избежать ошибок при создании нового окружения.
Скрипты
Репозиторий со скриптами доступен на GitHub: prepare-server. В него входят три основных скрипта:
install_docker.sh
— для установки docker.io и docker-compose.install_nginx.sh
— для установки nginx и certbot.add_proxy.sh
— для настройки nginx в качестве прокси для docker-контейнеров.
Установка Docker и Docker Compose
Скрипт install_docker.sh
выполняет установку docker.io и docker-compose, а также добавляет текущего пользователя в группу docker, чтобы можно было запускать docker-команды без sudo
.
Инструкция по использованию:
Клонируйте репозиторий:
git clone https://github.com/CloudLab-Studio/prepare-server.git cd prepare-server
Сделайте скрипт исполняемым:
chmod +x install_docker.sh
Запустите скрипт:
./install_docker.sh
Установка Nginx и Certbot
Скрипт install_nginx.sh
устанавливает nginx, certbot и настраивает файервол для разрешения http и https трафика.
Инструкция по использованию:
Сделайте скрипт исполняемым:
chmod +x install_nginx.sh
Запустите скрипт с указанием желаемой версии nginx:
./install_nginx.sh [stable|mainline]
Настройка Nginx в качестве прокси
Скрипт add_proxy.sh
настраивает конфигурацию прокси для nginx и получает SSL-сертификат с помощью certbot.
Инструкция по использованию:
Сделайте скрипт исполняемым:
chmod +x add_proxy.sh
Запустите скрипт и следуйте подсказкам:
./add_proxy.sh
Вам будет предложено ввести:
Вместо заключения
Безопасность: Скрипт не настраивает безопасность, вам нужно озаботиться об этом самим. Часто хостеры выдают VDS со всеми открытыми портами наружу и ваш сервис будет доступен как по доменному имени, так и по порту.
Почему скрипто только под Ubuntu: Я потратил много ночей на изучение дистрибутивов 20 лет назад и первый человеческий диутрибутив, который у меня завелся Ubuntu — с ним и живем для большинства проектов.
Если у вас есть похожие скрипты для быстрого поднятия сервисов на новых серверах, делитесь и контрибьютьте, велкам.