mnemo_cards/tools/deploy/RECOVERY_REPORT_2025-11-19.md

185 lines
8.3 KiB
Markdown
Raw Normal View History

2025-11-19 19:59:53 +00:00
# Отчет о восстановлении 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/
- ✅ Настроен автозапуск при перезагрузке
- ✅ Созданы инструменты для быстрого восстановления
- ✅ Написана полная документация
**Статус**: 🟢 Оба сервиса работают стабильно