Files
tp/main_dc/certbot/scripts/init-certbot.sh
T
valitovgaziz 8e766b540e feat: CI/CD, per-domain HTTPS, backup, config generator
- sites.yml — единый источник истины для всех сайтов
- generate-configs.sh — генератор nginx конфигов, certbot domains.txt, .env
- nginx: per-domain HTTPS (вместо all-or-nothing switch-config)
- certbot: единый renew-all.sh, динамический init (без 5 дублирующих скриптов)
- backup: контейнер с pg_dump + rclone (Яндекс.Диск), ежедневно в 3AM
- Gitea + Gitea Runner в docker-compose (self-hosted Git + CI/CD)
- .gitea/workflows/deploy.yml — CI/CD pipeline: push → авто-деплой
- Makefile: generate-configs, reconfig, deploy, backup, restore, gitea, help
2026-06-12 12:22:19 +05:00

33 lines
1.1 KiB
Bash

#!/bin/sh
# init-certbot.sh — точка входа certbot контейнера
set -e
echo "=== Certbot init ==="
# Получаем сертификаты для всех доменов из DOMAINS_* env
env | grep '^DOMAINS_' | grep -v '^ALL_DOMAINS' | sort | while IFS='=' read -r var_name domains; do
primary_domain=$(echo "$domains" | cut -d, -f1)
if [ ! -d "/etc/letsencrypt/live/$primary_domain" ]; then
echo "→ Получаем сертификат для $primary_domain"
certbot certonly --webroot \
--config /etc/letsencrypt/config/certbot.ini \
-w /var/www/certbot \
-d "$domains"
echo "✓ Сертификат для $primary_domain получен"
else
echo "✓ Сертификат для $primary_domain уже существует"
fi
done
# Настраиваем cron для ежедневного обновления
cp /opt/crontab.txt /etc/crontabs/root
# Запускаем crond в фоне
crond -b
echo "=== Init завершён, контейнер работает ==="
# Держим контейнер живым
tail -f /dev/null