type: standard
layer: arch
object: server
aspect: setup
form: text
title: "Настройка сервера платформы"
status: draft
version: 0.1.0
date: 2026-04-13
knowledge_level: У1
Стандарт описывает процесс подготовки нового сервера: типы серверов, базовую установку, стеки по роли, настройку dataspace, чеклист готовности.
Реализация: system/install/install.sh
| Тип | Роль | Пример |
|---|---|---|
control-plane |
Claude Code, gateway, git, monitor | dev-pro-eu 91.218.142.168 |
data-server |
проекты, агенты, БД, S3 dataspase | aipd-server-rf 155.212.142.142 |
backup-server |
restic, snapshots, архив | отдельный узел |
Порядок — одинаковый для всех серверов:
bash system/install/install.sh
Шаги:
1. base/system.sh — пакеты (curl, git, python3, rclone), часовой пояс, SSH hardening
2. base/docker.sh — Docker + Compose plugin
3. base/networks.sh — внутренние Docker-сети
4. SSH timeout — отключить (ClientAliveInterval 60, ClientAliveCountMax 0)
5. Git config — user.name "Claude Code", user.email "claude@aipd.ru"
| Стек | Скрипт | Что даёт |
|---|---|---|
| Gateway | stacks/gateway.sh | Traefik reverse proxy |
| Git | stacks/git.sh | Gitea |
| Monitor | stacks/monitor.sh | Telegram бот, алерты |
| Platform | stacks/platform.sh | Claude Code контейнер |
| Стек | Скрипт | Что даёт |
|---|---|---|
| Platform | stacks/platform.sh | Claude Code контейнер |
| S3 mount | (rclone вручную) | $DATASPACE → /mnt/data |
| Executor | stacks/executor.sh | PostgreSQL + Redis |
| Agents | stacks/agents.sh | AI агенты |
| Стек | Скрипт | Что даёт |
|---|---|---|
| Backup | stacks/backup.sh | restic → S3, cron 03:00 |
Монтирование S3 через rclone в /mnt/data:
# 1. Настроить rclone remote
rclone config
# 2. Создать точку монтирования
mkdir -p /mnt/data
# 3. Смонтировать
rclone mount <remote>:<bucket> /mnt/data \
--daemon --allow-other --vfs-cache-mode writes
# 4. Автомонтирование (systemd)
# /etc/systemd/system/rclone-data.service
Структура после монтирования:
/mnt/data/
└── projects/
└── org/
└── {project}/
└── it/
└── data/ ← данные проекта
Проверка:
df -h /mnt/data
mount | grep mnt
После установки platform стека:
# Сохранить credentials после первого claude login
docker exec claude cat /root/.claude/.credentials.json > /opt/platform/claude/secrets/credentials.json
docker exec claude cat /root/.claude.json > /opt/platform/claude/secrets/claude.json
chmod 600 /opt/platform/claude/secrets/*
docker psgit config --global --listgrep ClientAlive /etc/ssh/sshd_configdf -h /mnt/datadocker exec claude claude --versionstartstart → без запроса логинаls /opt/platform/claude/secrets/restic snapshotscrontab -lbash /usr/local/bin/platform-backup.sh