Self-hosted Plane — управление проектами, оптимизированный для Dokploy с поддержкой Yandex Cloud S3.
- Dokploy установлен и работает
- Yandex Cloud S3 bucket создан (или другое S3-совместимое хранилище)
- Домен настроен и направлен на сервер
| Сервис | Описание |
|---|---|
| web | Веб-интерфейс |
| space | Публичные страницы |
| admin | Админ-панель (god-mode) |
| live | Real-time обновления |
| api | Backend API |
| worker | Фоновые задачи |
| beat-worker | Планировщик задач |
| migrator | Миграции БД |
| plane-db | PostgreSQL 15 |
| plane-redis | Valkey 7.2 |
| plane-mq | RabbitMQ 3.13 |
| proxy | Caddy reverse proxy |
- Перейти в Yandex Cloud Console
- Создать bucket в Object Storage
- Создать сервисный аккаунт с ролью
storage.editor - Сгенерировать статический ключ доступа
- Записать: Access Key ID, Secret Access Key, Bucket Name
Документация: https://yandex.cloud/ru/docs/storage/tools/boto
- Projects → Create Project
- Add Docker Compose (не Application!)
- Provider: Git →
https://github.com/mikey-semy/plane-stack.git - Compose Type: выбрать Stack (включает Docker Swarm mode)
После первого деплоя запомните имя стека (например, plane-stack-abc123).
Перейти в Environment и добавить:
# Application
APP_RELEASE=v1.2.1
APP_DOMAIN=your-domain.com
WEB_URL=https://your-domain.com
DEBUG=0
# Replicas
WEB_REPLICAS=1
SPACE_REPLICAS=1
ADMIN_REPLICAS=1
API_REPLICAS=1
WORKER_REPLICAS=1
BEAT_WORKER_REPLICAS=1
LIVE_REPLICAS=1
# Security (сгенерируйте свои!)
# openssl rand -base64 48
SECRET_KEY=ваш-сгенерированный-ключ
CORS_ALLOWED_ORIGINS=https://your-domain.com
# openssl rand -base64 24
LIVE_SERVER_SECRET_KEY=ваш-сгенерированный-live-ключ
# Database - ЗАМЕНИТЕ <stack-name> на реальное имя стека!
PGHOST=<stack-name>_plane-db
PGDATABASE=plane
POSTGRES_USER=plane
POSTGRES_PASSWORD=надежный-пароль-бд
POSTGRES_DB=plane
POSTGRES_PORT=5432
PGDATA=/var/lib/postgresql/data
DATABASE_URL=postgresql://plane:надежный-пароль-бд@<stack-name>_plane-db/plane
# Redis - ЗАМЕНИТЕ <stack-name>!
REDIS_HOST=<stack-name>_plane-redis
REDIS_PORT=6379
REDIS_URL=redis://<stack-name>_plane-redis:6379/
# RabbitMQ - ЗАМЕНИТЕ <stack-name>!
RABBITMQ_HOST=<stack-name>_plane-mq
RABBITMQ_PORT=5672
RABBITMQ_USER=plane
RABBITMQ_PASSWORD=надежный-пароль-mq
RABBITMQ_VHOST=plane
AMQP_URL=amqp://plane:надежный-пароль-mq@<stack-name>_plane-mq:5672/plane
# Yandex Cloud S3
USE_MINIO=0
AWS_REGION=ru-central1
AWS_ACCESS_KEY_ID=ваш-yandex-access-key
AWS_SECRET_ACCESS_KEY=ваш-yandex-secret-key
AWS_S3_ENDPOINT_URL=https://storage.yandexcloud.net
AWS_S3_BUCKET_NAME=имя-вашего-bucket
FILE_SIZE_LIMIT=5242880
MINIO_ENDPOINT_SSL=1
# API - ЗАМЕНИТЕ <stack-name>!
API_BASE_URL=http://<stack-name>_api:8000
GUNICORN_WORKERS=1
API_KEY_RATE_LIMIT=60/minute
# Proxy
SITE_ADDRESS=:80SSH на сервер и создать файл:
mkdir -p /root/plane-caddyfile-fix
cat > /root/plane-caddyfile-fix/Caddyfile << 'EOF'
{
auto_https off
admin localhost:2019
}
:80 {
reverse_proxy / web:3000
reverse_proxy /api/* api:8000
reverse_proxy /auth/* api:8000
reverse_proxy /spaces/* space:3000
reverse_proxy /god-mode/* admin:3000
reverse_proxy /live/* live:3000
}
EOF- Перейти в настройки Compose → Domains
- Добавить домен на сервис proxy, порт 80
- Traefik автоматически настроит SSL через Let's Encrypt
Нажать Redeploy в Dokploy.
docker service ls | grep plane-stackdocker service logs <stack-name>_api --tail 100
docker service logs <stack-name>_proxy --tail 100- "Name does not resolve" - проверьте что все hostnames в .env используют правильный префикс стека
- "Bad Gateway" - proxy не может достучаться до backend сервисов, проверьте пути в Caddyfile
- "Port already allocated" - уберите привязку портов, пусть Traefik управляет маршрутизацией
Для интеграции с AI раскомментируйте сервис plane-mcp в docker-compose.yml.
После запуска Plane:
- Получить API ключ: Profile → Settings → API Tokens
- Указать в Environment:
PLANE_API_KEY=ваш-api-ключ PLANE_WORKSPACE_SLUG=ваш-workspace - MCP endpoint:
http://ваш-домен:8001/sse
Настройка реплик в Environment:
API_REPLICAS=2
WORKER_REPLICAS=3
WEB_REPLICAS=2
pgdata— данные PostgreSQLredisdata— данные Redisrabbitmq_data— данные RabbitMQproxy_config,proxy_data— конфиг proxylogs_*— логи приложений
MIT