Vadovai

Kaip eksportuoti ir savarankiškai talpinti DI sukurtą programėlę

Kad savarankiškai talpintumėte DI sukurtą programėlę, išimkite kodą (atsisiuntimu arba sinchronizavimu su jums priklausančia GitHub saugykla), iš naujo sukurkite jos paslaptis kaip aplinkos kintamuosius, perkelkite arba iš naujo sukurkite duomenų bazę ir įdiekite ją serveryje, atitinkančiame programėlės tipą: statinį serverį paprastai priekinei daliai arba platformą, kuri paleidžia serverius ar konteinerius, jei yra galinė dalis. Kodas dažniausiai yra lengviausia dalis. Darbas slypi duomenyse, paslaptyse ir paslaugose, kurias kūrėjas tyliai vykdė jūsų vardu.

Kodėl apskritai eksportuoti

Yra geros priežastys pasiimti kodą su savimi ir kai kurios mažiau geros.

Geros priežastys:

  • Nuosavybė ir draudimas. Kodo kopija jūsų saugykloje apsaugo, jei kūrėjas pakeičia kainas, funkcijas ar sąlygas.
  • Perdavimas kūrėjams. Inžinerijos komanda norės kodo Git sistemoje, su įprastais įrankiais ir peržiūros procesu.
  • Konkretūs reikalavimai. Duomenų buvimo vieta, konkretus debesijos teikėjas, įmonės saugumo politikos ar infrastruktūra, kurios kūrėjas nesiūlo.
  • Mastas ar kaina, kai savo infrastruktūros valdymas tikrai atsiperka.

Mažiau geros priežastys: perkelti mažą programėlę su keliais naudotojais, kad sutaupytumėte nedidelę mėnesio sumą. Savarankiškas talpinimas perkelia darbą jums – atnaujinimus, atsargines kopijas, stebėseną, saugumo pataisas. Tai gali būti teisingas pasirinkimas; tik priimkite jį sąmoningai.

Protingas vidurio kelias: toliau kurkite ir talpinkite ten, kur esate, bet nuo pat pradžių sinchronizuokite su savo GitHub saugykla. Gausite apsaugą be operacinio darbo. Jei Git jums naujas, perskaitykite kas yra GitHub.

Ką eksportas turi ir ko neturi

Prieš pasikliaudami eksportu, atidarykite jį ir patikrinkite. Paprastai:

ĮtraukiamaPaprastai neįtraukiama
Pirminis kodas (priekinė ir galinė dalys)Paslapčių reikšmės (API raktai, slaptažodžiai)
Konfigūracijos failai (package.json, Dockerfile, kūrimo konfigūracija)Įdiegtos priklausomybės (node_modules ir panašūs) – jos įdiegiamos iš naujo
Duomenų bazės schema ir migracijų failai, jei programėlė jas naudojaTikri duomenų bazės duomenys
Statiniai projekto failaiVartotojų įkelti failai atskirose saugyklose
Kūrėjo valdomos paslaugos: talpinimas, domenai, duomenų bazės serveris, failų saugykla

Paslaptys tyčia paliekamos – archyvas, kurį galbūt siųsite el. paštu ar įkelsite į saugyklą, niekada neturėtų turėti gyvų raktų. Priklausomybės paliekamos, nes jos sukuriamos iš naujo pagal užrakto failą.

1 žingsnis: išimkite kodą

Du įprasti būdai:

  • Atsisiųskite archyvą su projektu. Greita ir tinka vienkartiniam perkėlimui ar atsarginei kopijai.
  • Sinchronizuokite su GitHub. Geriau bet kam, kas vyksta nuolat: pilna istorija, lengva klonuoti bet kur, o dauguma serverių diegia tiesiai iš GitHub saugyklos su kiekvienu įkėlimu.

Bet kuriuo atveju klonuokite arba išskleiskite jį kompiuteryje (ar debesies kūrimo aplinkoje) ir ieškokite README. Jei jo nėra, prieš išeidami paprašykite DI kūrimo įrankyje jį parašyti:

Parašyk README, kaip paleisti šį projektą už šios platformos ribų: technologijų rinkinį, reikalingas vykdymo aplinkų versijas, įdiegimo ir kūrimo komandas, paleidimo komandą ir prievadą, kiekvieną aplinkos kintamąjį, kurį kodas nuskaito (pavadinimus ir paskirtį, be reikšmių), ir kaip vykdomos duomenų bazės migracijos.

Šis vienas užklausimas sutaupo valandų, nes priverčia užrašyti nematomas sąrankos dalis.

2 žingsnis: pirmiausia paleiskite lokaliai

Prieš diegdami bet kur, įsitikinkite, kad programėlė veikia savarankiškai:

  1. Įdiekite vykdymo aplinką, kurią nurodo README – Node.js, Python, Java, .NET – atitinkamos versijos.
  2. Įdiekite priklausomybes (npm install, pnpm install, pip install -r requirements.txt arba atitinkamą komandą).
  3. Sukurkite lokalų .env failą su aplinkos kintamaisiais, kur įmanoma naudodami bandomuosius raktus. Laikykite jį už Git ribų. Kas yra aplinkos kintamieji ir paslaptys paaiškina idėją.
  4. Nukreipkite į duomenų bazę – lokalų Postgres arba nemokamą kūrimo duomenų bazę iš valdomo teikėjo.
  5. Paleiskite migracijas, tada paleiskite programėlę ir perbėkite pagrindinius srautus.

Kas čia sugenda, sugestų ir serveryje, o derinti savo kompiuteryje daug lengviau. Dažniausios staigmenos: įkoduotas kūrėjo peržiūros URL, trūkstamas aplinkos kintamasis, kurį kūrėjas automatiškai įdėdavo, arba paslauga (failų saugykla, nuotraukų keitimas dydžiu), kuri egzistavo tik platformoje.

3 žingsnis: perkelkite duomenis

Jei programėlė turi tikrų naudotojų, duomenys svarbesni nei kodas.

  • Eksportuokite duomenų bazę. Postgres atveju pg_dump sukuria failą, kurį galima atkurti su pg_restore ar psql naujoje duomenų bazėje. Jei neturite tiesioginės prieigos, paprašykite kūrėjo DI tai paleisti ir paaiškinti, ką jis sukūrė.
  • Perkelkite įkeltus failus. Jei naudotojai įkėlė nuotraukas ar dokumentus, jie laikomi objektų saugykloje, atskirtoje nuo duomenų bazės. Nukopijuokite juos į naują saugyklą (pavyzdžiui, S3 suderinamą saugyklą) ir atnaujinkite saugomus URL, jei jie turi seną serverį.
  • Suplanuokite perjungimą. Gyvai programėlei paprastas būdas – trumpas techninės priežiūros langas: sustabdykite rašymą, padarykite galutinį eksportą, atkurkite jį naujame serveryje, perjunkite DNS ir vėl atidarykite. Pirma užrašykite kiekvieną žingsnį.
  • Išbandykite atkūrimą į laikiną duomenų bazę prieš tikrą perkėlimą.

Jei Postgres nepažįstate, kas yra Postgres apima pagrindus.

4 žingsnis: pasirinkite, kur talpinti

Suderinkite serverį su programėlės tipu. Toliau pateikti pavadinimai – tai pavyzdžiai žinomų teikėjų kiekvienoje kategorijoje 2026 m. rugsėjo duomenimis, o ne reitingas; patikrinkite dabartines galimybes ir kainas jų svetainėse.

Programėlės tipasKo reikiaPavyzdiniai serveriai
Statinė svetainė ar SPA (tik HTML, CSS, JS)Failų talpinimas su CDNNetlify, Vercel, Cloudflare Pages, GitHub Pages
Pilno steko karkasas (Next.js ir panašūs)Serveris ar besserverės funkcijosVercel, Netlify, Render, Railway
API ar galinė dalis (Node, Python, Java, C#)Visada įjungtas arba automatiškai sumažinamas iki nulio serverisRender, Railway, Fly.io, debesies konteinerių paslaugos
Bet kas su DockerfileKonteinerių vykdymo aplinkaFly.io, Render, Railway, AWS, Google Cloud, Azure
Pilna kontrolėJūsų valdomas virtualus serverisDigitalOcean, Hetzner, Linode ar bet koks debesies VM

Taip pat jums prireiks:

  • Valdomos duomenų bazės – daugelis programėlių serverių siūlo Postgres, o specializuotos paslaugos, pavyzdžiui, Neon ar Supabase, teikia ją atskirai. Valdoma verta: atsarginės kopijos ir atnaujinimai – kito žmogaus darbas.
  • Objektų saugyklos įkėlimams, jei programėlė jų turi.
  • El. laiškų siuntimas, mokėjimai ir DI teikėjai – paprastai tiesiog reikia nustatyti tuos pačius API raktus naujame serveryje.

Sąžiningai dėl kompromisų: platformų serveriai (pirmosios keturios eilutės) greitai nustatomi ir prižiūrimi, bet turite mažiau kontrolės, o išlaidos gali augti kartu su srautu. Virtualus serveris dažnai pigesnis esant pastoviai apkrovai ir visiškai jūsų kontroliuojamas, bet jūs atsakote už atnaujinimus, TLS, atsargines kopijas, stebėseną ir atkūrimą. Jei komandoje niekas nenori tokio darbo, rinkitės platformą. Pagrindams apie tai, kas yra talpinimas, žr. kas yra žiniatinklio talpinimas.

5 žingsnis: diegimas ir perjungimas

  1. Prijunkite saugyklą prie serverio arba įkelkite konteinerio vaizdą.
  2. Nustatykite aplinkos kintamuosius serverio valdymo skydelyje – kiekvieną iš README su gyvomis reikšmėmis.
  3. Nustatykite kūrimo ir paleidimo komandas bei prievadą. Daugelis serverių perduoda prievadą per PORT aplinkos kintamąjį; programėlė turi klausytis jo ir visose sąsajose (0.0.0.0), o ne tik localhost.
  4. Paleiskite migracijas naujoje duomenų bazėje.
  5. Išbandykite serverio laikiną URL prieš keisdami DNS.
  6. Atnaujinkite išorines paslaugas, kurios nukreipia į seną URL: mokėjimų webhook’us, OAuth nukreipimo URL prisijungimui, el. laiškų nuorodas, leidžiamus šaltinius.
  7. Perkelkite domeną atnaujindami DNS įrašus į naują serverį. Kaip prijungti savo domeną paaiškina įrašus.
  8. Trumpai palikite seną diegimą veikiantį, kol būsite tikri, tada jį išjunkite.

6-as žingsnis dažniausiai pamirštamas: prisijungimai ir mokėjimai, kurie po perkėlimo tyliai nustoja veikti, dažniausiai susiję su grįžimo URL, vis dar nukreipiančiu į seną serverį.

6 žingsnis: perimkite operacijas

Kai programėlę talpinate savarankiškai, dalykai, kuriuos tvarkė kūrėjas, tampa jūsų. Mažiausiai: automatinės duomenų bazės atsarginės kopijos su išbandytu atkūrimu, klaidų sekimas, veikimo laiko įspėjimai, priklausomybių atnaujinimai ir sąrašas, kas turi prieigą prie kiekvienos paskyros. Kaip perkelti DI prototipą į gamybą detaliau aptaria šį sąrašą.

Eksporto kontrolinis sąrašas

  • Kodas saugykloje, kuri priklauso jums, su README, apimančiu paleidimą, kūrimą ir aplinkos kintamuosius
  • Programėlė paleidžiama lokaliai nuo švaraus klono
  • Duomenų bazė eksportuota, atkūrimas išbandytas; įkelti failai nukopijuoti
  • Serveris parinktas pagal programėlės tipą, plius valdoma duomenų bazė ir saugykla
  • Visi aplinkos kintamieji nustatyti su gyvomis reikšmėmis naujame serveryje
  • Webhook’ai, OAuth nukreipimai ir el. laiškų nuorodos atnaujinti
  • DNS perjungtas, senas diegimas trumpai palaikytas, tada pašalintas
  • Atsarginės kopijos, stebėsena ir prieigos sąrašas įdiegti

Eksportas iš Mythex

Mythex jūs turite kodą, kurį kuriate. Pro plane galite atsisiųsti projektą kaip archyvą iš Projekto nustatymai → Eksportas, arba prijungti GitHub ir įkelti bei atsisiųsti iš savo saugyklos; Free planuose kodą galima peržiūrėti tik skaitymui, bet negalima eksportuoti ar sinchronizuoti. Eksportuose paslaptys ir node_modules nepatenka, todėl naujame serveryje paslaptis sukurkite iš naujo. Dokumentacijoje veiksmai aprašyti eksportas ir paleidimas kitur ir GitHub, eksportas ir importas. Taip pat galite toliau talpinti Mythex ir naudoti GitHub sinchronizavimą tik kaip savo kopiją ir perdavimo kelią; jei persikeliate, išjunkite Mythex programėlę, kai naujas serveris veiks.

Klausimai

Ar galiu eksportuoti kodą iš DI programėlių kūrimo įrankio?

Tai priklauso nuo įrankio ir plano. Kai kurie kūrėjai leidžia atsisiųsti visą projektą arba sinchronizuoti jį su jums priklausančia GitHub saugykla; kiti palieka programėlę savo platformoje. Patikrinkite prieš investuodami mėnesius į vieną iš jų ir perskaitykite, kas įtraukiama į eksportą, o kas ne.

Ar eksporte yra mano duomenų bazė ir API raktai?

Paprastai eksportuojamas kodas, bet ne duomenys ar paslaptys. Slaptieji raktai paprastai tyčia paliekami, o duomenų bazės turinys reikalauja atskiro eksporto, pavyzdžiui, pg_dump Postgres duomenų bazei. Abu dalykus suplanuokite prieš keisdami serverį.

Kur turėčiau talpinti eksportuotą programėlę?

Statinė priekinė dalis gerai tinka statiniams serveriams, tokiems kaip Netlify, Vercel ar Cloudflare Pages. Programėlei su savu serveriu reikia platformos, kuri paleidžia kodą ar konteinerius, pavyzdžiui, Render, Railway ar Fly.io, arba jūsų valdomo virtualaus serverio. Jei programėlė turi duomenų bazę, jums taip pat reikės valdomos duomenų bazės.

Ar savarankiškas talpinimas pigesnis nei likti kūrimo įrankyje?

Kartais, esant dideliam mastui. Mažoms programėlėms skirtumas dažnai nedidelis, kai įskaičiuojate duomenų bazę, el. paštą, stebėseną ir savo laiką, skirtą priežiūrai. Keiskitės dėl kontrolės ar konkrečių reikalavimų, o ne vien dėl kelių JAV dolerių per mėnesį sutaupymo.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)