Як перенести проєкт 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, підключіть репозиторій, потім зробіть commit і push. Тримайте його приватним. Радимо цей шлях, бо він переносить і пізніші зміни.
Як 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:
- Експортуйте в Shell Replit:
pg_dump -Fc "$DATABASE_URL" --no-owner --no-privileges -f backup.dump - Ця команда експортує базу розробки, а робочі дані зазвичай лежать у production. В інструменті 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. З вебхуком сервер перебудовується після кожного push. Без нього натискайте Redeploy у Coolify. Пам’ятайте, що попередній перегляд Replit і робочий сервер використовують різні бази даних.
Чи можу я залишити базу даних у Replit?
Можна спробувати, давши серверу її рядок підключення, але тоді застосунок і дані житимуть окремо, а рахунок від Replit триватиме. Якщо ви справді переносите застосунок, чистіше перенести базу даних на той самий сервер.
Коментарі0
Коментарів поки немає
Поділіться своєю думкою першим.
Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.