Этап 0: документация и макеты
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
3400f58a5a
75 files changed
+14283
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# D-004. Dev и prod на одном сервере под разными пользователями
|
||||
|
||||
Статус: принято, 21.10.2026.
|
||||
|
||||
## Контекст
|
||||
|
||||
Dev и prod живут на одном сервере без Docker. Редактор и сессии Claude работают в dev и не должны иметь доступа к prod.
|
||||
|
||||
## Решение
|
||||
|
||||
| | dev | prod |
|
||||
|---|---|---|
|
||||
| Пользователь ОС | vx_dev | vx_prod |
|
||||
| Папка | `/home/vx_dev/veilix_dev` | `/home/vx_prod/veilix` |
|
||||
| База и роль | `veilix_dev`, роль `vx_dev` | `veilix_prod`, роль `vx_prod` |
|
||||
| Порт | 3100 | 3000 |
|
||||
| Домены | `dev.veilix.app`, `dev.my.veilix.app`, `dev.tg.veilix.app`, так же для veilixvpn.com; `dev.plc.veilix.cc` | основные; `plc.veilix.cc` |
|
||||
|
||||
1. vx — личный пользователь администратора, к проекту отношения не имеет.
|
||||
2. Вся разработка — под vx_dev: VSCode (Remote-SSH), Claude Code и другие ИИ-агенты запускаются только под этим пользователем.
|
||||
3. Под vx_prod — только prod:
|
||||
a. редактора и ИИ-агентов нет, VSCode Remote под vx_prod не подключаем: при подключении VSCode ставит на сервер свою серверную часть и может подтянуть туда расширения, в том числе ИИ-агентов;
|
||||
b. своего SSH-входа нет, под vx_prod заходят из root (`sudo -iu vx_prod`).
|
||||
4. Оба окружения запускаются одинаково — systemd user-юнитами, каждый у своего пользователя.
|
||||
5. Домашние папки — `750`, владелец — сам пользователь: секреты, файлы и логи prod сессиям Claude недоступны.
|
||||
6. В базу каждый пользователь ОС входит только своей ролью (`peer` через Unix-сокет), паролей нет; чужие базы закрыты `REVOKE CONNECT … FROM PUBLIC`.
|
||||
7. Код попадает в prod только через Gitea: из dev публикуется тег, vx_prod забирает его ключом только на чтение и собирает релиз.
|
||||
8. Выкладку запускает пользователь под vx_prod. По желанию — sudo-правило, разрешающее vx_dev запускать от имени vx_prod только команду выкладки (Q-18).
|
||||
9. Домены хранятся в базе, поэтому у dev просто свои записи в своей базе.
|
||||
|
||||
## Рассмотренные варианты
|
||||
|
||||
1. Один пользователь для обоих окружений — проще, но сессии Claude и любой процесс dev технически достают до секретов и базы prod.
|
||||
2. Prod под личным пользователем vx — под ним работают редактор и ИИ-агенты, защита держалась бы только на дисциплине.
|
||||
3. Docker-контейнеры для изоляции — пользователь не хочет Docker.
|
||||
|
||||
## Последствия
|
||||
|
||||
1. Ошибки prod сессии Claude не видят напрямую: логи присылает пользователь.
|
||||
2. Отдельные deny-правила Claude Code для prod не нужны.
|
||||
3. Переезд разработки на vx_dev — задача R-00 ([09-infrastructure.md](../09-infrastructure.md), раздел 8).
|
||||
Reference in new issue
Block a user