Как перенести проект Replit на свой сервер
Чтобы перенести проект Replit на свой сервер, скачайте код как zip или отправьте его на GitHub, отдельно соберите свои Secrets и базу данных, подключите код к панели Coolify на сервере и переключите домен, когда убедитесь, что всё работает. Код — самая простая часть. Собственное руководство Replit говорит, что больше всего времени занимают база данных и веб-адрес.
Старый проект всё это время продолжает работать. Ничего не выключайте, пока не проверите всё на новом сервере.
Что приходит вместе с кодом, а что нет?
| Компонент | Состояние | Что сделать |
|---|---|---|
| Исходный код | Переезжает | Zip или GitHub |
.replit, replit.nix | Переезжают, но читает их только Replit | Используйте их, чтобы узнать команду запуска и системные пакеты |
| Secrets | Остаются | Введите значения на сервере вручную |
| База данных | Остаётся | Экспортируйте через pg_dump и загрузите на сервер |
| Файлы App Storage | Остаются | Скачайте их и измените код работы с хранилищем |
| Replit Auth | Привязан к аккаунтам Replit | Перейдите на другой способ входа |
| Коннекторы | Остаются | Задайте ключ API каждого сервиса как переменную |
Как получить код?
Через GitHub: в Project Editor откройте Git в разделе Tools. При необходимости выберите Initialize Git Repository, подключите репозиторий, затем сделайте коммит и пуш. Держите его приватным. Мы рекомендуем этот путь, потому что он переносит и последующие изменения.
В виде zip: в меню с тремя точками над деревом файлов выберите Download as zip. Если не получается, соберите zip сами в Shell, исключив папку .cache, где Replit хранит кэшированные значения секретов: zip -r project.zip . -x ".cache/*" "node_modules/*"
Шаг за шагом
- Закажите сервер на странице Next.js VPS. В этот вариант входит Coolify, поэтому проекты на Python и чистом Node разворачиваются из той же панели.
- Команду запуска найдите в
.replit, а порт — в своём коде. Собственная публикация Replit тоже требует слушать0.0.0.0, так что это обычно уже сделано. Значения для Flask, которые мы проверили: порт5000иpython -m flask run --host=0.0.0.0 --port=5000. - Проекту на Python нужны зависимости в
requirements.txtилиpyproject.toml. Для системных пакетов изreplit.nixиспользуйте переменную сборкиRAILPACK_DEPLOY_APT_PACKAGES, хотя имена в Nix и APT не всегда совпадают. - Клонируйте репозиторий и откройте папку в инструменте для кода, например в Claude Code или Cursor. Скопируйте строку Вставьте в свой ИИ-инструмент на вкладке Обзор своей панели Seturack и вставьте её. Инструмент выполнит развёртывание, либо вы можете сделать это вручную.
- Введите значения из инструмента Secrets в Replit как переменные окружения на сервере, включая секреты развёртывания, которые Replit хранит отдельно.
- Один раз скопируйте базу данных для проверки (см. ниже) и протестируйте приложение целиком по его адресу HTTPS.
- Выключите старое приложение, в последний раз скопируйте базу данных и направьте A-запись домена на IP-адрес сервера. Сертификат выдаётся автоматически.
Доступ root у вас есть, и при желании всем можно управлять из панели.
Как перенести базу данных?
База данных Replit совместима с PostgreSQL, и нужные инструменты уже есть в её Shell:
- Экспортируйте её в Replit Shell:
pg_dump -Fc "$DATABASE_URL" --no-owner --no-privileges -f backup.dump - Эта команда экспортирует базу данных для разработки, а живые данные обычно лежат в рабочей. В инструменте Database выберите рабочую базу данных, скопируйте строку подключения из Settings и подставьте её вместо
"$DATABASE_URL". - Скачайте
backup.dump. Не кладите его в репозиторий, потому что в нём все ваши данные. - Создайте PostgreSQL в Coolify и загрузите файл через Import backup на странице Backups базы данных.
- Задайте внутренний адрес базы данных как
DATABASE_URLв приложении и разверните заново.
Всё, что записано после запуска pg_dump, в копию не попадёт, поэтому последнюю копию делают после остановки старого приложения.
Файлы и вход
Бакеты App Storage не переносятся, поэтому скачайте файлы через инструмент хранилища Replit. Если ваш код использует SDK Replit, эту часть придётся изменить. Проще всего заменить её записью файлов в папку на сервере и монтированием этой папки через Persistent Storage в Coolify.
Replit Auth позволяет пользователям входить с аккаунтами Replit. Чтобы не зависеть от Replit, может понадобиться другой способ входа. Ваш инструмент для кода может переписать этот раздел, но сначала сделайте бэкап таблицы пользователей и проверьте на временном адресе.
Частые вопросы
Какой размер нужен проекту Replit?
На странице продажи рекомендуется минимум 4 ГБ RAM, 2 vCore и 40 ГБ диска, исходя из сборок Next.js: проект с 85 пакетами не собрался на 2 ГБ и собрался на 4 ГБ. Если база данных делит сервер с приложением, возьмите с запасом и при необходимости увеличьте сервер из панели.
Сколько это будет стоить в месяц?
Рекомендуемый минимальный размер стоит около $6 в месяц (включая НДС), а за пределами Турции вы платите в долларах США. Ежедневные бэкапы входят в цену, а трафик безлимитный. Использование и подписка Replit продолжаются, пока вы их не закроете.
Как отвязать домен от Replit?
Удалите домен в разделе Publishing, Domains в Replit, направьте A-запись на IP-адрес сервера, затем добавьте его с https на странице Domains в Coolify и разверните заново.
Можно ли продолжать разработку в Replit?
Да. Включите автосинхронизацию в панели Git, чтобы изменения попадали на GitHub. При настроенном вебхуке сервер пересобирает приложение при каждом пуше. Без него нажмите Redeploy в Coolify. Помните, что предпросмотр Replit и рабочий сервер используют разные базы данных.
Можно ли оставить базу данных в Replit?
Можно попробовать, передав серверу строку подключения, но тогда приложение и данные окажутся порознь, а счёт Replit продолжит приходить. Если вы действительно переносите приложение, чище перенести и базу данных на тот же сервер.
Комментарии0
Комментариев пока нет
Поделитесь своим мнением первым.
Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.