From 9e97ff4e13380d4daaa4807bbd0e3b553a06235f Mon Sep 17 00:00:00 2001 From: striker Date: Fri, 8 May 2026 05:23:20 +0300 Subject: [PATCH] =?UTF-8?q?Initial=20Portainer=20CE=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=BB=D0=B8=D1=87=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D1=83=D1=80=D0=B0=20(str-u-01)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - portainer-ce:lts, bridge, 127.0.0.1:9000 - /var/run/docker.sock:ro (read-only) - data/ исключён из git --- .gitignore | 2 ++ CLAUDE.md | 39 +++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 14 ++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8682668 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +data/ +*.log diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..5584ab7 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,39 @@ +# 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). diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8b5c433 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +services: + portainer: + image: portainer/portainer-ce:lts + container_name: portainer + restart: unless-stopped + ports: + - "127.0.0.1:9000:9000" + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - ./data:/data + logging: + driver: journald + options: + tag: "{{.Name}}"