184 lines
8.3 KiB
Markdown
184 lines
8.3 KiB
Markdown
# Отчет о восстановлении 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/
|
||
- ✅ Настроен автозапуск при перезагрузке
|
||
- ✅ Созданы инструменты для быстрого восстановления
|
||
- ✅ Написана полная документация
|
||
|
||
**Статус**: 🟢 Оба сервиса работают стабильно
|
||
|