# ТЗ: Установка 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`