Initial Portainer CE для личного контура (str-u-01)

- portainer-ce:lts, bridge, 127.0.0.1:9000
- /var/run/docker.sock:ro (read-only)
- data/ исключён из git
This commit is contained in:
striker
2026-05-08 05:23:20 +03:00
commit 9e97ff4e13
3 changed files with 55 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
data/
*.log

39
CLAUDE.md Normal file
View File

@@ -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).

14
docker-compose.yml Normal file
View File

@@ -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}}"