# 🎯 AI-Impress Server - Полное руководство администратора

> **Версия:** 4.0  
> **Дата:** 2025-11-03  
> **Для:** Администраторов без технического опыта

---

## 📋 СОДЕРЖАНИЕ

1. [Быстрый старт](#быстрый-старт)
2. [Ежедневные задачи](#ежедневные-задачи)
3. [Все установленное ПО](#все-установленное-по)
4. [Где что находится](#где-что-находится)
5. [Пароли и доступы](#пароли-и-доступы)
6. [Резервные копии](#резервные-копии)
7. [Мониторинг и алерты](#мониторинг-и-алерты)
8. [Как исправить проблемы](#как-исправить-проблемы)
9. [Автоматизация](#автоматизация)
10. [FAQ - Частые вопросы](#faq)

---

## 🚀 БЫСТРЫЙ СТАРТ

### Подключение к серверу

```bash
ssh ubuntu@51.89.231.46
```

### Главные команды

```bash
# Проверить все сервисы
/opt/05-backups/scripts/admin.sh status

# Полный отчет о сервере
/opt/infrastructure-docs/scripts/server-full-report.sh

# Проверка здоровья системы
/opt/05-backups/scripts/health-check-alerting.sh

# Помощь
/opt/05-backups/scripts/admin.sh help
```

---

## 📅 ЕЖЕДНЕВНЫЕ ЗАДАЧИ

### ✅ Что проверять каждый день

1. **Проверить алерты в Slack** - канал #alerts
2. **Проверить email** - admin@ai-impress.com
3. **Открыть мониторинг** - https://grafana.ai-impress.com
4. **Проверить сайты работают**:
   - https://wiki.ai-impress.com ✓
   - https://n8n.ai-impress.com ✓
   - https://odoo.ai-impress.com ✓
   - https://marketing.ai-impress.com ⚠️

### 🔍 Быстрая проверка (2 минуты)

```bash
# SSH на сервер
ssh ubuntu@51.89.231.46

# Запустить быструю проверку
/opt/05-backups/scripts/health-check-alerting.sh

# Если все ОК - увидите зеленую галочку ✅
# Если проблемы - получите список с инструкциями
```

---

## 💻 ВСЕ УСТАНОВЛЕННОЕ ПО

### 🏛️ Критические сервисы (НЕЛЬЗЯ УДАЛЯТЬ!)

| Сервис | Назначение | Что сломается если удалить |
|--------|------------|----------------------------|
| **Traefik** | Обратный прокси, SSL | ВСЕ сайты перестанут работать |
| **PostgreSQL** | База данных | ВСЕ приложения потеряют данные |
| **Redis** | Кеш и очереди | N8N, Authentik сломаются |
| **Vault** | Хранилище паролей | Потеряете доступ ко всем паролям |

### 💼 Бизнес-приложения

| Приложение | URL | Можно ли удалить |
|------------|-----|------------------|
| **Outline** | wiki.ai-impress.com | ⚠️ Да, но потеряете документацию |
| **N8N** | n8n.ai-impress.com | ⚠️ Да, но остановятся автоматизации |
| **Mautic** | marketing.ai-impress.com | ⚠️ Да, но потеряете контакты |
| **Odoo** | odoo.ai-impress.com | ⚠️ Да, но потеряете ERP данные |
| **Authentik** | auth.ai-impress.com | ❌ Нельзя - сломается вход везде |

### 🔧 Инструменты

| Инструмент | URL | Назначение |
|------------|-----|------------|
| **Grafana** | grafana.ai-impress.com | Мониторинг и графики |
| **Portainer** | portainer.ai-impress.com | Управление Docker через веб |
| **Uptime Kuma** | uptime.ai-impress.com | Проверка доступности сайтов |
| **pgAdmin** | pgadmin.ai-impress.com | Управление PostgreSQL |

---

## 📂 ГДЕ ЧТО НАХОДИТСЯ

### Структура сервера

```
/opt/                           # Все приложения
├── 00-infrastructure/          # Критическая инфраструктура
│   ├── traefik/               # Обратный прокси
│   ├── postgres/              # Главная БД
│   ├── vault/                 # Хранилище секретов
│   │   └── .vault-token       # 👈 Токен для доступа к Vault
│   └── redis/                 # Кеш
│
├── 01-network/                # Сетевые сервисы
│   └── authentik/             # SSO авторизация
│
├── 02-core/                   # Основные приложения
│   ├── outline/               # Wiki
│   ├── n8n/                   # Автоматизация
│   └── supabase/              # Backend
│
├── 03-business/               # Бизнес приложения
│   ├── mautic/                # Маркетинг
│   ├── odoo/                  # ERP
│   └── documenso/             # Подписание документов
│
├── 04-tools/                  # Инструменты мониторинга
│   ├── monitoring/            # Grafana, Prometheus, Loki
│   ├── portainer/             # Docker UI
│   └── uptime-kuma/           # Uptime monitoring
│
├── 05-backups/                # Система резервных копий
│   ├── scripts/               # 🎯 ВСЕ СКРИПТЫ УПРАВЛЕНИЯ ЗДЕСЬ!
│   ├── logs/                  # Логи скриптов
│   └── reports/               # JSON отчеты
│
└── infrastructure-docs/       # Документация
    ├── scripts/               # Скрипты генерации отчетов
    └── reports/               # 📄 MD отчеты о сервере

/mnt/
├── backups/                   # 💾 ВСЕ БЕКАПЫ ЗДЕСЬ!
└── psql-data/                 # 🗄️ ВСЕ БАЗЫ ДАННЫХ ЗДЕСЬ!
    ├── pgdata/                # postgres-main
    ├── supabase-db/           # Supabase
    └── mautic-db/             # Mautic
```

---

## 🔐 ПАРОЛИ И ДОСТУПЫ

### Где хранятся пароли?

Все пароли в **Vault** и **Vaultwarden (Bitwarden)**.

### Как получить пароль?

```bash
# SSH на сервер
ssh ubuntu@51.89.231.46

# Установить переменные
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"

# Посмотреть все секреты
vault kv list aimpress/

# Получить конкретный пароль
vault kv get aimpress/mautic
vault kv get aimpress/odoo
vault kv get aimpress/postgres/admin
```

### Структура секретов в Vault

```
secret/
├── monitoring              # Slack webhook, email для алертов
└── outline                 # Outline API credentials

aimpress/
├── postgres/
│   ├── admin              # Главный админ PostgreSQL
│   ├── outline            # Пользователь БД для Outline
│   ├── mautic             # Пользователь БД для Mautic
│   └── odoo               # Пользователь БД для Odoo
├── mautic                 # Админ Mautic
├── odoo                   # Админ Odoo
├── authentik              # Админ Authentik
├── grafana                # Админ Grafana
└── portainer              # Админ Portainer
```

### Как добавить новый секрет?

```bash
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"

# Добавить секрет
vault kv put aimpress/новый_сервис \
  username="admin" \
  password="супер_секретный_пароль" \
  api_key="ключ_апи"

# Проверить
vault kv get aimpress/новый_сервис
```

### Веб-интерфейс Vaultwarden

- URL: https://vault.ai-impress.com
- Для команды и удобного доступа к паролям
- Синхронизация с Vault: каждые 4 часа автоматически

---

## 💾 РЕЗЕРВНЫЕ КОПИИ

### Где хранятся бекапы?

```
/mnt/backups/               # Главная директория бекапов
```

### Автоматические бекапы

| Что | Когда | Скрипт |
|-----|-------|--------|
| **Полный бекап** | Каждый день в 03:00 | backup-full-enhanced.sh |
| **Недельный бекап** | Воскресенье в 02:00 | backup-full-enhanced.sh |
| **БД PostgreSQL** | Каждый день в 03:00 | (включено в полный) |
| **Vault секреты** | Каждые 4 часа | vault-bitwarden-sync.sh |
| **Конфигурации** | Каждый день в 02:00 | config-manager.sh |

### Ручной бекап

```bash
# Полный бекап всего
/opt/05-backups/scripts/backup-full-enhanced.sh

# Только базы данных
docker exec postgres-main pg_dumpall -U aimpress_admin | \
  gzip > /mnt/backups/postgres-$(date +%Y%m%d).sql.gz

# Экспорт Vault секретов
/opt/05-backups/scripts/vault-bitwarden-sync.sh export
```

### Восстановление из бекапа

```bash
# 1. Найти нужный бекап
ls -lh /mnt/backups/

# 2. Восстановить БД
gunzip < /mnt/backups/postgres-20251103.sql.gz | \
  docker exec -i postgres-main psql -U aimpress_admin

# 3. Перезапустить сервисы
docker restart <имя_контейнера>
```

---

## 📊 МОНИТОРИНГ И АЛЕРТЫ

### Куда приходят алерты?

1. **Slack** - канал #alerts
   - Webhook: https://hooks.slack.com/services/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
2. **Email** - admin@ai-impress.com

### Что проверяется автоматически?

✓ Критические сервисы работают (Traefik, PostgreSQL, Redis, Vault)  
✓ Все сайты отвечают  
✓ Диск не заполнен (> 90%)  
✓ Память не переполнена (> 90%)  
✓ Нет слишком много нездоровых контейнеров  
✓ Бекапы создаются регулярно  
✓ Контейнеры не перезапускаются постоянно

### Проверки запускаются

- **Каждые 30 минут** - health-check-alerting.sh
- **Каждый день в 06:00** - полный отчет о сервере
- **Каждый день в 04:30** - системная диагностика

### Как протестировать алерты?

```bash
# Проверка системы и отправка в Slack (если есть проблемы)
/opt/05-backups/scripts/health-check-alerting.sh
```

---

## 🔧 КАК ИСПРАВИТЬ ПРОБЛЕМЫ

### Сайт не работает (502/503)

```bash
# 1. Проверить Traefik
docker logs traefik --tail 50

# 2. Проверить контейнер сайта
docker ps | grep <название>
docker logs <название> --tail 100

# 3. Перезапустить
docker restart <название>

# 4. Если не помогло - перезапустить Traefik
docker restart traefik
```

### База данных не работает

```bash
# 1. Проверить PostgreSQL запущен
docker ps | grep postgres-main

# 2. Посмотреть логи
docker logs postgres-main --tail 100

# 3. Проверить место на диске
df -h /mnt/psql-data

# 4. Попробовать подключиться
docker exec postgres-main psql -U aimpress_admin -c "SELECT 1;"

# 5. Перезапустить (осторожно!)
docker restart postgres-main
```

### Закончилось место на диске

```bash
# 1. Посмотреть что занимает место
du -sh /opt/* /mnt/* | sort -h | tail -10

# 2. Очистить Docker
docker system prune -af

# 3. Удалить старые логи
find /opt -name "*.log" -mtime +7 -delete
find /var/log -name "*.log" -mtime +7 -exec truncate -s 0 {} \;

# 4. Удалить старые бекапы (старше 60 дней)
find /mnt/backups -mtime +60 -delete

# 5. Проверить результат
df -h
```

### Контейнер постоянно перезапускается

```bash
# 1. Посмотреть логи для ошибки
docker logs <контейнер> --tail 200

# 2. Проверить количество перезапусков
docker inspect --format='{{.RestartCount}}' <контейнер>

# 3. Остановить авто-перезапуск временно
docker update --restart=no <контейнер>

# 4. Запустить вручную и смотреть логи
docker start <контейнер> && docker logs -f <контейнер>

# 5. Исправить проблему из логов
```

### Vault запечатан (sealed)

```bash
# Распечатать Vault
/opt/00-infrastructure/vault/unseal.sh

# Проверить статус
docker exec vault vault status
```

---

## ⚙️ АВТОМАТИЗАЦИЯ

### Что работает автоматически?

#### Каждые 15 минут
- Мониторинг синхронизаций сервисов

#### Каждые 30 минут
- **Health check** - проверка здоровья системы и алерты

#### Каждые 4 часа
- **Vault export** - экспорт секретов в бекап

#### Ежедневно
| Время | Задача |
|-------|--------|
| 01:00 | Удаление старых логов (> 30 дней) |
| 02:00 | Бекап конфигураций |
| 02:00 | Недельный полный бекап (воскресенье) |
| 03:00 | Полный системный бекап |
| 03:00 | Аудит безопасности (понедельник) |
| 04:30 | Системная диагностика |
| 05:00 | Загрузка отчетов |
| 05:30 | Отчеты мониторинга |
| 06:00 | **Полный отчет о сервере** |

#### Еженедельно
| День | Время | Задача |
|------|-------|--------|
| Суббота | 02:00 | Обслуживание БД |
| Понедельник | 03:00 | Аудит безопасности |

### Просмотр расписания

```bash
# Посмотреть все задачи cron
crontab -l

# Посмотреть логи cron задач
ls -lh /opt/05-backups/logs/cron-*.log
tail -50 /opt/05-backups/logs/cron-health-check.log
```

---

## ❓ FAQ - ЧАСТЫЕ ВОПРОСЫ

### Как узнать что установлено?

```bash
/opt/05-backups/scripts/admin.sh status
```

### Как посмотреть логи приложения?

```bash
docker logs -f --tail 100 <имя_контейнера>

# Примеры:
docker logs -f outline
docker logs -f postgres-main
docker logs -f traefik
```

### Как перезапустить приложение?

```bash
docker restart <имя_контейнера>

# Или через docker-compose:
cd /opt/<путь_к_приложению>
docker-compose restart
```

### Как удалить ненужное приложение?

```bash
# ⚠️ ВНИМАНИЕ: Создайте бекап сначала!

# 1. Бекап базы данных (если есть)
/opt/05-backups/scripts/backup-full-enhanced.sh

# 2. Остановить контейнер
docker stop <имя_контейнера>

# 3. Удалить контейнер
docker rm <имя_контейнера>

# 4. Удалить из docker-compose.yml
cd /opt/<путь>
nano docker-compose.yml  # Удалить секцию сервиса

# 5. Пересоздать стек
docker-compose up -d
```

### Как обновить приложение?

```bash
# 1. Бекап!
/opt/05-backups/scripts/backup-full-enhanced.sh

# 2. Перейти в папку приложения
cd /opt/<путь>

# 3. Скачать новый образ
docker-compose pull

# 4. Пересоздать контейнеры
docker-compose up -d

# 5. Проверить логи
docker-compose logs -f
```

### Как изменить пароль?

#### Для веб-приложений:
1. Зайти в веб-интерфейс приложения
2. Settings → Users → Change Password
3. Сохранить новый пароль в Vault

#### Для PostgreSQL:
```bash
# Генерация нового пароля
NEW_PASS=$(openssl rand -base64 32)

# Изменить в БД
docker exec postgres-main psql -U aimpress_admin -c \
  "ALTER USER <username> WITH PASSWORD '$NEW_PASS';"

# Сохранить в Vault
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"
vault kv put aimpress/postgres/<service> password="$NEW_PASS"

# Обновить в приложении
cd /opt/<путь>
nano docker-compose.yml  # Изменить DB_PASSWORD
docker-compose restart
```

### Где посмотреть использование ресурсов?

```bash
# Память и CPU
docker stats --no-stream

# Диск
df -h

# Самые большие директории
du -sh /opt/* /mnt/* | sort -h | tail -10

# Топ процессов
top -bn1 | head -20
```

---

## 📞 ПОЛЕЗНЫЕ ССЫЛКИ

### Веб-интерфейсы

- **Wiki**: https://wiki.ai-impress.com
- **Мониторинг**: https://grafana.ai-impress.com
- **Uptime**: https://uptime.ai-impress.com
- **Docker UI**: https://portainer.ai-impress.com
- **Пароли**: https://vault.ai-impress.com

### Документация

- **Полные отчеты**: `/opt/infrastructure-docs/reports/`
- **Логи скриптов**: `/opt/05-backups/logs/`
- **Эта инструкция**: `/opt/infrastructure-docs/ADMIN_GUIDE.md`

---

## 🎯 ИТОГОВЫЙ ЧЕКЛИСТ АДМИНИСТРАТОРА

### Каждый день
- [ ] Проверить Slack алерты
- [ ] Проверить email admin@ai-impress.com
- [ ] Открыть https://grafana.ai-impress.com
- [ ] Проверить все сайты открываются

### Каждую неделю
- [ ] Посмотреть отчеты в Outline (коллекция Reports)
- [ ] Проверить размер бекапов: `du -sh /mnt/backups`
- [ ] Проверить место на диске: `df -h`

### Каждый месяц
- [ ] Проверить что бекапы можно восстановить
- [ ] Обновить критические приложения (если есть обновления)
- [ ] Почистить старые бекапы (> 60 дней)
- [ ] Проверить логи на ошибки

---

**Версия документа:** 4.0  
**Последнее обновление:** 2025-11-03  
**Контакты:** admin@ai-impress.com  
**Slack:** #alerts

**Сгенерировано автоматически системой администрирования AI-Impress**
