Repository navigation
Releases: SergeyFromMariupol/GitRePosted
Release list
v0.1.0-rc.9 — перенос данных между аккаунтами
Добавлен перенос каналов, пересылок, связанного аккаунта и выданных прав между аккаунтами одной платформы.
- Новый аккаунт выдаёт одноразовый код на 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
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
Исправлены воспроизводимые ошибки продолжения и совместной установки 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
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
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
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
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
Исправлена реальная ошибка установки на 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
Обнаружена ошибка установки на чистом 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.