ফেব্রুয়ারি 2, 2026গাইড
VPS-এ ব্যক্তিগত Git সার্ভার কীভাবে সেটআপ করবেন
VPS-এ আপনার নিজের ব্যক্তিগত Git সার্ভার সেটআপ করার সম্পূর্ণ গাইড। GitLab, Gitea, বা bare রিপোজিটরি ব্যবহার করে সম্পূর্ণ নিয়ন্ত্রণ এবং গোপনীয়তা সহ Git রিপোজিটরি হোস্ট করার শিখুন।

আপনার নিজের Git সার্ভার হোস্ট করা আপনাকে আপনার কোড রিপোজিটরির উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়, গোপনীয়তা নিশ্চিত করে এবং তৃতীয় পক্ষের পরিষেবার উপর নির্ভরতা এড়ায়। আপনার একটি সাধারণ bare রিপোজিটরি বা একটি সম্পূর্ণ-কার্যকর Git হোস্টিং প্ল্যাটফর্ম প্রয়োজন কিনা, এই গাইড আপনার VPS-এ একটি ব্যক্তিগত Git সার্ভার সেটআপ করার জন্য একাধিক বিকল্প কভার করে।
কেন আপনার নিজের Git সার্ভার হোস্ট করবেন?
- সম্পূর্ণ গোপনীয়তা: আপনার কোড আপনার সার্ভারে থাকে
- কোন বিক্রেতা লক-ইন নেই: আপনার রিপোজিটরির উপর সম্পূর্ণ নিয়ন্ত্রণ
- কাস্টমাইজেশন: ঠিক যেমন আপনি চান কনফিগার করুন
- খরচ-কার্যকর: সীমাহীন রিপোজিটরির জন্য একটি সার্ভার
- সম্মতি: ডেটা আবাসের প্রয়োজনীয়তা পূরণ করুন
- শিক্ষা: Git সার্ভারের অভ্যন্তরীণ বুঝুন
বিকল্প 1: GitLab (সম্পূর্ণ-কার্যকর)
GitLab একটি সম্পূর্ণ DevOps প্ল্যাটফর্ম প্রদান করে:
bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install gitlab-ce
gitlab-ctl reconfigure
# http://your-server-ip এ GitLab অ্যাক্সেস করুন
# ডিফল্ট ব্যবহারকারীর নাম: root
# প্রথম লগইনে পাসওয়ার্ড সেট করুনবিকল্প 2: Gitea (হালকা ওজন)
Gitea হল একটি হালকা ওজন, স্ব-হোস্টেড Git পরিষেবা:
bash
wget -O gitea https://dl.gitea.io/gitea/1.21.0/gitea-1.21.0-linux-amd64
chmod +x gitea
mv gitea /usr/local/bin/
# systemd পরিষেবা তৈরি করুন
nano /etc/systemd/system/gitea.service
# Gitea কনফিগার এবং শুরু করুন
systemctl enable gitea
systemctl start giteaবিকল্প 3: Bare Git রিপোজিটরি (সরল)
ওয়েব ইন্টারফেস ছাড়া মৌলিক Git হোস্টিংয়ের জন্য:
bash
mkdir -p /srv/git/myproject.git
cd /srv/git/myproject.git
git --bare init
# সঠিক অনুমতি সেট করুন:
chown -R git:git /srv/git
chmod -R 755 /srv/git
# ক্লায়েন্ট থেকে ক্লোন করুন:
git clone git@your-server:/srv/git/myproject.gitSSH অ্যাক্সেস কনফিগারেশন
নিরাপদ Git অ্যাক্সেসের জন্য SSH সেটআপ করুন:
bash
adduser git
su - git
mkdir .ssh
chmod 700 .ssh
nano .ssh/authorized_keys
# ডেভেলপারদের পাবলিক কী যোগ করুন
chmod 600 .ssh/authorized_keys
# সংযোগ পরীক্ষা করুন:
ssh git@your-serverনিরাপত্তা সেরা অনুশীলন
- পাসওয়ার্ডের পরিবর্তে SSH কী ব্যবহার করুন
- দুই-ফ্যাক্টর প্রমাণীকরণ সক্রিয় করুন (GitLab/Gitea)
- রিপোজিটরির নিয়মিত ব্যাকআপ
- Git সার্ভার সফ্টওয়্যার আপ টু ডেট রাখুন
- অ্যাক্সেস সীমাবদ্ধ করতে ফায়ারওয়াল কনফিগার করুন
- ওয়েব ইন্টারফেসের জন্য SSL/TLS ব্যবহার করুন
- অ্যাক্সেস নিয়ন্ত্রণ এবং অনুমতি প্রয়োগ করুন
- সন্দেহজনক কার্যকলাপের জন্য লগ মনিটর করুন
ব্যাকআপ কৌশল
নিয়মিত ব্যাকআপ অপরিহার্য:
bash
#!/bin/bash
# Git রিপোজিটরি ব্যাকআপ স্ক্রিপ্ট
BACKUP_DIR="/backup/git"
REPO_DIR="/srv/git"
DATE=$(date +%Y%m%d)
tar -czf $BACKUP_DIR/git-backup-$DATE.tar.gz $REPO_DIR
# শেষ 30 দিন রাখুন
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete