• 20250803 The Network & Server Update
    Go Build and Test / build-and-test (push) Successful in 23s
    Stable

    wt released this 2025-08-03 11:16:02 +07:00 | 0 commits to main since this release

    Это первый крупный стабильный релиз нашего инструмента для резервного копирования! Версия 1.0.0 вводит полный пересмотр сетевых возможностей, позволяя вам управлять резервными копиями на нескольких машинах как через централизованный сервер, так и через прямые P2P-соединения.

    Главное нововведение — команда serve, которая превращает утилиту в полноценный HTTP-сервер для бэкапов.

    ✨ Основные моменты

    • Новая команда serve: Запускайте выделенный, персистентный HTTP-сервер для централизованного хранения и управления вашими резервными копиями.
    • Два сетевых режима: Выбирайте то, что вам нужно:
      1. HTTP-режим: Используйте create и restore как клиенты для загрузки и скачивания бэкапов с вашего serve-инстанса.
      2. P2P-режим: Восстановлена и улучшена возможность прямой потоковой передачи данных от create к restore для быстрых одноразовых трансферов.
    • Точные индикаторы выполнения: Исправлена критическая ошибка, из-за которой индикатор выполнения при сетевом восстановлении работал некорректно. Теперь прогресс отображается точно в обоих сетевых режимах.
    • Автоматизация CI/CD: Добавлен воркфлоу для Gitea Actions, который автоматически собирает и тестирует приложение при каждом изменении в репозитории.

    📝 Полный список изменений

    🚀 Добавлено

    • Команда serve для запуска HTTP-сервера бэкапов с флагами -a (адрес) и -d (директория).
    • HTTP-клиент в командах create и restore для взаимодействия с сервером serve по адресу формата ip:port/filename.
    • Воркфлоу для Gitea Actions (.gitea/workflows/build-and-test.yml) для автоматической сборки и тестирования проекта.

    🎨 Улучшено

    • Восстановлена P2P-функциональность: Возвращена возможность прямой потоковой передачи данных (create -> restore), которая была случайно удалена. Логика была интегрирована в новую, более надежную архитектуру асинхронных команд.
    • Интеллектуальное распознавание адреса: Приложение теперь автоматически определяет, какой сетевой режим использовать (HTTP или P2P), на основе формата предоставленного адреса.
    • Обновлена документация: README.md был полностью переписан, чтобы подробно описать все три режима работы (локальный, HTTP-сервер и P2P) с понятными примерами.
    • Рефакторинг кода: Общие компоненты, такие как progressTracker, были вынесены в cmd/utils.go, чтобы избежать дублирования кода.

    🐛 Исправлено

    • Индикатор выполнения при сетевом восстановлении: Сервер serve теперь отправляет корректный заголовок Content-Length, а клиент restore правильно обрабатывает асинхронное обновление состояния, что обеспечивает точное отображение процентов и размера загрузки.

    🚀 Быстрый старт с новыми функциями

    HTTP-сервер

    1. На сервере:
      ./backup serve -a 0.0.0.0:8080 -d /var/backups
      
    2. На клиенте (загрузка):
      ./backup create -s ./my-project -t 192.168.1.100:8080/project-backup.tar.gz
      
    3. На клиенте (скачивание):
      ./backup restore -s 192.168.1.100:8080/project-backup.tar.gz -t ./restored-project
      

    P2P-режим

    1. На принимающей машине:
      ./backup restore -s 0.0.0.0:8080 -t /path/to/restore/location
      
    2. На отправляющей машине:
      ./backup create -s ./my-data -t 192.168.1.200:8080
      
    Downloads