Skip to content

fix(setup): fall back to GitHub for the Railpack install script - #124

Merged
agentHits merged 1 commit into
AgentHits-Devfrom
fix/railpack-installer-fallback
Oct 29, 2026
Merged

agentHits merged 1 commit into
AgentHits-Devfrom
fix/railpack-installer-fallback

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

https://railpack.com/install.sh — это перенаправление через Cloudflare на файл в GitHub. Из сети одного из серверов сборки Cloudflare дважды подряд отвечал 525, и обновление Railpack кнопкой Components → Update падало с ошибкой «the Railpack install script could not be downloaded or checked». С сервера панели и с других машин тот же адрес в это время работал. В итоге Railpack на том сервере пришлось ставить руками с GitHub.

Что изменилось

  • Скрипт установки Railpack скачивается сначала с https://railpack.com/install.sh, а если оттуда не пришёл рабочий файл — с https://raw.githubusercontent.com/railwayapp/railpack/refs/heads/main/install.sh. Именно туда и ведёт railpack.com.
  • Это работает во всех трёх местах, где ставится Railpack:
    • первичная настройка сервера — packages/server/src/setup/server-setup.ts;
    • обновление компонентов, кнопка Components → Update — packages/server/src/setup/server-components.ts;
    • установщик хоста панели — install-agenthits.sh: у run_install_script появился необязательный четвёртый аргумент, запасной адрес.
  • Скачивание в панели вынесено в общую функцию installScriptDownload, адреса — в NIXPACKS_INSTALL_SCRIPT_URLS и RAILPACK_INSTALL_SCRIPT_URLS. Nixpacks использует ту же функцию с одним адресом, его поведение не меняется.
  • Каждый скачанный файл, как и раньше, должен быть непустым и пройти bash -n. Иначе берётся следующий адрес, а если не подошёл ни один, шаг падает и Railpack не меняется. На каждый неудачный адрес в журнал пишется строка «could not be downloaded or checked from <адрес>».
  • Dockerfile не менялся: образ панели собирается в GitHub Actions, где railpack.com доступен.

Проверки

  • vitest по server-setup, server-components, install-agenthits-update и component-versions-sync: 194 из 194. Новые случаи:
    • railpack.com не отвечает → Railpack ставится со скрипта из GitHub (настройка сервера, обновление компонентов, установщик);
    • оба адреса не отвечают → шаг падает, версия Railpack не печатается.
  • tsc --noEmit в packages/server и apps/dokploy, biome check, shellcheck -S warning и bash -n install-agenthits.sh — без замечаний.
  • Сгенерированный шаг прогнан с реальной сетью: при недоступном первом адресе скрипт скачан с GitHub (10771 байт) и прошёл bash -n.

Что проверить вручную на dev

  • Components → Update на сервере сборки с устаревшим Railpack: в журнале «Railpack version … installed ✅». Если railpack.com с этого сервера недоступен, перед этим должна быть строка «could not be downloaded or checked from https://railpack.com/install.sh».

🤖 Generated with Claude Code

Что: скрипт установки Railpack теперь скачивается сначала с
https://railpack.com/install.sh, а если оттуда не пришёл рабочий файл, то
с https://raw.githubusercontent.com/railwayapp/railpack/refs/heads/main/install.sh.
Так работают все три места, где ставится Railpack: первичная настройка
сервера (server-setup.ts), кнопка Components → Update
(server-components.ts) и install-agenthits.sh. Скачивание в панели
вынесено в общую функцию installScriptDownload; Nixpacks использует её же
с одним адресом, как и раньше.

Зачем: railpack.com только перенаправляет через Cloudflare на этот же
файл в GitHub. Из сети одного сервера сборки Cloudflare дважды подряд
отвечал 525, и обновление Railpack падало, хотя с других серверов тот же
адрес работал. Пришлось ставить Railpack руками с GitHub.

Риски: запасной адрес — тот же файл, на который ведёт railpack.com, так
что источник доверия не меняется. Каждый скачанный файл, как и раньше,
должен быть непустым и пройти bash -n, иначе берётся следующий адрес, а
если не подошёл ни один — шаг падает. Dockerfile не менялся: образ
собирается в GitHub Actions, где railpack.com доступен.

Проверки: vitest по server-setup, server-components,
install-agenthits-update и component-versions-sync — 194 из 194, включая
новые случаи «railpack.com не отвечает → GitHub» и «оба адреса не
отвечают → шаг падает». tsc --noEmit в packages/server и apps/dokploy,
biome check, shellcheck и bash -n install-agenthits.sh без замечаний.
Сгенерированный шаг прогнан с реальной сетью: недоступный первый адрес,
скрипт скачан с GitHub и прошёл bash -n.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits
agentHits merged commit 86d81bc into AgentHits-Dev Oct 29, 2026
7 checks passed
@agentHits
agentHits deleted the fix/railpack-installer-fallback branch October 29, 2026 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant