Skip to content

Releases: SergeyFromMariupol/GitRePosted

v0.1.0-rc.9 — перенос данных между аккаунтами

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 27 Oct 22:15

Добавлен перенос каналов, пересылок, связанного аккаунта и выданных прав между аккаунтами одной платформы.

  • Новый аккаунт выдаёт одноразовый код на 10 минут, старый проверяет получателя и подтверждает перенос.
  • Данные и права переходят получателю одной транзакцией; старый аккаунт теряет доступ. Собственные данные получателя сохраняются.
  • ID маршрутов и целей, очередь, routing snapshots и результаты доставки остаются прежними. Конфликт разных связанных аккаунтов отменяет операцию без сброса настроек.
  • Повторные события и старые действия проверяют текущее владение. Добавлены четыре публичных regression-suite.

Проверки: runtime — 182 PASS / 1 SKIP; упаковка — 11 PASS / 1 SKIP. Пропуски относятся к POSIX/symlink на Windows. Аудит зависимостей — 0 уязвимостей. Две сборки совпали побайтно; allowlist и manifest распаковки проверены.

Предварительный выпуск: новая чистая установка rc.9 и реальная отправка Telegram/МАКС отдельно не проверены. Завершённые установки не обновляются автоматически повторным loader или --resume.

SHA-256 gitreposted-installer.tar.gz:

84f407dd42ed79439813412cd661c8a27d9fd09a9c138cc75060e14b34c8a910

GitRePosted v0.1.0-rc.8

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 20:34

GitRePosted v0.1.0-rc.8

GitRePosted и GitPosted теперь можно установить на один чистый Ubuntu Server 24.04 в любом порядке: на общем IP, общем домене или разных доменах. Новые установки получают постоянные адреса /GitRePosted/ и /GitPosted/.

Мастер GitRePosted открывается по /GitRePosted/install/, админка — по /GitRePosted/control/. Если при установке второго проекта не указывать --host, он использует проверенный текущий адрес первого. Базы, настройки, данные, службы и сессии админок остаются раздельными. Для общего адреса используется один сертификат с одним владельцем; установка второго проекта не нарушает его продление.

Исправлена обработка путей приложения и ответов PHP-FPM. Проверены страницы мастера, passkey-вход, POST/query и перенаправления без раскрытия внутренних портов. Продление сертификата первого проекта работает независимо от незавершённого этапа соседнего установщика. Сохранность первой установки проверяется до подготовки второго приложения.

Проверка выпуска:

  • На повторно очищенной системе окончательные пакеты прошли GitRePosted → GitPosted за 124 и 34 секунды без исправлений на сервере и без --resume.
  • У GitRePosted сохранились конфигурация, отметка завершения, nginx backend, PHP-FPM pool, bridge unit, все 29 файлов runtime, PID bridge/MySQL/FPM и счётчики всех 19 таблиц. Открытая сессия админки продолжила работать после установки GitPosted.
  • Обе панели, раздельные cookies и выходы проверены после реальной перезагрузки. Общий сертификат владельца GitRePosted и certbot renew dry-run прошли проверку.
  • Первый порядок GitPosted → GitRePosted также завершён: 113 и 29 секунд. В первом кандидате исправлена ошибка 404 мастера до успешного завершения обоих мастеров.
  • Прошли 53/53 Linux suites, PHP lint и Bash syntax, browser fixtures GitRePosted 68/68 и GitPosted 57/57, 11/11 Node prefix/HTTP проверок GitRePosted и 6/6 изолированных HTTP/PHP/Unix/MySQL сценариев GitPosted. Наборы пересекаются; складывать их в число уникальных сценариев нельзя.

Доменные варианты проверены с настоящим изолированным nginx; фактические установки на VPS выполнены на общем IP. Telegram и МАКС при этой приёмке пропущены, реальные публикации через API платформ не выполнялись. Выпуск остаётся предварительным.

Существующие установки rc.7 и ниже в корне адреса сохраняют свою раскладку. Рядом с такой установкой второму проекту нужно явно указать другое DNS-имя. Повторный запуск loader или --resume не обновляет завершённую установку; автоматической миграции нет.

Инструкции установки и настройки — в репозитории GitRePosted. Архив и файл SHA256 относятся именно к этому выпуску; архивы прежних версий не заменяются.

GitRePosted v0.1.0-rc.7

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 04:44

Исправлены воспроизводимые ошибки продолжения и совместной установки GitRePosted/GitPosted.

  • Ошибка старого домена не блокирует продление остальных собственных сертификатов. Небезопасный путь не передаётся Certbot; итоговая ошибка остаётся видимой.
  • Команда, завершившаяся отказом, таймаутом или прерыванием, не оставляет свою группу дочерних процессов после освобождения общей блокировки. Проверен и случай, когда основной процесс уже завершился, а дочерний ещё держит stdout/stderr.
  • CLI обрабатывает SIGTERM/SIGHUP с безопасным BOOTSTRAP_INTERRUPTED. Отмена не теряется в проверке IP или обработке обычных ошибок; прежние обработчики сигналов восстанавливаются.
  • Для Ubuntu 24.04 принудительно задан NEEDRESTART_MODE=l: hook needrestart не перезапускает службы первого проекта. Собственные post-install действия пакетов этим не отменяются; защита общего стека сохранена.
  • Мастер отличает новое задание домена от прежнего завершённого. Потеря ответа сохраняет форму и предлагает ручную проверку без повторного POST. GitPosted также сохраняет понятную причину занятого установщика.

Финальная приёмка: 44/44 Linux suites, включая оба порядка с настоящим изолированным nginx; Chrome GitPosted 48/48 и GitRePosted 67/67; 6/6 изолированных HTTP/PHP/Unix/MySQL сценариев GitPosted. На опубликованном rc.6 новые регрессии сначала воспроизвели ошибки. Затем проверены исправленные команды, завершение процессов и доступность уже установленных приложений без изменения их конфигурации и PID. API платформ перехвачены, публикаций не было.

Это предварительный выпуск установщиков. Две свежие установки rc.7 в обоих порядках на отдельных чистых VPS не выполнялись. Повторный загрузчик на завершённой старой установке не обновляет приложение автоматически. Прерванный shared APT/dpkg и принудительный SIGKILL требуют отдельной проверки оператора.

Для новой пары завершите первый мастер, затем устанавливайте второй на отдельный домен/поддомен через --host, с отдельными ботами и токенами. Установка и продолжение.

GitRePosted v0.1.0-rc.6

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 04:09

GitRePosted и GitPosted теперь можно последовательно установить на одном Ubuntu Server 24.04 в любом порядке.

  • Полностью завершите мастер первого проекта, затем установите второй с отдельным доменом или поддоменом через --host.
  • nginx, PHP и MySQL общие; базы, данные, пользователи, боты и настройки проектов раздельные. Создайте отдельного бота для каждого проекта.
  • Установщик проверяет завершённую соседнюю установку, занятость адресов и состав системных пакетов. Общая блокировка защищает одновременные операции; ошибки nginx откатывают собственную конфигурацию.
  • HTTP-01 получает маршрут до выпуска нового сертификата. Продление работает только со своими сертификатами; лишняя случайная задержка Certbot отключена, поскольку расписание timer уже распределяет запуски.

Проверки: 40/40 Linux suites, включая шесть групп обоих порядков с настоящим изолированным nginx; Chrome fixtures GitPosted 40/40 и GitRePosted 59/59; шесть изолированных HTTP/PHP/Unix/MySQL сценариев установки GitPosted. На тестовом VPS GitPosted rc.6 установлен вторым после GitRePosted rc.4: первый проект сохранил конфигурацию, состояние, PID приложения и MySQL; мастер и админка второго, HTTPS, схемы 19/33 таблицы и renewal dry-run прошли.

У старого rc.4 недостающие зависимости подготовлены отдельной контролируемой операцией. Это не автоматическое обновление старого проекта. Две новые установки rc.6 в обоих порядках на чистых VPS отдельно не выполнялись; оба порядка проверены в изолированных Linux fixtures. Боты на тестовой установке отключены, реальные публикации этой приёмкой не проверялись.

Команда установки и примеры двух доменов — в README. Загрузчик закрепляет SHA-256 конкретного архива; полный пакет содержит проверяемый manifest. Выпуск предварительный.

GitRePosted v0.1.0-rc.5

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 02:01

GitRePosted v0.1.0-rc.5

Исправлена ссылка настройки в уже открытой вкладке установщика. Раньше переход на тот же /install/ с новой частью #setup не начинал вход; помогала перезагрузка. Теперь код удаляется из адреса до запросов, состояние сессии проверяется сервером, и вход выполняется один раз.

Сохраняются введённые настройки и активное задание. Проверены повторная ссылка во время входа, истёкшая сессия, malformed link, HTTP, обычный #main и ошибка очистки адреса. Десять новых Chrome сценариев; пять UI/browser suites — 59/59 PASS, независимый review — PASS. Runtime приложения не изменён: все 28 файлов совпадают с rc.4.

После повторной очистки тестовой Ubuntu24 опубликованный rc.4 впервые прошёл отдельную непрерывную установку публичной командой: 131 секунда без --resume, мастер 27/27, админка 30/30 и смена пароля 27/27. Подтверждены MySQL — 19 таблиц, доверенный HTTPS, пробное продление сертификата, закрытие мастера и автозапуск после полной перезагрузки ОС. Эти результаты относятся к rc.4. Исправление rc.5 проверено браузерными fixtures; отдельная чистая установка rc.5 не выполнялась.

Это prerelease. Оба бота в реальной установке пропущены; Telegram/МАКС webhook и доставка публикаций ещё не подтверждены. Подробные результаты — docs/TESTING.md. Архивы и tags предыдущих выпусков сохранены.

После публикации анонимно проверены архив, checksum и loader. Загрузчик rc.5 с --resume проверен на завершённой rc.4: конфигурация, current, PID и installed marker сохранились, новый доступ к мастеру не выдан. Это проверка совместимости с завершённым состоянием; установленный installer/runtime остаётся rc.4.

GitRePosted v0.1.0-rc.4

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 01:20

GitRePosted v0.1.0-rc.4

Дополнительная проверка выявила ошибки в сценариях прерывания и потери ответа. В этом выпуске исправлены:

  • Запуск из неполной JSON-конфигурации: все переключатели платформ, hCaptcha и очередей теперь обязательны. Отсутствующий флаг останавливает запуск до SQL, workers и обращения к платформам.
  • Подтверждение записи конфигурации: синхронизируются файл и POSIX-каталог. При ошибке после замены API возвращает безопасный неопределённый результат, сверяет память с файлом и отзывает изменённые credentials. Если чтение невозможно, admin auth закрывается.
  • Продолжение прерванного APT/dpkg: ограниченное ожидание настоящих блокировок, завершение pending configuration, сохранение существующих conffiles, запрет удаления пакетов и lock-файлов.
  • Сохранение Node/npm: файлы и каталоги записываются до отметки готовности. Сохранённый mysql2 проверяется от пользователя приложения из доступного проверенного каталога, без соединения с БД. Проверка не считается полной криптографической сверкой всех npm-файлов.
  • Продолжение раннего bootstrap новым выпуском: переключение разрешено только до настройки приложения и при остановленной службе, прежний каталог сохраняется. Настроенная система автоматически не обновляется.
  • Потерянные ответы правки настроек и домена: мастер сверяет фактическое состояние, сохраняет введённые поля и прекращает бесконечное ожидание. Автоматического повторного запроса нет.
  • Подтверждение меню МАКС: допустимый ответ изменения без commands больше не блокирует установку. Состояние читается через GET /me; прежняя подписка сохраняется до подтверждения.

Проверки включают Linux POSIX/root fixtures, настоящую проверку установленного Node/mysql2, изолированные сбои диска и пакетов, 49 UI/browser tests, 101 public runtime test и полный private Node suite (131 PASS, один прежний Windows symlink skip). Dependency audit — 0 vulnerabilities. Подробные результаты и границы приёмки находятся в docs/TESTING.md.

Это prerelease. Первоначальная реальная Ubuntu-установка была продолжена после сбоя rc.1; исправления текущего выпуска проверены на этой установленной тестовой системе и в изолированных fixtures. Chrome подтвердил сохранение прежних настроек, вход/restart/logout и закрытие мастера. Отдельная непрерывная установка rc.4 на заново очищенной VPS ещё не выполнена. Реальные Telegram/МАКС webhook и доставка публикаций пока не проверены: обе платформы в мастере пропущены.

Архив и checksum относятся к этому tag. Команда установки в main закрепляет опубликованный архив по точному URL и SHA256. Старые tags и assets сохранены.

GitRePosted v0.1.0-rc.3

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 01:03

GitRePosted v0.1.0-rc.3

Исправления после дополнительной проверки установщика:

  • Полный пакет сохраняется атомарно. Прерывание копирования не оставляет частично заменённый установщик; при ошибке подтверждения записи на диск прежний комплект сохраняется для разбора.
  • Завершённый мастер отключает временную службу даже после ошибки восстановления метаданных и не открывает новый socket.
  • Отказ при изменении настроек показывает актуальную причину. Потерянный ответ сверяется с сервером без повторного запуска операции.
  • Боты, добавленные после установки, получают проверенное меню /start. Потерянный ответ настройки меню проверяется чтением состояния платформы.

Проверки: 15 suites на Ubuntu Server 24.04, 43 UI/browser tests, полный private runtime suite — 128 PASS и один прежний Windows symlink skip. Dependency audit — 0 vulnerabilities. Проверены настоящий полный пакет из 83 файлов, атомарная публикация и замена, сохранность конфигурации, MySQL schema из 19 таблиц и вход/restart/logout в Chrome на тестовой VPS.

Это prerelease. Rc.2 продолжил реальную установку после ошибки rc.1; исправления rc.3 дополнительно проверены на той же установленной системе и в изолированных Linux fixtures. Отдельная непрерывная установка rc.3 на новой чистой VPS ещё не выполнена. Реальные Telegram/МАКС webhook и доставка публикаций не проверены: обе платформы в мастере пропущены. Успешные offline tests и HTTPS не заменяют проверку доставки.

Архив и SHA256 относятся к этому tag. Корневой install.sh в main закрепляет опубликованный архив по точному URL и SHA256; в исходный tag и архив загрузчик не входит. Старые tags и assets сохранены.

GitRePosted v0.1.0-rc.2

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 00:37

Исправлена реальная ошибка установки на Ubuntu 24.04: после распаковки Node.js каталоги оставались с правами 0700, и служебный пользователь не мог запустить Node для npm ci. Установщик теперь проверяет vendor tree и нормализует права каталогов при первой установке и при продолжении. Добавлены Linux-проверки с root, runuser, umask 077, безопасными ссылками и запретом внешних ссылок и hardlink.

Проверка на отдельном сервере с чистой Ubuntu началась с rc.1, обнаружила ошибку, затем успешно продолжилась полным комплектом rc.2 через --resume. Это не отдельный непрерывный запуск rc.2 с нуля.

Подтверждены реальные Node/npm, MySQL со схемой из 19 таблиц, HTTPS по IP с доверенным Let's Encrypt и пробное продление сертификата. Пройден весь веб-мастер без подключённых ботов, вход и выход, смена пароля администратора с отзывом прежней сессии, перезапуск приложения и автоматический запуск служб после перезагрузки ОС. Мастер после установки закрыт. На Linux прошли 15 наборов проверок; реальные публикации Telegram и МАКС ещё не выполнялись.

Выпуск остаётся предварительным. Для проверки платформ используйте отдельные тестовые боты и каналы. Архив и SHA256 относятся к этому выпуску; assets rc.1 сохранены без изменения. Команда установки и подробные ограничения — в README.

GitRePosted v0.1.0-rc.1

Pre-release

Choose a tag to compare

@SergeyFromMariupol SergeyFromMariupol released this 24 Oct 00:16

Обнаружена ошибка установки на чистом Ubuntu: каталоги Node.js могут получить права 0700, из-за чего npm ci завершается с Permission denied. Используйте исправленный v0.1.0-rc.2. Архивы rc.1 сохранены без изменения для истории.


Первый предварительный выпуск GitRePosted для самостоятельной установки.

  • Установщик для отдельного чистого Ubuntu Server 24.04: Node.js, MySQL, nginx, HTTPS и web-мастер /install/.
  • Telegram и МАКС подключаются независимо; пропущенного бота можно добавить позже через панель.
  • Собственные данные администратора, необязательная hCaptcha, выбор часового пояса.
  • Подтверждение переноса webhook из другого сервиса. После настройки мастер закрывается.
  • Очередь хранит события в MySQL; неоднозначная доставка требует проверки оператором и автоматически повторно не отправляется.

Проверены модули runtime, конфигурация и вход, installer broker, web-мастер в браузере, упаковка и контрольные суммы. Проверка зависимостей не обнаружила известных уязвимостей. Проверки платформ выполнены с перехваченным transport.

Установка на очищенном Linux-сервере, реальная MySQL и сквозные публикации тестовых ботов ещё не подтверждены. Это prerelease, не стабильный выпуск; для первой установки используйте отдельные тестовые боты и каналы.

Архив gitreposted-installer.tar.gz и файл .sha256 принадлежат одному выпуску. Инструкции: README.