Jak umístit Vaši aplikaci z Lovable, Bolt nebo jiného AI nástroje pro tvorbu aplikací na hosting WebOké
Vytvořili jste aplikaci pomocí Lovable, Bolt nebo jiného AI nástroje pro tvorbu aplikací a chcete ji provozovat na své vlastní doméně u WebOké? To je možné. V tomto článku se dozvíte, jak z AI nástroje získat kód, jak aplikaci sestavit a nahrát a jak to za Vás může automaticky dělat GitHub.
1. Jaký typ aplikace máte?
Otevřete ve svém projektu soubor package.json. Podle něj poznáte, o jaký typ aplikace jde.
- Statická aplikace (React s Vite). V
package.jsonje uvedenovitea žádný serverový framework. Příkazemnpm run buildvytvoříte složkudists běžnými soubory HTML, JavaScript a CSS. Ty nahrajete dopublic_html. Funguje to na každém hostingovém balíčku. Takto je postavena řada aplikací z Bolt i starší aplikace z Lovable. - Aplikace s vlastním serverem. Lovable od 13. května 2026 vytváří aplikace s TanStack Start: v takovém případě je v
package.jsonuvedeno@tanstack/react-start. Taková aplikace spouští serverový kód, a proto nefunguje jako samostatné soubory vpublic_html. Nastavíte ji jako Node.js aplikaci (viz bod 6). Totéž platí pro další aplikace s vlastním serverem, například s backendem v Express. - Aplikace se Supabase nebo Lovable Cloud jako backendem. Databáze, přihlašování a funkce v tomto případě zůstávají u Supabase nebo Lovable. Na WebOké umístíte pouze frontend (front-end). Při sestavování však musíte zadat adresu a veřejný klíč Supabase (viz bod 5).
2. Získání kódu z AI nástroje přes GitHub
Lovable a Bolt umí uložit Váš projekt do vlastního GitHub repozitáře. Změny se pak přenášejí oběma směry: co změníte v AI nástroji, se objeví na GitHubu, a co změníte na GitHubu, se promítne zpět do AI nástroje.
V Lovable:
- Otevřete svůj projekt a přejděte do Project settings > Git > GitHub.
- Klikněte na Add connection a udělte aplikaci Lovable přístup ke svému účtu GitHub.
- U položky Accounts klikněte na Connect. Lovable vytvoří soukromý repozitář a bude jej průběžně aktualizovat.
Jde to i bez GitHubu: pomocí Download codebase v Project settings > Git si kód stáhnete (s placeným předplatným Lovable).
V Bolt:
- Otevřete svůj projekt a vpravo nahoře klikněte na ikonu GitHubu.
- Přihlaste se na GitHub, klikněte na Authorize a nainstalujte GitHub aplikaci od Bolt.
- Zadejte název repozitáře a klikněte na Create repository. Bolt pak pracuje ve větvi
main.
3. Sestavení a nahrání statické aplikace
Aplikaci sestavíte na svém počítači. K tomu potřebujete Node.js ve verzi 22 (aktuální Vite vyžaduje minimálně 20.19 nebo 22.12).
- Získejte kód: proveďte
git clonesvého repozitáře, nebo rozbalte stažený archiv. - Otevřete terminál ve složce projektu a nainstalujte balíčky příkazem
npm ci(nebonpm install, pokud chybípackage-lock.json). - Sestavte aplikaci příkazem
npm run build. Nyní máte složkudistse souboremindex.htmla složkouassets. - Nahrajte obsah složky
distdodomains/example.com/public_html, a to pomocí FTP klienta nebo Správce souborů v DirectAdmin. Nenahrávejte tedy samotnou složkudist, ani zdrojový kód činode_modules. - Umístěte níže uvedený soubor
.htaccessdopublic_html.
Aplikace s více stránkami (s routerem) zobrazuje v prohlížeči adresy jako example.com/about. Tyto stránky na serveru neexistují jako soubory. Pokud takovou stránku obnovíte nebo odkaz otevřete přímo, zobrazí se chyba 404. Díky tomuto souboru .htaccess server tyto adresy přesměruje na index.html a aplikace pak zobrazí správnou stránku:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^assets/ - [R=404,L]
RewriteRule ^ index.html [L]
Existující soubory a složky server zobrazí normálně. Chybějící soubor ve složce assets vrátí skutečnou chybu 404, takže chybu snáze odhalíte. Vše ostatní se předá aplikaci.
.htaccess do složky public ve svém projektu. Vite při každém sestavení zkopíruje vše ze složky public do dist, takže se soubor vždy nahraje společně s aplikací. Nevidíte soubor ve svém FTP klientovi nebo ve Správci souborů? Soubory začínající tečkou jsou někdy skryté, viz Zobrazení a úprava skrytých souborů, jako je .htaccess.4. Umístění aplikace do podsložky
Chcete aplikaci provozovat ne na example.com, ale na example.com/app? Pak to aplikace musí vědět už při sestavení. Jinak bude prohlížeč hledat soubory v /assets místo v /app/assets a obrazovka zůstane bílá.
- V souboru
vite.config.js(nebovite.config.ts) nastavte volbubase: '/app/'. - Předejte stejnou cestu i routeru. U React Router to uděláte pomocí
<BrowserRouter basename={import.meta.env.BASE_URL}>. - Aplikaci znovu sestavte a nahrajte obsah složky
distdopublic_html/app. - Do
public_html/app/.htaccessvložte stejný soubor jako výše, ale sRewriteBase /app/.
5. Supabase, Lovable Cloud a další nastavení (proměnné prostředí)
Nastavení začínající na VITE_, například VITE_SUPABASE_URL a VITE_SUPABASE_PUBLISHABLE_KEY (ve starších projektech VITE_SUPABASE_ANON_KEY), vloží Vite při sestavení přímo do souborů JavaScriptu. Na serveru je proto dodatečně nastavit nelze.
- Hodnoty najdete v souboru
.envve Vašem projektu. Názvy převezměte přesně tak, jak jsou. - Pokud ve Vašem projektu soubor
.envnení, vytvořte ho sami ve složce projektu dříve, než spustítenpm run build. V GitHub Actions je nastavte jako secret (viz bod 7). - Pokud jste některou hodnotu změnili, aplikaci znovu sestavte a nahrajte.
VITE_, si může přečíst každý návštěvník. Veřejný klíč Supabase (publishable nebo anon key) tam být smí, je k tomu určen; Vaše data Supabase chrání pomocí bezpečnostních pravidel (row level security). Nikdy nevkládejte klíč service_role ani jiný tajný klíč do proměnné VITE_.6. Aplikace s vlastním serverem: jako aplikace Node.js
Aplikaci se serverovým kódem, například aplikaci TanStack Start z Lovable, nasadíte pomocí Setup Node.js App v DirectAdmin. Jak to funguje, se dočtete v článku Aktivace Node.js v DirectAdmin. U aplikace TanStack Start postupujte takto:
- Sestavte aplikaci na svém počítači příkazem
NITRO_PRESET=node-server npm run build. Vznikne složka.output. - Vytvořte aplikaci v Setup Node.js App s Node.js 22 a složkou mimo
public_html, napříkladapps/myapp. - Nahrajte složku
.outputdo této složky. - Ve stejné složce vytvořte soubor
start.cjss tímto jediným řádkem a do pole Application startup file zadejtestart.cjs:import('./.output/server/index.mjs'); - Nastavení, která server potřebuje, například
SUPABASE_URLaSUPABASE_PUBLISHABLE_KEY, zadejte v části Environment variables. - Klikněte na Restart. Udělejte to také po každém novém nahrání.
Soubor start.cjs je potřeba, protože server ze složky .output je moderní modul JavaScriptu (.mjs), zatímco prostředí Node.js načítá spouštěcí soubor starším způsobem. Pokud aplikace vrací chybu 503, podívejte se do souboru stderr.log ve složce Vaší aplikace.
7. Automatické nasazení pomocí GitHub Actions
Díky GitHub Actions GitHub sestaví Vaši aplikaci při každé změně ve větvi main a výsledek nahraje na Váš hostingový balíček. Protože Lovable a Bolt zapisují do GitHubu, je změna z AI nástroje pro tvorbu aplikací online už za několik minut. Funkce Git v DirectAdmin nic nesestavuje, pouze umísťuje soubory. Pro aplikaci ve Vite je proto GitHub Actions praktičtější.
Hesla a klíče nikdy neukládejte do svého repozitáře, ale jako secret v GitHubu:
- Otevřete svůj repozitář na GitHubu a přejděte do Settings > Secrets and variables > Actions.
- Klikněte na New repository secret, vyplňte název a hodnotu a klikněte na Add secret. Udělejte to pro každý secret z varianty, kterou zvolíte.
- Ve svém repozitáři vytvořte soubor
.github/workflows/deploy.ymls jedním ze dvou příkladů níže. - Po další změně zkontrolujte na kartě Actions, zda vše proběhlo úspěšně. Pomocí Run workflow jej můžete spustit také ručně.
Varianta A: přes FTPS (všechny hostingové balíčky). V DirectAdmin vytvořte samostatný FTP účet pro GitHub a u položky Kořenová složka zvolte možnost Doména (viz Jak funguje FTP u WebOké?). Secrets: FTP_SERVER (název serveru Vašeho balíčku, například linux2023.webawere.nl, nikoli název Vaší domény), FTP_USERNAME (celé jméno, například github@example.com), FTP_PASSWORD a hodnoty VITE_ Vaší aplikace.
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/
Varianta B: přes SSH s rsync (balíčky s SSH). SSH je součástí balíčků Power Webhost Three a Four, AI Wordpress Three a Power Reseller, na portu 1967 a pouze s klíčem (viz Přístup přes SSH a Terminal v DirectAdmin).
- Na svém počítači vytvořte samostatný klíč pro GitHub, bez hesla:
ssh-keygen -t ed25519 -f github-deploy -N "". - Obsah souboru
github-deploy.pubvložte v DirectAdmin do SSH klíče > VLOŽIT KLÍČ. - Obsah souboru
github-deploy(soukromý klíč) vložte do secretuSSH_PRIVATE_KEY. Poté soubor ze svého počítače smažte. - Spusťte
ssh-keyscan -p 1967 linux2023.webawere.nla výstup vložte do secretuSSH_KNOWN_HOSTS. GitHub tak ověří, že se opravdu připojuje k Vašemu serveru. - Jako secret nastavte také
SSH_HOST(název serveru),SSH_USER(Vaše uživatelské jméno v DA),DOMEIN(napříkladexample.com) a hodnotyVITE_.
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 odstraní z public_html vše, co není součástí Vaší aplikace, kromě .well-known (potřebné pro Váš SSL certifikát) a cgi-bin. Pokud je v public_html ještě něco dalšího, například druhý web v podsložce, odstraňte --delete nebo umístěte aplikaci do vlastní podsložky.Pokud nepoužíváte Supabase, řádky s VITE_SUPABASE vynechte nebo místo nich uveďte proměnné VITE_ své vlastní aplikace. Pokud se přihlášení několikrát nezdaří, server dočasně zablokuje IP adresu GitHubu. V takovém případě zkontrolujte své secrets a spusťte workflow znovu.
8. Časté chyby
- Domovská stránka funguje, ale po obnovení stránky nebo při přímém odkazu se zobrazí chyba 404. Soubor
.htaccessz bodu 3 chybí nebo je ve špatné složce. - Bílá obrazovka. Otevřete vývojářské nástroje svého prohlížeče (F12) a podívejte se na kartu Console nebo Network. Vidíte chyby 404 u souborů ve složce
/assets? Pak nesedí cesta: nahráli jste samotnou složkudistmísto jejího obsahu, nebo je aplikace v podsložce bez správného nastaveníbase(bod 4). - Aplikace se načte, ale přihlášení nebo data nefungují, případně se zobrazí hlášení jako
supabaseUrl is required. ProměnnéVITE_nebyly při sestavení k dispozici. Uložte je do.envnebo jako secret a sestavte aplikaci znovu. - Sestavení selže s hlášením o verzi Node.js. Používejte Node.js 22, na svém počítači i ve workflow (
node-version: 22). npm ciselže. Chybí souborpackage-lock.json, například proto, že projekt obsahuje pouzebun.lock. Spusťte jednounpm installa nový souborpackage-lock.jsonuložte do svého repozitáře.- V sestavení není žádný soubor
index.html. Pak jde o aplikaci s vlastním serverem, například TanStack Start. Nastavte ji jako aplikaci Node.js (bod 6).
Viz také: Připojení pomocí FileZilla (FTP, FTPS a SFTP) a SSH klíče a přihlášení přes SSH.
Podrobný návod se snímky obrazovky: Nastavení aplikace Node.js v příručce k DirectAdmin.
