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
This commit is contained in:
@@ -1,20 +1,10 @@
|
||||
FROM certbot/certbot
|
||||
|
||||
# Проверяем наличие crond (используем command -v вместо which)
|
||||
RUN if ! command -v crond > /dev/null 2>&1; then \
|
||||
echo "Cron not found. Installing cronie..."; \
|
||||
apk add --no-cache cronie; \
|
||||
else \
|
||||
echo "Cron is already installed."; \
|
||||
fi
|
||||
RUN apk add --no-cache cronie docker-cli
|
||||
|
||||
# Создаем директории для конфигов
|
||||
RUN mkdir -p /etc/letsencrypt/config
|
||||
|
||||
# Копируем конфигурационные файлы
|
||||
COPY scripts/ /opt/
|
||||
RUN chmod +x /opt/*.sh
|
||||
|
||||
# Устанавливаем права
|
||||
RUN chmod +x /opt/*
|
||||
|
||||
ENTRYPOINT ["/opt/init-certbot.sh"]
|
||||
ENTRYPOINT ["/opt/init-certbot.sh"]
|
||||
|
||||
Reference in New Issue
Block a user