# CLAUDE.md — portainer (личный, str-u-01) ## Что Portainer CE для личного контура на str-u-01 (45.10.53.148). Управляет только локальным Docker'ом (str-u-01). Отдельный от рабочего Portainer'а на web.hhivp.com:9443. ## Стек - `portainer/portainer-ce:lts` (LTS-канал) - bridge, `127.0.0.1:9000:9000` (HTTP UI) - mount `/var/run/docker.sock:ro` — read-only сокет (read-only режим Portainer всё равно может многое читать, но пишет ограниченно; полная функциональность при rw — поднять при необходимости) - volume `./data` (БД Portainer) - log-driver: journald ## Структура ``` portainer/ ├── docker-compose.yml ├── .gitignore # исключает data/ └── CLAUDE.md ``` На сервере: `/opt/docker/sites/portainer/`. Публикуется через nginx на `prtnr.striker.su`. ## Деплой ```bash ssh striker@str-u-01.striker.su cd /opt/docker/sites/portainer git pull docker compose pull && docker compose up -d ``` ## Первый запуск Открыть https://prtnr.striker.su в течение 5 минут после старта (Portainer security: лимит на initial-setup), создать админа. ## nginx vhost: `/etc/nginx/conf.d/prtnr.striker.su` (ssl + reverse-proxy на 127.0.0.1:9000). WebSocket headers обязательны (Portainer console / log streams). ## ⚠️ Безопасность Portainer = root над Docker'ом сервера. Доступ только через nginx + LE + сильный пароль + желательно 2FA в самом Portainer'е (Settings → Authentication).