infra
Описание
Общая инфрастуктура проекта
Языки
- Nginx100%
2 месяца назад
2 месяца назад
2 месяца назад
25 дней назад
24 дня назад
24 дня назад
25 дней назад
25 дней назад
README.md
Серверная инфраструктура
Общая Docker-инфраструктура сервера. Разворачивается один раз; все проекты подключаются к её внешним сетям.
Сервисы
| Сервис | Образ | Описание |
|---|---|---|
| socket_proxy | nginx:alpine | Прокси для Docker socket (совместимость Traefik + Docker 29) |
| traefik | traefik:v3.4.1 | Reverse proxy, SSL через Let's Encrypt |
| mariadb | mariadb:11 | Общая БД для PHP-проектов (WordPress и др.) |
| postgres | postgres:16-alpine | Общая БД для остальных проектов |
| pgadmin | dpage/pgadmin4 | Веб-интерфейс управления БД → |
| postfix | boky/postfix | SMTP-сервер исходящей почты |
| portainer | portainer/portainer-ce | Управление контейнерами → |
Первый запуск
Подключение нового проекта
1. Добавить внешние сети в docker-compose.yml проекта
Подключай только те сети, которые нужны проекту:
2. Подключить нужные сети к контейнеру приложения
3. Настроить Traefik-маршрутизацию (labels)
4. Создать базу данных (если нужна)
PostgreSQL:
MariaDB:
Настройка исходящей почты в приложении
Postfix доступен внутри Docker по хосту , порт postfix (plain SMTP).
Никакой авторизации не требуется — трафик изолирован сетью 25.mail
Переменные окружения для типичных фреймворков
Пример Nodemailer
Настройка DNS для исходящей почты
Без этих записей письма попадут в спам.
Шаг 1 — Получить DKIM-ключ
Вывод будет примерно таким:
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkq..." )
Шаг 2 — Добавить DNS-записи
| Тип | Имя | Значение |
|---|---|---|
| TXT | | |
| TXT | | (содержимое из шага 1) |
| PTR | | (настраивается у хостера) |
PTR-запись (reverse DNS) настраивается в панели хостера, не в DNS-регистраторе.