auto-sync: 2026-04-26 14:10:01

This commit is contained in:
Stream
2026-04-26 14:10:01 +03:00
parent c9110c7ccb
commit a437bd5884
2 changed files with 147 additions and 0 deletions

146
tasks/plane/SPEC_INSTALL.md Normal file
View File

@@ -0,0 +1,146 @@
# ТЗ: Установка Plane на mva154
**Дата:** 2026-04-26
**Хост:** mva154, `slin@82.22.50.71:22` (прямой SSH, пароль из env `MVA154_PASSWORD`)
**Доступ:** `~/.openclaw/skills/installer/scripts/ssh_exec.sh --host mva154 --cmd "..."`
**Использовать:** installer skill (session + backup + change + verify)
---
## Задача
Установить **Plane Community Edition** в Docker Compose на хост mva154.
Plane — self-hosted трекер задач и проектов (аналог Jira/Linear).
---
## Состояние хоста (проверено 2026-04-26)
- OS: Ubuntu, Linux 5.15.0, x86_64
- CPU: 4 ядра
- RAM: 7.7 GB (4.4 GB свободно)
- Диск: 54 GB, **17 GB свободно** (69%) — очищено заранее
- Docker: 29.3.0
- Docker Compose: v5.1.0
- Уже запущены сервисы через nginx на портах 5555, 5556, 5557
---
## Шаги установки
### 1. Создать директорию
```bash
mkdir -p /home/slin/plane-selfhost
cd /home/slin/plane-selfhost
```
### 2. Скачать и запустить setup.sh (Community Edition)
```bash
curl -fsSL -o setup.sh https://github.com/makeplane/plane/releases/latest/download/setup.sh
chmod +x setup.sh
./setup.sh
```
При запросе выбрать: **1 (Install)** для архитектуры x86/AMD64.
После установки выбрать: **8 (Exit)**.
Это создаст папку `plane-app/` с `docker-compose.yaml` и `plane.env`.
### 3. Настроить plane.env
Отредактировать файл `/home/slin/plane-selfhost/plane-app/plane.env`:
```bash
# Порт
LISTEN_HTTP_PORT=8091
# URL (IP mva154)
WEB_URL=http://82.22.50.71:8091
CORS_ALLOWED_ORIGINS=http://82.22.50.71:8091
# Лимит файлов
FILE_SIZE_LIMIT=20
# Secret key — сгенерировать случайный 50-символьный
SECRET_KEY=$(openssl rand -hex 25)
```
Остальные параметры оставить по умолчанию (встроенный Postgres, Redis, MinIO).
### 4. Запустить Plane
```bash
cd /home/slin/plane-selfhost
./setup.sh
# выбрать 2 (Start)
```
Дождаться запуска всех контейнеров (~2-5 минут, скачает образы).
### 5. Проверить что работает
```bash
# Все контейнеры должны быть Up
docker ps | grep plane
# Проверить HTTP
curl -s -o /dev/null -w "%{http_code}" http://localhost:8091/
# Должно быть 200 или 302
```
### 6. Добавить в nginx (если есть конфиг)
Проверить есть ли nginx на mva154:
```bash
nginx -v 2>/dev/null || echo "no nginx"
ls /etc/nginx/sites-enabled/ 2>/dev/null
```
Если nginx есть — добавить location `/plane/` или отдельный server block для порта 8091.
Если нет — Plane доступен напрямую по `http://82.22.50.71:8091`.
---
## Ожидаемые контейнеры после установки
```
plane-proxy — nginx reverse proxy (слушает 8091)
plane-web — Next.js фронтенд
plane-api — Django REST API
plane-worker — Celery worker
plane-beat-worker — Celery Beat (планировщик)
plane-migrator — миграции БД (завершится и остановится)
plane-db — PostgreSQL 15
plane-redis — Redis 7
plane-minio — MinIO (S3 хранилище файлов)
```
---
## Финальная проверка
1. `docker ps` — все контейнеры `Up` (кроме plane-migrator который `Exited 0`)
2. `curl -I http://localhost:8091/` — HTTP 200 или 302
3. Открыть в браузере `http://82.22.50.71:8091` — должна появиться страница регистрации Plane
---
## Что НЕ делать
- Не использовать `prime-cli` / `prime.plane.so` — это Commercial Edition
- Не менять порт PostgreSQL/Redis (используем встроенные)
- Не трогать другие сервисы на mva154 (noisemap 5555, snowbike 5556/5557)
- Не открывать порт 8091 в firewall без команды Славы
---
## Результат — отчёт
По завершении написать отчёт:
- Версия Plane установлена
- URL доступа
- Список запущенных контейнеров с `docker ps`
- Результат `curl -I http://localhost:8091/`
- Путь к plane.env: `/home/slin/plane-selfhost/plane-app/plane.env`