8e766b540e
- 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
18 lines
679 B
Docker
18 lines
679 B
Docker
FROM nginx:alpine
|
|
|
|
RUN apk add --no-cache bash openssl
|
|
|
|
# dummy сертификаты для nginx (нужны чтобы nginx стартовал с любым конфигом)
|
|
RUN mkdir -p /etc/nginx/ssl && \
|
|
openssl req -x509 -nodes -days 365 \
|
|
-newkey rsa:2048 \
|
|
-keyout /etc/nginx/ssl/dummy.key \
|
|
-out /etc/nginx/ssl/dummy.crt \
|
|
-subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
|
|
|
|
RUN mkdir -p /var/www/certbot /etc/nginx/conf.d /etc/nginx/conf.available
|
|
|
|
# per-domain entrypoint для проверки сертификатов
|
|
COPY entrypoint.sh /docker-entrypoint.d/switch-config.sh
|
|
RUN chmod +x /docker-entrypoint.d/switch-config.sh
|