A Statamic CMS deployolása shared hosting környezetben SSH hozzáférés nélkül is automatizálható. Ebben a cikkben megmutatom, hogyan használhatod a GitHub Actions workflow-kat FTP alapú deploymenthez minden push után. Az útmutató tartalmazza a cache törlést, jogosultságkezelést, environment konfigurációt és az Apache rewrite szabályok beállítását is.
Ha automatizálni szeretnéd a deploy folyamatot shared hosting környezetben, de nincs SSH hozzáférésed, akkor FTP és GitHub Actions segítségével továbbra is megoldható az automatikus deployment.
A GitHub Actions lehetővé teszi, hogy minden push után automatikusan feltöltsd a módosított fájlokat a hosting tárhelyedre.
Előfeltételek
Egy GitHub repository a Statamic projekteddel
FTP hozzáférés a shared hosting szolgáltatódhoz
Érvényes Statamic licenc kulcs
FTP hozzáférés létrehozása
Első lépésként hozz létre egy FTP hozzáférést a hosting szolgáltatód admin felületén.
Ezután nyisd meg a GitHub repositorydat és navigálj ide:
Settings → Secrets and variables → ActionsHozz létre új repository secret kulcsokat az FTP adatokhoz.
Ajánlott secret nevek:
FTP_HOSTFTP_USERFTP_PASSWORDSTATAMIC_LICENSE_KEY
Statamic licenc kulcs létrehozása
Hozd létre a Statamic oldal licencét a hivatalos oldalon:
https://statamic.com/account/sites/create
GitHub Action workflow létrehozása
Hozd létre a következő fájlt:
.github/workflows/deploy.ymlMajd add hozzá ezt a konfigurációt:
name: Deploy Site after Push to master branch
on:
push:
branches:
- master
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get the latest code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
- name: Install NPM dependencies
run: npm install
- name: Build frontend assets
run: npm run build
- name: Copy environment file
run: cp .env.hosting .env
- name: Add environment variables
run: |
echo APP_ENV=production >> .env
echo APP_DEBUG=false >> .env
echo APP_URL=https://YOURDOMAIN.com >> .env
echo STATAMIC_LICENSE_KEY=${{ secrets.STATAMIC_LICENSE_KEY }} >> .env
- name: Install Composer dependencies
run: composer install --no-dev --optimize-autoloader
- name: Generate application key
run: php artisan key:generate
- name: Clear caches
run: |
php artisan cache:clear
php please stache:clear
php please cache:clear
- name: Set directory permissions
run: chmod -R 775 storage bootstrap/cache
- name: Deploy files via FTP
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.FTP_HOST }}
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PASSWORD }}
server-dir: /public_html/Hogyan működik a workflow?
Ez a workflow automatikusan:
telepíti az NPM dependencyket
buildeli a frontend asseteket
bemásolja a hosting environment konfigurációt
telepíti a Composer dependencyket
törli a Laravel és Statamic cache-eket
FTP-n keresztül feltölti a módosított fájlokat
A .env.hosting fájlnak már léteznie kell a repositorydban.
A következő változókat ne tárold benne, mert ezeket deploy közben generáljuk:
APP_ENVAPP_DEBUGAPP_URLSTATAMIC_LICENSE_KEY
Az első deploy hosszabb ideig tarthat
Az első deploy során a GitHub Actions minden fájlt feltölt, beleértve a vendor könyvtárat is.
A kapcsolat sebességétől és a hosting szolgáltatótól függően ez akár 1–2 órát is igénybe vehet.
Ezután már csak a módosított fájlok kerülnek feltöltésre, így a későbbi deployok sokkal gyorsabbak lesznek.
Deploy más branchről
A fenti workflow automatikusan deployol minden push után a master branchről.
Ezt természetesen bármilyen más branchre módosíthatod:
branches:
- productionApache rewrite konfiguráció shared hostinghoz
Ha a hosting szolgáltató nem engedi módosítani a document root mappát, akkor minden fájlt a public_html könyvtárba kell feltöltened, majd át kell irányítani a kéréseket a public mappára.
Hozz létre egy .htaccess fájlt a Statamic projekt gyökérkönyvtárában:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^.*$
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)$ public/$1 [L]Ez a konfiguráció automatikusan a Statamic public könyvtárába irányítja a bejövő kéréseket.
Biztonsági ajánlások
Soha ne commitold a valódi
.envfájltA sensitive adatokat mindig GitHub Secrets-ben tárold
Használj production környezetben
APP_DEBUG=falsebeállítástRendszeresen frissítsd a Composer és NPM dependencyket
Mindig használj HTTPS kapcsolatot
Production környezethez ajánlott:
APP_ENV=production
APP_DEBUG=falseÖsszegzés
SSH hozzáférés nélkül is kialakítható egy stabil és automatizált deploy folyamat Statamic CMS projektekhez shared hosting környezetben.
A GitHub Actions és FTP kombinációja egyszerű, mégis megbízható megoldást nyújt kisebb projektekhez, ügyféloldalakhoz és MVP alkalmazásokhoz.
A rendszer beállítása után a deployment teljesen automatizáltá válik, így elegendő egyetlen push a GitHub repositoryba az új verzió élesítéséhez.