Postavite svoju aplikaciju iz Lovablea, Bolta ili drugog AI alata za izradu na svoj WebOké hosting
Jeste li izradili aplikaciju s alatom Lovable, Bolt ili nekim drugim AI alatom za izradu i želite je postaviti na Vašu domenu kod WebOké? To je moguće. U ovom članku saznat ćete kako preuzeti kod iz AI alata, kako izgraditi i prenijeti aplikaciju te kako GitHub to može automatski učiniti za Vas.
1. Kakvu aplikaciju imate?
Otvorite datoteku package.json u Vašem projektu. Iz nje možete vidjeti o kojoj se vrsti aplikacije radi.
- Statična aplikacija (React s Viteom). U
package.jsonnavedeno jevite, a nema poslužiteljskog frameworka. Naredbomnpm run buildizradit ćete mapudists običnim HTML, JavaScript i CSS datotekama. Njih prenesite upublic_html. To funkcionira na svakom hosting paketu. Mnoge aplikacije iz Bolta i starije aplikacije iz Lovablea izgrađene su na ovaj način. - Aplikacija s vlastitim poslužiteljem. Lovable od 13. svibnja 2026. izrađuje aplikacije s TanStack Startom: tada se u
package.jsonnalazi@tanstack/react-start. Takva aplikacija pokreće poslužiteljski kod i stoga ne radi kao zasebne datoteke upublic_html. Postavite je kao Node.js aplikaciju (vidi točku 6). Isto vrijedi i za druge aplikacije s vlastitim poslužiteljem, poput Express backenda. - Aplikacija sa Supabaseom ili Lovable Cloudom kao backendom. Baza podataka, prijava i funkcije tada ostaju kod Supabasea ili Lovablea. Na WebOké postavljate samo prednji dio (front-end). Prilikom izgradnje ipak navedite adresu i javni ključ Supabasea (vidi točku 5).
2. Preuzimanje koda iz AI alata putem GitHuba
Lovable i Bolt mogu Vaš projekt postaviti u Vaš vlastiti GitHub repozitorij. Promjene se tada sinkroniziraju u oba smjera: ono što promijenite u AI alatu dolazi u GitHub, a ono što promijenite u GitHubu vraća se u AI alat.
U Lovableu:
- Otvorite projekt i idite na Project settings > Git > GitHub.
- Kliknite Add connection i dajte aplikaciji Lovable pristup Vašem GitHub računu.
- Kod stavke Accounts kliknite Connect. Lovable izrađuje privatni repozitorij i održava ga ažurnim.
Moguće je i bez GitHuba: opcijom Download codebase pod Project settings > Git preuzimate kod (uz plaćenu Lovable pretplatu).
U Boltu:
- Otvorite projekt i kliknite ikonu GitHuba u gornjem desnom kutu.
- Prijavite se na GitHub, kliknite Authorize i instalirajte Boltovu GitHub aplikaciju.
- Unesite naziv repozitorija i kliknite Create repository. Bolt zatim radi u grani
main.
3. Izgradnja i prijenos statične aplikacije
Aplikaciju gradite na vlastitom računalu. Za to Vam je potreban Node.js, verzija 22 (trenutačni Vite zahtijeva najmanje 20.19 ili 22.12).
- Preuzmite kod:
git cloneVašeg repozitorija ili raspakirajte preuzetu datoteku. - Otvorite terminal u mapi projekta i instalirajte pakete naredbom
npm ci(ilinpm installako ne postojipackage-lock.json). - Izgradite aplikaciju naredbom
npm run build. Sada postoji mapadists datotekomindex.htmli mapomassets. - Prenesite sadržaj mape
distudomains/vasadomena.hr/public_html, pomoću FTP programa ili alata File Manager u DirectAdminu. Dakle, nemojte prenositi samu mapudist, kao ni izvorni kod ilinode_modules. - Postavite datoteku
.htaccessu nastavku upublic_html.
Aplikacija s više stranica (s routerom) prikazuje u pregledniku adrese poput vasadomena.hr/o-nama. Te stranice ne postoje kao datoteke na poslužitelju. Ako osvježite takvu stranicu ili izravno otvorite poveznicu, dobit ćete pogrešku 404. Pomoću ove datoteke .htaccess poslužitelj te adrese preusmjerava na index.html, a aplikacija tada prikazuje ispravnu stranicu:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^assets/ - [R=404,L]
RewriteRule ^ index.html [L]
Postojeće datoteke i mape poslužitelj prikazuje uobičajeno. Datoteka koja nedostaje u mapi assets daje pravu pogrešku 404, tako da lakše uočite grešku. Sve ostalo ide u aplikaciju.
.htaccess u mapu public Vašeg projekta. Vite pri svakoj izgradnji kopira sve iz mape public u dist, pa se datoteka uvijek prenosi zajedno s ostalima. Ne vidite datoteku u FTP programu ili u alatu File Manager? Datoteke koje počinju točkom ponekad su skrivene, pogledajte Prikaz i uređivanje skrivenih datoteka poput .htaccess.4. Postavljanje aplikacije u podmapu
Želite li aplikaciju postaviti ne na vasadomena.hr, nego na vasadomena.hr/app? Tada aplikacija to mora znati već pri izgradnji. U suprotnom preglednik traži datoteke u /assets umjesto u /app/assets i zaslon ostaje bijel.
- U datoteci
vite.config.js(ilivite.config.ts) postavite opcijubase: '/app/'. - Routeru zadajte istu putanju. Kod React Routera to činite pomoću
<BrowserRouter basename={import.meta.env.BASE_URL}>. - Ponovno izgradite aplikaciju i prenesite sadržaj mape
distupublic_html/app. - U
public_html/app/.htaccesspostavite istu datoteku kao gore, sRewriteBase /app/.
5. Supabase, Lovable Cloud i ostale postavke (env varijable)
Postavke koje počinju s VITE_, kao što su VITE_SUPABASE_URL i VITE_SUPABASE_PUBLISHABLE_KEY (u starijim projektima VITE_SUPABASE_ANON_KEY), Vite prilikom izgradnje ugrađuje u JavaScript datoteke. Na poslužitelju ih naknadno više ne možete postaviti.
- Vrijednosti ćete pronaći u datoteci
.envVašeg projekta. Nazive preuzmite točno onako kako su napisani. - Ako u Vašem projektu nema datoteke
.env, sami je izradite u mapi projekta prije nego što pokrenetenpm run build. Kod GitHub Actions postavite ih kao secret (pogledajte točku 7). - Ako ste promijenili neku vrijednost, ponovno izgradite i prenesite aplikaciju.
VITE_ može pročitati svaki posjetitelj. Javni ključ (publishable ili anon key) Supabasea smije se ondje nalaziti jer je upravo za to namijenjen; Supabase Vaše podatke štiti sigurnosnim pravilima (row level security). Nikada ne stavljajte ključ service_role ili neki drugi tajni ključ u varijablu VITE_.6. Aplikacija s vlastitim poslužiteljem: kao Node.js aplikacija
Aplikaciju s poslužiteljskim kodom, kao što je TanStack Start aplikacija iz Lovablea, postavljate putem opcije Setup Node.js App u DirectAdminu. Kako to funkcionira, pročitajte u članku Aktivacija Node.js-a u DirectAdminu. Za TanStack Start aplikaciju postupak je sljedeći:
- Izgradite aplikaciju na svom računalu naredbom
NITRO_PRESET=node-server npm run build. Sada postoji mapa.output. - Izradite aplikaciju u opciji Setup Node.js App, s Node.js 22 i mapom izvan
public_html, na primjerapps/myapp. - Prenesite mapu
.outputu tu mapu. - U istoj mapi izradite datoteku
start.cjss ovim jednim retkom i upišitestart.cjsu polje Application startup file:import('./.output/server/index.mjs'); - Postavke koje su poslužitelju potrebne, kao što su
SUPABASE_URLiSUPABASE_PUBLISHABLE_KEY, unesite pod Environment variables. - Kliknite na Restart. To učinite i nakon svakog novog prijenosa.
Datoteka start.cjs potrebna je jer je poslužitelj iz .output moderni JavaScript modul (.mjs), a Node.js okruženje početnu datoteku učitava na stari način. Ako aplikacija javlja pogrešku 503, pogledajte datoteku stderr.log u mapi Vaše aplikacije.
7. Automatska objava pomoću GitHub Actions
Uz GitHub Actions, GitHub gradi Vašu aplikaciju pri svakoj promjeni u grani main i postavlja rezultat na Vaš paket. Budući da Lovable i Bolt zapisuju na GitHub, promjena iz AI alata za izradu bit će online već nakon nekoliko minuta. Git funkcija u DirectAdminu ništa ne gradi, ona samo postavlja datoteke. Zato je za Vite aplikaciju GitHub Actions praktičniji.
Lozinke i ključeve nikada ne stavljajte u svoj repozitorij, nego ih spremite kao secret na GitHubu:
- Otvorite svoj repozitorij na GitHubu i idite na Settings > Secrets and variables > Actions.
- Kliknite na New repository secret, unesite naziv i vrijednost te kliknite na Add secret. Učinite to za svaki secret iz varijante koju odaberete.
- U svom repozitoriju izradite datoteku
.github/workflows/deploy.ymls jednim od dva primjera u nastavku. - Nakon sljedeće promjene na kartici Actions provjerite je li sve uspjelo. Pomoću Run workflow možete ga pokrenuti i ručno.
Varijanta A: putem FTPS-a (svi hosting paketi). U DirectAdminu izradite zaseban FTP račun za GitHub i kod Root Directory odaberite opciju Domain (pogledajte Kako funkcionira FTP kod WebOké?). Secrets: FTP_SERVER (naziv poslužitelja Vašeg paketa, primjerice linux2023.webawere.nl, a ne Vaš naziv domene), FTP_USERNAME (puni naziv, primjerice github@vasadomena.hr), FTP_PASSWORD te VITE_ vrijednosti Vaše aplikacije.
name: Build and deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run build
env:
VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
VITE_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.VITE_SUPABASE_PUBLISHABLE_KEY }}
- uses: SamKirkland/FTP-Deploy-Action@v4.4.0
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
protocol: ftps
port: 21
local-dir: ./dist/
server-dir: public_html/
Varijanta B: putem SSH-a s rsyncom (paketi sa SSH-om). SSH je uključen u pakete Power Webhost Three i Four, AI Wordpress Three i Power Reseller, na portu 1967 i samo s ključem (pogledajte SSH pristup i Terminal u DirectAdminu).
- Na svom računalu izradite zaseban ključ za GitHub, bez lozinke:
ssh-keygen -t ed25519 -f github-deploy -N "". - Sadržaj datoteke
github-deploy.pubunesite u DirectAdminu pod SSH Keys > PASTE KEY. - Sadržaj datoteke
github-deploy(privatni ključ) spremite u secretSSH_PRIVATE_KEY. Nakon toga izbrišite datoteku sa svog računala. - Pokrenite
ssh-keyscan -p 1967 nazivposluzitelja.webawere.nli ispis spremite u secretSSH_KNOWN_HOSTS. Tako GitHub provjerava da se zaista povezuje s Vašim poslužiteljem. - Kao secret spremite i
SSH_HOST(naziv poslužitelja),SSH_USER(Vaše DA korisničko ime),DOMEIN(primjericevasadomena.hr) teVITE_vrijednosti.
name: Build and deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run build
env:
VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
VITE_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.VITE_SUPABASE_PUBLISHABLE_KEY }}
- name: Deploy
env:
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
DOMEIN: ${{ secrets.DOMEIN }}
run: |
mkdir -p ~/.ssh
printf '%s\n' "$SSH_KEY" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
printf '%s\n' "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
rsync -rlptz --delete --exclude=.well-known --exclude=cgi-bin \
-e "ssh -p 1967 -i ~/.ssh/deploy_key" \
dist/ "$SSH_USER@$SSH_HOST:domains/$DOMEIN/public_html/"
--delete rsync iz mape public_html uklanja sve što nije dio Vaše aplikacije, osim .well-known (potrebno za Vaš SSL certifikat) i cgi-bin. Ako se u mapi public_html nalazi još nešto, primjerice druga stranica u podmapi, uklonite --delete ili aplikaciju smjestite u zasebnu podmapu.Ako ne koristite Supabase, izostavite retke s VITE_SUPABASE ili umjesto njih unesite VITE_ varijable svoje aplikacije. Ako prijava nekoliko puta ne uspije, poslužitelj privremeno blokira IP adresu GitHuba. U tom slučaju provjerite svoje secrets i ponovno pokrenite workflow.
8. Česte pogreške
- Početna stranica radi, ali osvježavanje ili izravna poveznica daje 404. Datoteka
.htaccessiz točke 3 nedostaje ili se nalazi u pogrešnoj mapi. - Bijeli zaslon. Otvorite alate za razvojne programere u svojem pregledniku (F12) i pogledajte pod Console ili Network. Vidite li pogreške 404 za datoteke u
/assets? Onda putanja nije ispravna: učitali ste samu mapudistumjesto njezina sadržaja ili se aplikacija nalazi u podmapi bez ispravne vrijednostibase(točka 4). - Aplikacija se učitava, ali prijava ili podaci ne rade ili vidite poruku poput
supabaseUrl is required. VarijableVITE_nisu bile dostupne prilikom izrade. Postavite ih u.envili kao secret i ponovno izradite aplikaciju. - Izrada (build) ne uspijeva uz poruku o verziji Node.js-a. Koristite Node.js 22, na svojem računalu i u workflowu (
node-version: 22). npm cine uspijeva. Ne postojipackage-lock.json, primjerice zato što projekt ima samobun.lock. Jednom pokrenitenpm installi dodajte novipackage-lock.jsonu svoj repozitorij.- U buildu nema datoteke
index.html. Onda je riječ o aplikaciji s vlastitim poslužiteljem, poput TanStack Starta. Postavite je kao Node.js aplikaciju (točka 6).
Pogledajte i: Povezivanje s FileZillom (FTP, FTPS i SFTP) i SSH ključevi i prijava putem SSH-a.
Detaljno objašnjenje sa snimkama zaslona: Postavljanje Node.js aplikacije u priručniku za DirectAdmin.
