Merhabalar,
Laravel ve Nuxt için iki ayrı repo'yu, cPanel üzerinden aynı domain altında aşağıdaki yapıya uygun bir şekilde deploy etmek istiyoruz:
https://example.com/* (Nuxt, PM2 ile)
https://example.com/api/* (Laravel)
https://example.com/admin/* (Laravel, Livewire uyumlu)
Beklentilerimiz şunlardır:
- Git versiyon kontrolü ile cPanel entegrasyonu: Her iki repo'nun da cPanel'e bağlanması ve `.cpanel.yml` dosyası ile panel üzerinden kolayca deploy edilebilir olması.
- Reverse proxy ayarları: Laravel ve Nuxt uygulamalarının belirtilen domain yapısında (yukarıdaki gibi) reverse proxy ile sorunsuz bir şekilde sunulması.
- Sık deploy ihtiyacına uygun bir yapı: Development sürecinin aktif olması nedeniyle sık deploy yapılması beklenmektedir. Ayrıca, domain adresinin sık sık değişme ihtimaline karşı uyumlu bir yapı sağlanması gerekiyor.
- Storage yapısı: Projelerdeki dosyaların local olarak tutulmasını ve deploy ya da domain değişimi sırasında zarar görmemesini sağlayacak bir yapı kurulması.
Not:
GitHub Actions çözümü istemiyoruz. Talebimiz:
Ücret ve süre isteğinizi mesaj yoluyla veya bu konunun altına yorum yaparak iletebilirsiniz.
Çalışma için sizden şu adımları talep ediyoruz:
1. Laravel ve Nuxt için iki örnek repo oluşturmanız.
2. Bu repo'ları bir domain altında deploy ederek sistemin çalıştığını göstermeniz.
3. Deploy işlemleriyle ilgili detayları paylaşan bir doküman hazırlamanız ve repo'lara erişim sağlamanız.
ÖRNEK, .cpanel.yml ve .deploy.sh (eksik): ---
deployment:
tasks:
- cp -rf .deploy.example.sh .deploy.sh
- source .deploy.sh
- mkdir -p $DEPLOYPATH "$(dirname $PUBLICPATH)" "$(dirname $STORAGEPATH)"
- |
find -mindepth 1 -maxdepth 1 \
! -name "storage" \
-exec rm -rf $DEPLOYPATH/{} \;
- |
find -mindepth 1 -maxdepth 1 \
! -name ".git" \
! -name ".cpanel.yml" \
! -name ".deploy.example.sh" \
! -name ".deploy.sh" \
-exec cp -R -t $DEPLOYPATH {} +
- ln -fsn "$DEPLOYPATH/public" $PUBLICPATH
- ln -fsn "$DEPLOYPATH/storage/app/public" $STORAGEPATH
- cd $DEPLOYPATH
- if [ ! -f composer.phar ]; then wget -O - https://getcomposer.org/installer | php &>> deploy.log; fi
- php composer.phar install --no-interaction --ignore-platform-reqs --no-dev &>> deploy.log
- |
if [ ! -f .env ]
then
cp .env.example .env
php artisan key:generate &>> deploy.log
else
php artisan optimize &>> deploy.log
# php artisan migrate --force &>> deploy.log
fiexport DEPLOYROOT=example.com
export DEPLOYPATH=~/deployments/$DEPLOYROOT
export PUBLICPATH=~/public_html/$DEPLOYROOT
export STORAGEPATH=~/public_html/$DEPLOYROOT/storage