Главная/Разработка/PostgreSQL
Установка PostgreSQL на свой сервер или в облаке
Установка PostgreSQL на свой сервер занимает несколько минут: пакет из репозитория Ubuntu или официальный образ Docker, порт 5432 и пароль для пользователя базы. Сложнее потом: настроить память, закрыть базу от интернета и наладить копии. Если обслуживать базу некому, возьмите управляемую: обновления и копии тогда на провайдере.
Ответ за 30 секунд
Есть Linux-сервер и время на обслуживание: ставьте PostgreSQL из пакетов или Docker и держите порт 5432 закрытым. Некому обновлять и проверять копии: управляемая база стоит от 790 ₽ в месяц, а копии считаются отдельно, 6 ₽ за ГБ (цены на 14 октября 2026).
Провайдер ставит обновления и делает копии, вам остаётся строка подключения для приложения.
Сколько памяти нужно PostgreSQL и что в ней менять5432порт PostgreSQL по умолчанию
18основная версия в образе postgres
от 790 ₽управляемая PostgreSQL в месяц
01 · 1 мин
Где запускать PostgreSQL: свой VPS или управляемая база#
PostgreSQL можно держать на собственном сервере рядом с приложением или заказать готовую базу у провайдера. Данные и функции одинаковые, отличается то, кто отвечает за ночной сбой.
| Маршрут | Что делаете вы | Цена на 14 октября 2026 |
|---|---|---|
| Свой VPS, пакеты или Docker | Ставите, настраиваете память, обновляете версии, проверяете копии, закрываете порт | Сервер от 1 920 ₽ в месяц, база делит его с остальным |
| Управляемая PostgreSQL в Таймвеб Клауд | Создаёте базу и берёте строку подключения | От 790 ₽ в месяц, автокопии 6 ₽ за ГБ в месяц, публичный IP 200 ₽ |
Свой сервер выгоден, когда на нём уже работает приложение и базе хватает его ресурсов. Управляемая база нужна там, где потеря данных дороже месяца подписки. Внутренний трафик внутри приватной сети провайдера бесплатный, так что приложение и база могут жить на разных машинах.
02 · 1 мин
Установка PostgreSQL на Ubuntu из репозитория#
- Поставьте пакет. Он создаёт кластер, то есть набор баз под управлением одного процесса, и запускает службу.
- Создайте пользователя и базу под своё приложение: не работайте от имени
postgres. - Проверьте подключение через
psqlи убедитесь, что служба стартует после перезагрузки.
sudo apt update
sudo apt install -y postgresql
sudo -u postgres createuser --pwprompt app
sudo -u postgres createdb --owner=app appdb
psql -h 127.0.0.1 -U app appdb
Файлы настроек в Ubuntu и Debian лежат в /etc/postgresql/<версия>/main/: основной postgresql.conf и правила доступа pg_hba.conf. Версия в репозитории дистрибутива может отставать; свежую берут из репозитория PGDG, подключить его помогает скрипт apt.postgresql.org.sh из пакета postgresql-common. Для векторного поиска понадобится расширение: pgvector в PostgreSQL.
03 · 1 мин
PostgreSQL в Docker: compose-файл и том данных#
Образ postgres требует одну переменную, POSTGRES_PASSWORD. Начиная с 18 версии образ хранит данные в каталоге, привязанном к номеру версии, поэтому том подключают к /var/lib/postgresql, а не к /var/lib/postgresql/data, как в старых инструкциях.
services:
db:
image: postgres:18
restart: unless-stopped
env_file: .env
environment:
POSTGRES_USER: app
POSTGRES_DB: appdb
volumes:
- pgdata:/var/lib/postgresql
ports:
- "127.0.0.1:5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app -d appdb"]
interval: 10s
volumes:
pgdata:
В файле .env одна строка POSTGRES_PASSWORD=.... Адрес 127.0.0.1 перед портом не даёт Docker открыть базу всему интернету. Образ не обновляет данные при смене основной версии: заменить postgres:17 на postgres:18 нельзя, нужны дамп и восстановление или pg_upgrade.
Инструмент · 1 мин
Сколько памяти нужно PostgreSQL и что в ней менять#
Для старта хватит 1-2 ядер и 2 ГБ памяти, дальше размер определяют данные, а не число пользователей. Из коробки PostgreSQL осторожен: shared_buffers, общий кэш страниц, равен всего 128 МБ. Документация советует для выделенного сервера с 1 ГБ и больше начинать с 25% памяти.
- shared_buffers: 25% памяти на сервере, где живёт только база. Если рядом работает приложение, берите меньше.
- work_mem: память на одну сортировку или соединение таблиц внутри запроса. Запрос с несколькими такими шагами берёт её несколько раз, поэтому не поднимайте значение до сотен мегабайт при сотне подключений.
- max_connections: по умолчанию 100. Приложениям с большим числом воркеров ставят пул соединений, а не растят лимит.
Какой сервер взять под PostgreSQL
Четыре ответа про данные и нагрузку, калькулятор подберёт конфигурацию
05 · 1 мин
Как открыть PostgreSQL по сети и не открыть его всем#
По умолчанию PostgreSQL слушает только локальный адрес. Пока приложение стоит на том же сервере, ничего менять не нужно. Для доступа с другой машины сначала подумайте о SSH-туннеле: ssh -L 5432:127.0.0.1:5432 user@IP-сервера даёт локальный порт без правки конфигурации.
Если нужен прямой доступ, меняются три вещи:
- listen_addresses в
postgresql.conf: добавьте внутренний адрес сервера. - pg_hba.conf: строка вида
host appdb app 203.0.113.10/32 scram-sha-256пускает одного пользователя с одного адреса. - Файрвол:
ufw allow from 203.0.113.10 to any port 5432 proto tcp. Порт для всех остальных остаётся закрытым.
Для контейнера правило ufw не поможет: Docker публикует порты в обход него, поэтому привязка 127.0.0.1:5432 в compose-файле обязательна. Если приложение стоит на другой машине того же провайдера, подключайтесь по внутреннему адресу: трафик в приватной сети бесплатный.
06 · 1 мин
Резервные копии PostgreSQL: pg_dump и автокопии базы#
Логическая копия делается командой pg_dump -Fc appdb > appdb.dump, а восстанавливается через pg_restore -d appdb appdb.dump. Формат -Fc сжат и позволяет вернуть отдельную таблицу. Запустите команду из cron и отправляйте файл за пределы сервера: копия на том же диске не спасёт от потери самого диска.
У управляемой базы автоматические копии включаются при создании и считаются по объёму: 6 ₽ в месяц за каждый ГБ. Своя схема хранения и проверки восстановления описана на странице сервер для бэкапов.
Копия, которую ни разу не восстанавливали, не копия
Раз в квартал разворачивайте дамп на тестовой машине и проверяйте, что таблицы приложения на месте.
07 · 1 мин
Вопросы об установке PostgreSQL#
Как развернуть PostgreSQL в Docker и не потерять данные?
Подключите именованный том к /var/lib/postgresql (для версии 18 и новее) и зафиксируйте основную версию в теге образа. Тогда пересоздание контейнера не затронет данные, а случайный переход на новую версию не сломает запуск.
Как узнать версию PostgreSQL на сервере?
Выполните sudo -u postgres psql -c "SELECT version();". Команда psql --version покажет только версию клиента, она может отличаться от версии сервера.
Можно ли запустить два PostgreSQL на одном сервере?
Да. В Debian и Ubuntu второй кластер создаёт pg_createcluster с другим портом, например 5433. В Docker запускают два контейнера с разными томами и разными внешними портами.
Какой PostgreSQL ставить для 1С?
1С работает с PostgreSQL в сборках от самой 1С и от Postgres Pro, поэтому пакеты из репозитория дистрибутива для неё не берут. Версию подбирают по таблице совместимости вашей платформы.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Облачные базы данных Таймвеб Клауд, timeweb.cloud/services/dbaas, проверено 14 октября 2026; Docker Official Images: образ postgres, переменные и том данных, github.com/docker-library/docs/tree/master/postgres, проверено 15 октября 2026; endoflife.date: сроки поддержки PostgreSQL, MySQL, MariaDB, MongoDB, Redis, Valkey, ClickHouse, Kafka, RabbitMQ, Magento, Joomla, PHP, endoflife.date, проверено 15 октября 2026.
Отдайте базу данных провайдеру
Обновления, мониторинг и резервные копии делает провайдер, вы работаете с подключением.
- PostgreSQL, MySQL, MongoDB от 790 ₽
- Valkey (совместим с Redis) от 670 ₽
- Kafka, RabbitMQ, ClickHouse, OpenSearch
- Автобэкапы 6 ₽ в месяц за ГБ