---
title: Автоматическая установка базы PostgreSQL на VPS
slug: avtomaticheskaya-ustanovka-bazy-postgresql-na-vps
docTags: 
createdAt: 2023-10-23T11:59:09.502Z
---

Данная статья предназначена для людей, с нулевым опытом в администрировании.

Здесь мы расскажем как запустить базу данных PostgreSQL на только что купленном VPS.&#x20;

Скрипт из данной статьи устанавливает docker в режиме rootless и запускает в докере контейнер с образом PostgreSQL 15-й версии.

**Важно**: тут будет описан максимально простой способ запуска базы данных, без резервного копирования и тд.

### Мы рекомендуем применить

&#x20;\- Базовые настройки по безопасности (отключить вход для root, использовать SSH и тд.)
&#x20;\- Мониторинг работы сервера и сбор его метрик (Нагрузка ЦПУ, расход диска и тд.)
&#x20;\- <u>**Ежедневное резервное копирование**</u> базы данных с отправкой копии например на почту или другой сервер.

Данные выше рекомендации не описаны в этой статье и для их применения незнающему человеку лучше обратиться к специалисту.

**Как минимум нужно озаботиться резервным копированием.**

## 1 - Заходим на сервер под root юзером

Обычно при создании VPS выдают доступы от root аккаунта.

Открываем консоль в вашей ОС и вводим команду **ssh root@\{IP сервера}** и нажимаем Enter.
Пример команды: ssh root\@111.222.333.444

При самом первом входе вы увидите вопрос:
*ECDSA key fingerprint is .......&#xD;*&#xA;*Are you sure you want to continue connecting (yes/no/\[fingerprint])?*

Вводим "**yes**" и жмем Enter.

Далее вас попросит ввести пароль. Вводим пароль руками или копируем(ПКМ).
При вводе пароль не будет отображаться, это нормально.
После ввода пароля жмем Enter.

## 2 - Скачиваем скрипты

Выполняем команды:

```shell
wget https://raw.githubusercontent.com/web-mc/postgres_bash/main/veeneo_init_pg.sh -P /tmp/
```

```shell
wget https://raw.githubusercontent.com/web-mc/postgres_bash/main/veeneo_docker.sh -P /tmp/
```

## 3 - Запускаем установку

Выполняем команду, указывая **обязательно все аргументы**, заменяя на свои значения:

```shell
bash /tmp/veeneo_init_pg.sh -n "db_name" -u "db_user" -s "db_pass" -p db_port
```

где:
**db\_name&#x20;**- Название для базы данных
**db\_user&#x20;**- Пользователь базы данных
**db\_pass&#x20;**- Пароль для входа&#x20;
**db\_port&#x20;**- Порт. Стандартный порт для postgres это 5432, но можете указать свое значение.

Эти данные, вы будете использовать для подключения к вашей базе.

*Пример:*
bash /tmp/veeneo\_init\_pg.sh -n "*test\_database*" -u "*test\_user*" -s "*1234pass*" -p *5432*

<font color="#b00505">**Важные правила\:**</font>

1. Название базы и имени пользователя не должны начинаться с "**pg\_**".
2. Все текстовые аргументы берем в **двойные кавычки**, как показано в примере.
3. Запрещено использование символов внутри аргументов:
   1. **\`**
   2. **\\**
   3. **"**

## 4 - Процесс установки

### 4.1 - Рестарт сервисов

В процессе установки может возникнуть необходимость в перезапуске некоторых сервисов.
В случае как на скриншоте, мы вводим цифры от 1 и 7, и жмем Enter.

::Image[]{src="https://api.archbee.com/api/optimize/9uMSHEm02UuyRb4W3S8nw/oSXeL3lvoE6YxZ2GGPafH_image.png" size="98" width="1024" height="215" position="center" showCaption="false"}

### 4.2 - Создание нового пользователя на сервере

Чтобы повысить безопасность необходимо создать нового пользователя, который и будет запускать нашу базу данных.
Для этого вас попросят ввести имя пользователя и потом ввести для него пароль(*пароль не будет отображаться в при вводе*).

![](https://api.archbee.com/api/optimize/9uMSHEm02UuyRb4W3S8nw/88v1wDHjUGpNalRAIsiXl_image.png)

**Важно:** логин и пароль нового юзера обязательно сохраните себе куда-нибудь, так как если понадобится войти на сервер снова, то лучше это делать не от root пользователя.

## 5 - Завершение установки

Какое-то время будет идти установка приложения docker в режиме rootless.
По итогу, в конце вы должны увидеть смену контекста на rootless и ID запущенного контейнера с PostgreSQL.

![](https://api.archbee.com/api/optimize/9uMSHEm02UuyRb4W3S8nw/QMQJVx3_ddfym_AqxYomU_image.png)

## 6 - Проверка работы базы данных

Выполняем в консоли команду:

```shell
runuser -l  username -c "docker ps"
```

**username&#x20;**&#x43C;еняем на имя пользователя, которого создали в процессе установки на шаге 4.2.

Вам должны показаться работающие контейнеры:

![](https://api.archbee.com/api/optimize/9uMSHEm02UuyRb4W3S8nw/r6wltn_SGJE8BQcYv2Ja2_image.png)



















