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