Общий стек Postgres
Один защищенный экземпляр Postgres 16 с отдельными ролями и базами для каждого проекта на мультитенантном Docker-хосте
Инфраструктурный рецепт, объединяющий отдельные Postgres-контейнеры проектов на продакшн-сервере автора в один экземпляр postgres:16-alpine в изолированной Docker-сети только для баз данных...
Инфраструктурный рецепт, объединяющий отдельные Postgres-контейнеры проектов на продакшн-сервере автора в один экземпляр postgres:16-alpine в изолированной Docker-сети только для баз данных без опубликованных портов.
Идемпотентный скрипт создает роль и базу для каждого проекта с отозванным публичным доступом и выводит DATABASE_URL, а README описывает бэкапы, восстановление и случаи, когда выделенный экземпляр все же оправдан.
Что умеет
- Выделенная внешняя сеть db_net; не подключена к сети прокси, без портов на хосте
- provision-db.sh: идемпотентное создание роли и базы, генерация/ротация паролей, REVOKE ALL FROM PUBLIC
- Настроенные shm_size, max_connections и shared_buffers для общего экземпляра
- Стабильная политика сортировки UTF8/C и задокументированные бэкап и восстановление через pg_dump/pg_dumpall
Небольшой, но показывает зрелость в эксплуатации: изоляция на уровне сети, роли с минимальными привилегиями, идемпотентные скрипты. Лучше подать в разделе «собственная инфраструктура», а не как отдельный проект.
Нужно что-то похожее?
Делаю это вживую на звонке в Zoom / Яндекс Телемост, вы смотрите на экран, таймер останавливается по вашему слову. Первые 15 минут бесплатно.