Изменения документа Установка SQL REST Proxy сервиса

Редактировал(а) PROSTO:СКУД 2026/09/16 13:37

От версии 14.1
отредактировано PROSTO:СКУД
на 2026/07/22 08:52
Изменить комментарий: К данной версии нет комментариев
К версии 15.1
отредактировано PROSTO:СКУД
на 2026/07/22 08:59
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -70,8 +70,9 @@
70 70  
71 71  > git clone https://prosto-skud:API_КЛЮЧ_ДЛЯ_ДОСТУПА_К_РЕПОЗИТОРИЮ@github.com/prosto-skud/p-skud-sql-proxy-service.git
72 72  
73 -При разворачивании без Docker необходимо:
74 -1. На сервере нужна совместимая версия Python, желательно Python 3.11.
73 +При разворачивании без Docker:
74 +
75 +~1. На сервере нужна совместимая версия Python, желательно Python 3.11.
75 75  2. Нужны системные библиотеки для Python-драйверов БД.
76 76  3. Нужно создать виртуальное окружение.
77 77  4. Нужно установить зависимости из `requirements.txt`.
... ... @@ -78,7 +78,7 @@
78 78  5. Нужно создать TLS-сертификаты или указать корпоративные сертификаты.
79 79  6. Нужно запускать `uvicorn app.main:app` как обычную службу `systemd`
80 80  
81 -=== 3.1 Системные зависимости===
82 +=== 3.1 Системные зависимости ===
82 82  
83 83  Т.к. для проекта нужен Python 3.11 или версия, с которой зависимости проекта гарантированно устанавливаются. Если в Astra Linux доступен только более старый Python, согласуйте установку Python 3.11 с администратором безопасности. Не заменяйте системный `/usr/bin/python3`.
84 84  
... ... @@ -110,12 +110,15 @@
110 110  
111 111  Если какие-то из пакетов недоступны необходимо добавить репозитории.
112 112  Например для Astra Linux Special Edition 1.8 x86-64:
114 +
113 113  > sudo nano /etc/apt/sources.list.d/astra.list
116 +
114 114  Содержимое:
118 +
115 115  > deb https://dl.astralinux.ru/astra/stable/1.8_x86-64/main-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
116 116  > deb https://dl.astralinux.ru/astra/stable/1.8_x86-64/extended-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
117 117  
118 -=== 3.2 Пользователь и каталоги===
122 +=== 3.2 Пользователь и каталоги ===
119 119  
120 120  Создать каталоги:
121 121  
... ... @@ -126,14 +126,14 @@
126 126  
127 127  Создать отдельного пользователя:
128 128  
129 -> sudo addgroup --system sqlproxy
130 -> sudo adduser \
131 -> --system \
132 -> --ingroup sqlproxy \
133 -> --home /var/lib/sql-proxy \
134 -> --no-create-home \
135 -> --shell /usr/sbin/nologin \
136 -> sqlproxy
133 +sudo addgroup --system sqlproxy
134 +sudo adduser \
135 + --system \
136 + --ingroup sqlproxy \
137 + --home /var/lib/sql-proxy \
138 + --no-create-home \
139 + --shell /usr/sbin/nologin \
140 + sqlproxy
137 137  
138 138  Дать права а каалоги:
139 139  
... ... @@ -148,7 +148,7 @@
148 148  > sudo chmod 750 /var/lib/sql-proxy
149 149  > sudo chmod 750 /var/log/sql-proxy
150 150  
151 -=== 3.3 Копирование проекта===
155 +=== 3.3 Копирование проекта ===
152 152  
153 153  Из скачанного проекта необходимо перенести в дирректорию /opt/sql-proxy следующие файлы:
154 154  app/
... ... @@ -170,14 +170,15 @@
170 170  И переместите его в каталог /etc/sql-proxy/certs
171 171  
172 172  Далее запустим скрипт `generate_certs.sh` и назначим права на созданные файлы сертификатов
177 +
173 173  > sudo chown root:sqlproxy /etc/sql-proxy/certs/key.pem /etc/sql-proxy/certs/cert.pem
174 174  > sudo chmod 640 /etc/sql-proxy/certs/key.pem
175 175  > sudo chmod 644 /etc/sql-proxy/certs/cert.pem
176 176  
177 -=== 3.4 Создание виртуального окружения===
182 +=== 3.4 Создание виртуального окружения ===
178 178  
179 179  > sudo python3 -m venv /opt/sql-proxy/venv
180 -> sudo /opt/sql-proxy/venv/bin/python -m pip install --upgrade pip setuptools wheel
185 +> sudo /opt/sql-proxy/venv/bin/python -m pip install --upgrade pip setuptools wheel--
181 181  
182 182  Права:
183 183  
... ... @@ -185,7 +185,7 @@
185 185  > sudo chmod -R go-w /opt/sql-proxy/venv
186 186  
187 187  
188 -=== 3.5 Онлайн-установка Python-зависимостей===
193 +=== 3.5 Онлайн-установка Python-зависимостей ===
189 189  
190 190  Установка зависимостей:
191 191  
... ... @@ -205,14 +205,15 @@
205 205  > sudo nano /etc/sql-proxy/sql-proxy.env
206 206  
207 207  И перенестите в него содержимое из примера (`.env.example`) либо заполните свое:
213 +
208 208  > API Key для аутентификации запросов
209 209  > API_KEY=skud_proxy_19e1d5c545b55bdb3459281bd3a1c06a29c467c5645b3ceb748bb2589a5e0d46
210 210  
211 -> ## Ограничения
217 +> ## Ограничения##
212 212  > MAX_ROWS_LIMIT=10000
213 213  > DEFAULT_ROWS_LIMIT=1000
214 214  
215 -> ## Пул соединений
221 +> ## Пул соединений##
216 216  > POOL_SIZE=10
217 217  > MAX_OVERFLOW=20
218 218  > POOL_TIMEOUT=30
... ... @@ -219,16 +219,16 @@
219 219  > POOL_RECYCLE=3600
220 220  > POOL_PRE_PING=true
221 221  
222 -> ## Таймауты
228 +> ## Таймауты##
223 223  > QUERY_TIMEOUT=300
224 224  > CONNECTION_TIMEOUT=30
225 225  
226 -> ## SSL/TLS
232 +> ## SSL/TLS##
227 227  > SSL_ENABLED=true
228 228  > SSL_CERTFILE=/app/certs/cert.pem
229 229  > SSL_KEYFILE=/app/certs/key.pem
230 230  
231 -> ## Сервис
237 +> ## Сервис##
232 232  > SERVICE_PORT=8443
233 233  > PROMETHEUS_PORT=9090
234 234  
... ... @@ -237,7 +237,7 @@
237 237  > sudo chown root:sqlproxy /etc/sql-proxy/sql-proxy.env
238 238  > sudo chmod 640 /etc/sql-proxy/sql-proxy.env
239 239  
240 -=== 3.6 Настройка запуска через systemd===
246 +=== 3.6 Настройка запуска через systemd ===
241 241  
242 242  Создадим unit:
243 243  
... ... @@ -289,7 +289,7 @@
289 289  Включить службу:
290 290  
291 291  > sudo systemctl daemon-reload
292 -> sudo systemctl enable --now sql-proxy
298 +> sudo systemctl enable --now sql-proxy--
293 293  
294 294  Проверить:
295 295  
... ... @@ -296,4 +296,4 @@
296 296  > sudo systemctl status sql-proxy
297 297  
298 298  
299 -
305 +