Git-based Deployment Workflow
Local Computer
↓
git add
↓
git commit
↓
git push
↓
GitHub Repository
↓
VPS Server
↓
git pull
↓
Laravel Project Update১. VPS-এ SSH দিয়ে Login
প্রথমে SSH-এর মাধ্যমে VPS server-এ login করুন:
ssh username@server-ipউদাহরণ:
ssh user@your-server-ipতারপর project directory-তে যান:
cd /home/user/public_html২. VPS-এ Git Install করা
AlmaLinux বা RHEL-based server-এ:
sudo dnf install git -yGit install হয়েছে কি না:
git --version৩. VPS-এ Git Configuration
VPS-এ commit করার প্রয়োজন হলে Git identity সেট করুন:
git config --global user.name "Production VPS"
git config --global user.email "your@email.com"শুধু নির্দিষ্ট project-এর জন্য:
git config user.name "Production VPS"
git config user.email "your@email.com"৪. Private GitHub Repository-এর জন্য SSH Key
Private repository access করার জন্য VPS-এর SSH key GitHub account-এ add করতে হবে।
VPS-এ key আছে কি না দেখুন:
ls -la ~/.sshPublic key দেখতে:
cat ~/.ssh/id_rsa.pubযদি key না থাকে:
ssh-keygen -t ed25519 -C "your@email.com"তারপর public key copy করে GitHub-এর:
Settings → SSH and GPG keys → New SSH keyএ add করুন।
Repository-এর URL SSH করে দিন
আপনার project folder-এ যান:
cd /home/user/public_htmlতারপর:
git remote set-url origin git@github.com:yourusername/my-project.git৫. GitHub Connection Test
ssh -T git@github.com
সফল হলে GitHub authentication-এর confirmation message দেখাবে।
Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.
If Shows
Permissions 0644 for '/home/nomanit/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "/home/nomanit/.ssh/id_rsa": bad permissions git@github.com: Permission denied (publickey).
Then
Apply
Private key-এর permission ঠিক করুন
আপনি যেহেতু nomanit user দিয়ে login করেছেন, এই command চালান:
chmod 600 ~/.ssh/id_rsaতারপর public key-এর permission:
chmod 644 ~/.ssh/id_rsa.pubSSH folder-এর permission-ও ঠিক রাখুন:
chmod 700 ~/.sshএখানে id_rsa হলো private key—এটার permission 600 হওয়া উচিত।
আবার GitHub connection test করুন
ssh -T git@github.comসফল হলে এমন message পাবেন:
Hi nomancse19! You've successfully authenticated,
but GitHub does not provide shell access.৬. Project Clone করা
যদি VPS-এ project আগে না থাকে:
cd /home/user
git clone git@github.com:username/project-name.git public_htmlঅথবা নির্দিষ্ট branch clone করতে:
git clone -b main git@github.com:username/project-name.git public_html৭. Existing Project-এ Git Connect করা
যদি project আগে থেকেই VPS-এ থাকে এবং .git folder না থাকে:
cd /home/user/public_html
git init
git remote add origin git@github.com:username/project-name.git
git fetch origin
git switch -c main --track origin/mainতবে project-এর existing files থাকলে আগে backup নেওয়া জরুরি।
৮. VPS থেকে সর্বশেষ Code Pull করা
cd /home/user/public_html
git pull origin mainযদি branch configured থাকে:
git pull৯. Laravel Project Update করার পর প্রয়োজনীয় Commands
Laravel project হলে সাধারণত:
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cacheসতর্কতা: Production server-এ migrate --force চালানোর আগে database backup নেওয়া উচিত।