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