
به اشتراک بگذارید

به اشتراک بگذارید
بسیاری از تیمهای برنامهنویسی ترجیح میدهند سورسکد پروژههای خود را روی سرور Git اختصاصی خودشان نگه دارند؛ نه روی GitHub یا GitLab. دلایل متعددی پشت این تصمیم وجود دارد: از مشکلات تحریم و فیلترینگ گرفته تا نگرانیهای امنیتی درباره قرار دادن کد تجاری روی سرورهای خارجی. اما راهاندازی یک گیت سرور شخصی آنقدرها هم پیچیده نیست؛ بهخصوص اگر ابزار درستی انتخاب کنید.
حتماً زمانی که این مقاله را باز کردهاید؛ به دنبال راهی هستید که کنترل کامل روی ریپازیتوری تیمتان داشته باشید. در این راهنما همراه تیم وب داده قدمبهقدم پیش میرویم: از آشنایی با مفهوم سرور گیت خصوصی تا نصب Gitea روی سرور مجازی لینوکس و ساخت اولین ریپازیتوری خصوصی. تمام دستورات بر اساس مستندات رسمی Gitea (نسخه 1.25) تست و بهروزرسانی شدهاند. پس همراه ما باشید
🔶 برای راهاندازی سرور گیت تیمی به یک VPS لینوکس نیاز دارید. وب داده VPS با اوبونتو 22.04 و 24.04 ارائه میدهد که مناسب نصب Gitea است. 👉 خرید سرور مجازی از وبداده
سرور Git اختصاصی به سروری گفته میشود که نرمافزار مدیریت مخزن Git روی آن نصب شده و تحت کنترل کامل شما قرار دارد. بهجای اینکه کد پروژههایتان روی سرورهای GitHub در آمریکا ذخیره شود؛ همه چیز روی VPS خودتان نگهداری میشود و شما مالک واقعی دادههایتان هستید.
تصور کنید GitHub یک آپارتمان اجارهای است که قوانین ساختمان را صاحبخانه تعیین میکند. گیت سرور شخصی مثل خانهای است که کلید آن فقط دست شماست. هر تنظیمی را میتوانید تغییر دهید و هیچ محدودیتی در تعداد ریپازیتوری یا حجم فایل ندارید.
ساختار گیت سرور شخصی
═══════════════════════════
اینترنت 🌐
⬇️
سرور مجازی شما (VPS)
├─ 🔒 Nginx (Reverse Proxy + SSL)
├─ ☕ Gitea (مدیریت مخزن)
├─ 🗄️ SQLite / MySQL (دیتابیس)
└─ 💾 ریپازیتوریهای Git
├─ پروژه A (خصوصی)
├─ پروژه B (خصوصی)
└─ پروژه C (عمومی)
شاید با خودتان بگویید GitHub رایگان است و مشکلی ندارد. اما دلایل واقعی وجود دارد که بسیاری از تیمهای توسعه به سمت راهاندازی سرور Git خصوصی حرکت کردهاند:
Gitea یک پلتفرم متنباز مدیریت مخزن Git است که در سال 2016 از پروژه Gogs جدا شد و با زبان Go بازنویسی شده. از آن زمان تاکنون توسعه بسیار فعالی داشته و آخرین نسخه پایدار آن (۱1.25.4) در ژانویه 2026 منتشر شده است. این ابزار تحت لایسنس MIT کاملاً رایگان است و رابط کاربری آن شباهت زیادی به GitHub دارد؛ پس اگر با GitHub کار کرده باشید محیط Gitea برایتان آشنا خواهد بود.
اما سؤال اصلی اینجاست: چرا Gitea و نه GitLab؟ بیایید با اعداد واقعی مقایسه کنیم.
| ویژگی | ☕ Gitea | 🦊 GitLab CE |
|---|---|---|
| حداقل رم | 256 مگابایت (۱ گیگ پیشنهادی) | 4 گیگابایت (8 گیگ پیشنهادی) |
| حداقل CPU | 1 هسته | 4 هسته |
| زبان برنامهنویسی | Go (باینری واحد) | Ruby on Rails |
| زمان نصب | کمتر از 10 دقیقه | 30 تا 60 دقیقه |
| CI/CD | Gitea Actions (سازگار با GitHub Actions) | GitLab CI/CD (پیشرفته) |
| مناسب برای | تیمهای 1 تا 50 نفره | سازمانهای 50+ نفره |
| Package Registry | 20+ نوع (npm, PyPI, Maven…) | کامل + Container Registry |
| لایسنس | MIT (کاملاً رایگان) | CE رایگان / EE پولی |
🎯 Gitea مناسب شماست اگر:
قبل از شروع نصب مطمئن شوید موارد زیر آماده است:
git.yourdomain.comدر این بخش همراه تیم وبداده باشید تا بهصورت عملی نصب Gitea روی سرور مجازی لینوکس را انجام دهیم. تمام مراحل بر اساس داکیومنت رسمی Gitea در آدرس docs.gitea.com تستشده هستند.
🔸 سناریوی آموزشی:
WebDade.com
🖥️ سرور مجازی اوبونتو 24.04
├─ CPU: 1 Core
├─ RAM: 1 GB
├─ Storage: 20 GB NVMe SSD
└─ Gitea v1.25.x + SQLite
ابتدا وارد سرور مجازی لینوکس خود شوید و پکیجها را بهروزرسانی کنید. سپس Git و ابزارهای ضروری را نصب کنید. برای این کار پس از ورود به ترمینال سرور لینوکسی (از طریق SSH یا برنامه پوتی)، دستورهای زیر را به ترتیب در ترمینال لینوکس وارد کنید:
sudo apt update && sudo apt upgrade -y
sudo apt install git wget curl -y 

در ادامه با استفاده از کامند زیر نسخه Git یا Git Version را بررسی کنید (حداقل نسخه 2.0 لازم است):
git --version همانطور که در تصویر زیر مشاهده می کنید ورژن گیت سرور من 2.43.0 است.

طبق توصیه مستندات رسمی Gitea؛ این سرویس باید با یک کاربر غیر root اجرا شود. دستور زیر را در ترمینال سرور (همان محیط SSH که به سرور وصل شدهاید) وارد کنید تا یک کاربر سیستمی بدون رمز عبور به نام git بسازید:
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git 
این کاربر فقط از طریق سرویس Gitea قابل استفاده است و دایرکتوری خانه آن /home/git خواهد بود.
آخرین نسخه پایدار Gitea را از سایت رسمی دانلود کنید. طبق داکیومنت Gitea در زمان نگارش این مقاله نسخه 1.25.4 آخرین ریلیز پایدار است. برای نصب Gitea روی سرور مجازی سه دستور زیر را به ترتیب در ترمینال سرور وارد کنید:
/tmp ذخیره میکند./usr/local/bin منتقل میکند تا از هر جای سیستم قابل اجرا باشد.wget -O /tmp/gitea https://dl.gitea.com/gitea/1.25.4/gitea-1.25.4-linux-amd64
sudo mv /tmp/gitea /usr/local/bin/gitea
sudo chmod +x /usr/local/bin/gitea 
در ادامه صحت نصب گیت را با استفاده از کامند زیر بررسی کنید:
gitea --version Gitea به دایرکتوریهای مشخصی برای ذخیره تنظیمات، دادهها و لاگ نیاز دارد پس دستورهای زیر را به ترتیب در ترمینال سرور لینوکس خود اجرا کنید:
custom (شخصیسازی)، data (دادهها) و log (گزارشها) را میسازد؛ مالکیت آنها را به کاربر git میدهد و دسترسی را محدود میکند./etc/gitea را میسازد و دسترسی آن را طوری تنظیم میکند که Gitea بتواند فایل app.ini را در آن بنویسد.sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir -p /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea 
/etc/gitea موقتاً روی 770 تنظیم شده تا نصبکننده وب بتواند فایل تنظیمات را بنویسد. بعد از اتمام پیکربندی اولیه حتماً آن را به 750 تغییر دهید.برای اجرای خودکار Gitea با بوت سرور، یک فایل سرویس بسازید برای این کار وارد محیط ویرایش فایل شوید و یک فایل سرویس به نام gitea.service بسازید:
sudo nano /etc/systemd/system/gitea.service محتوای زیر را در فایل gitea.service که با nano باز کردهاید کپی کنید:
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[Service]
RestartSec=3s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target 
بعد از کپی کردن محتوا، کلیدهای Ctrl + O را بزنید و Enter کنید تا فایل ذخیره شود؛ سپس Ctrl + X را بزنید تا از محیط ویرایشگر nano خارج شوید.
در ادامه به کمک دستورهای زیر سرویس را فعال و اجرا کنید:
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
sudo systemctl status gitea ✅ اگر همه چیز درست باشد؛ در خروجی دستور آخر عبارت active (running) را به رنگ سبز میبینید. این یعنی Gitea روی پورت 3000 در حال اجراست برای خروج از صفحه وضعیت کلید Q را بزنید تا به ترمینال برگردید.

پس از انجام تمام مراحل قبل، نوبت آن است که مرورگرتان را باز کنید و آدرس http://YOUR_SERVER_IP:3000 را وارد کنید. (دقت داشته باشید که به جای عبارت YOUR_SERVER_IP می بایست آدرس آی پی سرور را وارد کنید).
صفحه تنظیمات اولیه Gitea نمایش داده میشود.
در صفحه Initial Configuration تنظیمات کلیدی برای نصب سرور گیت خصوصی:
/home/git/gitea-repositorieshttp://git.yourdomain.com:3000/
در انتها پس از وارد کردن تنظیمات برای ذخیره و اتمام مرحله نصب و راه اندازی سرور Git اختصاصی روی دکمه Install Gitea کلیک کنید. به این ترتیب مشاهده صفحه زیر به این معناست که شما موفق به راه اندازی و نصب سرور گیت اختصاصی شده اید.

📌 بعد از ذخیره تنظیمات دسترسی دایرکتوری تنظیمات را محدود کنید:
sudo chmod 750 /etc/gitea نصب Gitea به اتمام رسید؛ اما بدون تنظیمات امنیتی سرور شما آسیبپذیر خواهد بود. این بخش را حتماً اجرا کنید.
در فایروال با استفاده از کامندهای زیر فقط پورتهای ضروری را باز بگذارید:
sudo ufw allow 22/tcp # SSH
sudo ufw allow 3000/tcp # Gitea Web
sudo ufw enable برای استفاده از SSL و دامنه اختصاصی Nginx را بهعنوان Reverse Proxy تنظیم کنید:
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/gitea محتوای زیر را در این فایل کپی کنید. این تنظیمات به Nginx میگوید که تمام درخواستهای ورودی روی دامنه شما را به پورت 3000 (جایی که Gitea اجرا میشود) هدایت کند:
server {
listen 80;
server_name git.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
} حالا باید فایل تنظیمات را فعال کنید، صحت آن را بررسی کنید و Nginx را ریستارت کنید تا تغییرات اعمال شود. پس دستورهای زیر را برای سرور گیت خصوصی خود به ترتیب اجرا کنید:
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx sudo certbot --nginx -d git.yourdomain.com ارتباط را رمزنگاری میکند. توجه داشته باشید بعد از فعالسازی SSL در فایل app.ini مقدار ROOT_URL را به https:// تغییر دهید؛ اما PROTOCOL را روی http نگه دارید چون Nginx ترافیک HTTPS را مدیریت میکند.اگر سرور Git فقط برای تیم شماست ثبتنام عمومی را ببندید:
sudo nano /etc/gitea/app.ini [service]
DISABLE_REGISTRATION = true sudo systemctl restart gitea بعد از ورود با حساب ادمین از مسیر Site Administration → User Accounts → Create User برای هر عضو تیم حساب کاربری بسازید. گزینه “Must Change Password” را فعال کنید تا هر کاربر رمز خودش را انتخاب کند.
برای ساخت اولین ریپازیتوری روی دکمه “+” کلیک کنید و New Repository را بزنید. نام پروژه را وارد کنید و حتماً Visibility را روی Private بگذارید.
سپس ترمینال سیستم محلی خودتان (لپتاپ یا کامپیوتر شخصی؛ نه سرور) را باز کنید. دستورات زیر ریپازیتوری را از سرور Gitea دانلود میکنند، یک فایل README میسازند و اولین commit را به سرور Push میکنند:
git clone http://git.yourdomain.com/username/my-project.git
cd my-project
echo "# My Project" > README.md
git add .
git commit -m "Initial commit"
git push origin main استفاده از SSH Key هم امنتر و هم راحتتر از رمز عبور است. روی سیستم محلی SSH Key بسازید:
ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub کلید عمومی را از مسیر Settings → SSH/GPG Keys → Add Key در پنل Gitea اضافه کنید. حالا میتوانید از SSH استفاده کنید:
git clone git@git.yourdomain.com:username/my-project.git 📌 اگر پورت SSH تغییر کرده در فایل ~/.ssh/config تنظیم کنید:
Host git.yourdomain.com
Port 2222
IdentityFile ~/.ssh/id_ed25519 پشتیبانگیری منظم حیاتی است. Gitea ابزار بکاپ داخلی دارد که ریپازیتوریها، دیتابیس و تنظیمات را در یک فایل فشرده ذخیره میکند:
sudo -u git /usr/local/bin/gitea dump -c /etc/gitea/app.ini --work-path /var/lib/gitea برای خودکارسازی بکاپ شبانه:
sudo crontab -u git -e 0 2 * * * /usr/local/bin/gitea dump -c /etc/gitea/app.ini --work-path /var/lib/gitea --file /home/git/backups/gitea-$(date +\%Y\%m\%d).zip ⚠️ هشدار مهم: فایلهای بکاپ را فقط روی همان سرور نگه ندارید. حتماً یک کپی را به سرور یا فضای ذخیرهسازی ابری دیگری منتقل کنید تا در صورت خرابی دیسک دادهها از دست نروند.
برای اجرای بهینه Gitea بهعنوان سرور گیت تیمی یک VPS با مشخصات مناسب لازم است. وب داده سرور مجازی لینوکس با ویژگیهای زیر ارائه میدهد:
✅ سیستمعامل اوبونتو 24.04 آماده با قابلیت نصب با یک کلیک
✅ حداقل 1 گیگابایت رم (مناسب تیمهای 1 تا 10 نفره)
✅ دیسک NVMe SSD پرسرعت
✅ پشتیبانی فنی 24 ساعته
✅ لوکیشنهای متنوع: ایران، هلند، آلمان، فرانسه و آمریکا
در این مقاله یاد گرفتید چگونه با نصب Gitea روی سرور مجازی لینوکس یک مخزن Git خصوصی کامل برای تیم برنامهنویسی خود راهاندازی کنید. از پیکربندی اولیه تا تنظیمات امنیتی، ساخت ریپازیتوری خصوصی، اتصال SSH و پشتیبانگیری خودکار را پوشش دادیم.
Gitea بهعنوان جایگزین سبک GitHub و GitLab با مصرف حداقل ۱ گیگابایت رم و نصب در کمتر از 30دقیقه گزینهای هوشمندانه برای تیمهایی است که استقلال، امنیت و کنترل کامل روی کد را میخواهند. اگر تیم شما رشد کرد Gitea Actions (سازگار با GitHub Actions) امکان CI/CD را فراهم میکند و مهاجرت به GitLab هم در آینده امکانپذیر است.
در صورتی که سوالی داشتید میتوانید در بخش نظرات با ما در ارتباط باشید. امیدواریم این مقاله از بلاگ وب داده برای شما مفید بوده باشد.
بله؛ Gitea تحت لایسنس MIT کاملاً رایگان و متنباز است. هیچ نسخه پولی، محدودیت تعداد کاربر یا ریپازیتوری ندارد. تنها هزینه شما سرور مجازی برای میزبانی آن است.