mnemo_cards/tools/deploy/RECOVERY_REPORT_2025-11-19.md
2025-11-19 22:59:53 +03:00

184 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчет о восстановлении VSCode Server
**Дата**: 19 ноября 2025
**Проблема**: После перезагрузки сервера не открываются vscode.mnemo-cards.online и code.mnemo-cards.online
## Выполненные работы
### 1. Диагностика ✅
- Проверен статус code-server на сервере
- Обнаружено, что code-server был запущен, но на неправильном порту (8080 вместо 8443)
- Обнаружено отсутствие nginx конфигурации для vscode.mnemo-cards.online
- Выявлена проблема с IPv6/IPv4 (nginx пытался подключиться к ::1 вместо 127.0.0.1)
- Обнаружен конфликт доменных имен
### 2. Исправления ✅
#### code-server Service
- Создан правильный systemd service файл `/etc/systemd/system/code-server.service`
- Настроен автозапуск при загрузке системы (`systemctl enable`)
- Исправлен порт с 8080 на 8443
- Настроен bind на 127.0.0.1:8443 (IPv4)
- Добавлен пароль: `AGktOidxrah1KVC0`
#### nginx Конфигурация
- Развернута конфигурация для vscode.mnemo-cards.online
- Исправлен proxy_pass с `http://localhost:8443` на `http://127.0.0.1:8443`
- Настроено SSL с Let's Encrypt сертификатами
- Добавлена поддержка WebSocket для VSCode
- Настроено rate limiting для защиты от злоупотреблений
#### Разрешение конфликта доменов
- **vscode.mnemo-cards.online** → VSCode Server (code-server)
- **code.mnemo-cards.online** → Forgejo Git Server (не VSCode!)
- Удален code.mnemo-cards.online из конфигурации VSCode
### 3. Созданные инструменты ✅
Создано 7 скриптов для автоматизации:
1. **fix-vscode-server.sh** - Автоматическое восстановление code-server
2. **check-nginx.sh** - Проверка и перезагрузка nginx
3. **deploy-vscode-nginx.sh** - Развертывание nginx конфигурации
4. **fix-nginx-duplicates.sh** - Удаление дублирующихся конфигураций
5. **test-vscode-from-server.sh** - Тестирование с сервера
6. **test-vscode-final.sh** - Финальное тестирование
7. **fix-code-domain-conflict.sh** - Исправление конфликтов доменов
### 4. Документация ✅
Создана подробная документация:
- **VSCODE_SERVER_SETUP.md** - Полное руководство по настройке
- **README.md** - Обновлен с информацией о VSCode Server
- **RECOVERY_REPORT_2025-11-19.md** - Этот отчет
## Результаты
### ✅ Работающие сервисы
| URL | Сервис | Статус |
|-----|--------|--------|
| https://vscode.mnemo-cards.online/ | VSCode Server | 🟢 Работает |
| https://code.mnemo-cards.online/ | Forgejo Git Server | 🟢 Работает |
### ✅ Проверки
```bash
# Тест 1: vscode.mnemo-cards.online
HTTP/2 302
location: ./login
✅ Работает - редирект на страницу логина
# Тест 2: code.mnemo-cards.online
HTTP/2 200
✅ Работает - Forgejo главная страница
# Тест 3: code-server service
● code-server.service - code-server
Active: active (running)
Enabled: enabled
✅ Сервис запущен и включен для автозапуска
```
## Доступ к VSCode Server
**URL**: https://vscode.mnemo-cards.online/
**Пароль**: `AGktOidxrah1KVC0`
**Пользователь**: root
**Рабочая директория**: /root/
## Быстрое восстановление после перезагрузки
Если после перезагрузки сервера VSCode Server снова не работает:
```bash
cd /Users/dmitry/StudioProjects/mnemo_cards/tools/deploy
./fix-vscode-server.sh
```
Этот скрипт автоматически:
- Проверит установку code-server
- Исправит конфигурацию
- Создаст/обновит systemd service
- Включит автозапуск
- Запустит сервис
- Перезагрузит nginx
## Управление сервисом
### Проверка статуса
```bash
ssh root@147.45.152.129 'systemctl status code-server'
```
### Просмотр логов
```bash
ssh root@147.45.152.129 'journalctl -u code-server -f'
```
### Перезапуск
```bash
ssh root@147.45.152.129 'systemctl restart code-server'
```
## Предотвращение проблем в будущем
**Сделано**:
1. code-server настроен на автозапуск (`systemctl enable`)
2. Добавлен `Restart=always` в systemd service
3. Созданы скрипты для быстрого восстановления
4. Написана подробная документация
🔄 **Рекомендации**:
1. После обновления сервера проверить статус всех сервисов
2. Периодически проверять SSL сертификаты (`certbot renew`)
3. Делать backup конфигураций nginx перед изменениями
4. Тестировать доступность после каждой перезагрузки сервера
## Архитектура
```
┌─────────────────────────────────────────────────┐
│ Internet │
└────────────────────┬────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ nginx (port 443) │
│ SSL Termination │
└─────┬────────────────────────────────────┬──────┘
│ │
▼ ▼
┌─────────────────┐ ┌────────────────┐
│ code-server │ │ Forgejo │
│ 127.0.0.1:8443 │ │localhost:3000 │
│ │ │ │
│ vscode.mnemo... │ │code.mnemo... │
└─────────────────┘ └────────────────┘
```
## Таймлайн восстановления
- **22:24** - Сервер перезагружен
- **22:27** - Обнаружена проблема
- **22:27** - Начата диагностика
- **22:28** - Запущен code-server на правильном порту
- **22:28** - Развернута nginx конфигурация
- **22:29** - Исправлен конфликт доменов
- **22:30** - Исправлена проблема IPv6/IPv4
- **22:32** - ✅ Все сервисы восстановлены и проверены
**Время восстановления**: ~8 минут
**Время автоматизации**: +15 минут (создание скриптов и документации)
## Итог
🎉 **Успешно восстановлены оба сервиса!**
- ✅ VSCode Server доступен по https://vscode.mnemo-cards.online/
- ✅ Forgejo Git Server доступен по https://code.mnemo-cards.online/
- ✅ Настроен автозапуск при перезагрузке
- ✅ Созданы инструменты для быстрого восстановления
- ✅ Написана полная документация
**Статус**: 🟢 Оба сервиса работают стабильно