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

8.3 KiB
Raw Blame History

Отчет о восстановлении 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 🟢 Работает

Проверки

# Тест 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 снова не работает:

cd /Users/dmitry/StudioProjects/mnemo_cards/tools/deploy
./fix-vscode-server.sh

Этот скрипт автоматически:

  • Проверит установку code-server
  • Исправит конфигурацию
  • Создаст/обновит systemd service
  • Включит автозапуск
  • Запустит сервис
  • Перезагрузит nginx

Управление сервисом

Проверка статуса

ssh root@147.45.152.129 'systemctl status code-server'

Просмотр логов

ssh root@147.45.152.129 'journalctl -u code-server -f'

Перезапуск

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/
  • Настроен автозапуск при перезагрузке
  • Созданы инструменты для быстрого восстановления
  • Написана полная документация

Статус: 🟢 Оба сервиса работают стабильно