https://github.com/ipmartnetwork/ipmartgit
🚀 Self-hosted Git platform for teams — A lightweight GitHub alternative designed for servers without international internet access. Features repositories, pull requests, code review, releases, organizations, mirroring, and more. Built with Node.js + SQLite.
https://github.com/ipmartnetwork/ipmartgit
Last synced: about 2 months ago
JSON representation
🚀 Self-hosted Git platform for teams — A lightweight GitHub alternative designed for servers without international internet access. Features repositories, pull requests, code review, releases, organizations, mirroring, and more. Built with Node.js + SQLite.
- Host: GitHub
- URL: https://github.com/ipmartnetwork/ipmartgit
- Owner: iPmartNetwork
- License: mit
- Created: 2026-05-21T10:18:41.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-05-21T19:19:25.000Z (3 months ago)
- Last Synced: 2026-05-21T19:35:27.221Z (3 months ago)
- Language: JavaScript
- Size: 1.55 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-FA.md
- Changelog: CHANGELOG-FA.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README

# iPmartGit
### کد شما. سرور شما. قوانین شما.
پلتفرم مدیریت کد سلفهاست برای تیمهایی که کنترل کامل روی سورسکد خود میخواهند — بدون وابستگی به فضای ابری، بدون نیاز به اینترنت بینالمللی.
[](https://nodejs.org)
[](https://sqlite.org)
[](https://docker.com)
[](LICENSE)
[](https://github.com/iPmartNetwork/iPmartGit/stargazers)
[نصب سریع](#-نصب-سریع) · [قابلیتها](#-قابلیتها) · [استقرار روی سرور](#-استقرار-روی-سرور) · [داکر](#-داکر) · [API](#-api) · [مشارکت](#-مشارکت)
---

---
## 🤔 چرا iPmartGit؟
| مشکل | راهحل iPmartGit |
|------|-----------------|
| GitHub/GitLab مسدود یا کند است | ۱۰۰٪ روی سرور محلی شما اجرا میشود |
| نیاز به سرور Git خصوصی | بدون پیکربندی — SQLite داخلی |
| نصب پیچیده (Gitea, GitLab) | فقط `npm install && npm start` |
| تیم نیاز به ابزار همکاری دارد | PR، Code Review، Issues، سازمانها |
| منابع سرور محدود | با ۵۱۲ مگابایت RAM اجرا میشود |
---
## ⚡ نصب سریع
### نصب یکخطی (سرور لینوکس)
```bash
bash <(curl -s https://raw.githubusercontent.com/iPmartNetwork/iPmartGit/master/deploy-iran.sh)
```
### نصب دستی
```bash
git clone https://github.com/iPmartNetwork/iPmartGit.git
cd iPmartGit
npm install
npm run setup
npm start
```
مرورگر را باز کنید: **http://localhost:3000** → ورود: `admin` / `admin123`
> ⚠️ بلافاصله بعد از اولین ورود، نام کاربری و رمز عبور ادمین را از صفحه تنظیمات تغییر دهید.
---
## 🎯 قابلیتها
### 📦 مدیریت ریپازیتوری
- ایجاد ریپازیتوری عمومی و خصوصی
- Fork کردن ریپازیتوریها
- آپلود فایل (کشیدن و رها کردن)
- ویرایش آنلاین فایلها با Syntax Highlighting
- دانلود به صورت ZIP
- میرور از GitHub با قابلیت سینک
### 🔀 Pull Request و Code Review
- ایجاد PR بین fork ها
- کامنت خط به خط روی کد
- تأیید / درخواست تغییرات / کامنت
- Merge با یک کلیک
- نمایش فایلهای تغییر یافته
### 🏢 تیمها و سازمانها
- ایجاد سازمان
- نقشهای عضو: مالک / ادمین / عضو
- ریپازیتوریهای مشترک تیمی
- سطوح دسترسی همکاران (خواندن / نوشتن / ادمین)
### 🐛 Issues و مدیریت پروژه
- سیستم کامل Issue Tracker
- کامنت و بحث
- برچسبها با رنگ دلخواه
- Milestone با تاریخ سررسید
- گردش کار باز/بسته
### 🔐 امنیت و احراز هویت
- احراز هویت مبتنی بر Session
- توکنهای API برای دسترسی برنامهای
- هش رمز عبور با bcrypt
- محدودیت نرخ درخواست (Rate Limiting)
- کنترل دسترسی ریپازیتوری خصوصی
- تغییر نام کاربری و رمز عبور ادمین از تنظیمات
### 🚀 آماده DevOps
- پروتکل Git HTTP (واقعی `git clone` / `git push`)
- Releases با فایلهای پیوست
- Import/Export (پشتیبانگیری کامل به JSON)
- Docker و Docker Compose
- اسکریپت استقرار خودکار
- سرویس Systemd
### ✨ تجربه کاربری
- 🎨 **Syntax Highlighting** — بیش از ۳۰ زبان
- 🌗 **تم تاریک / روشن** — تغییر با `Ctrl+Shift+T`
- ⌨️ **میانبرهای کیبورد** — `?` را بزنید
- 📜 **تاریخچه فایل** — ردیابی نسخهها با Diff بصری
- 🔍 **جستجوی کد** — جستجو در محتوای فایلها
- 📰 **فید فعالیت** — ببینید چه اتفاقی میافتد
- 🔔 **اعلانها** — ستاره، Issue، PR، کامنت
- 📱 **ریسپانسیو** — سازگار با موبایل
- 🇮🇷 **رابط فارسی RTL** — پشتیبانی کامل راستبهچپ
---
## 🖥️ استقرار روی سرور
### استقرار یکدستوری (Ubuntu/Debian)
```bash
# پروژه را به سرور منتقل کنید، سپس:
chmod +x deploy-iran.sh
sudo bash deploy-iran.sh
# با دامنه اختصاصی:
sudo bash deploy-iran.sh git.yourdomain.com
```
این اسکریپت همه کارها را انجام میدهد:
- ✅ نصب Node.js 20، Git، Nginx
- ✅ ایجاد کاربر سیستم و دایرکتوریها
- ✅ نصب وابستگیها
- ✅ راهاندازی سرویس systemd (ریستارت خودکار)
- ✅ پیکربندی Nginx reverse proxy
- ✅ تولید کلید امن Session
### حداقل سیستم مورد نیاز
| | حداقل | توصیه شده |
|---|-------|-----------|
| **CPU** | ۱ هسته | ۲+ هسته |
| **RAM** | ۵۱۲ مگابایت | ۱ گیگابایت+ |
| **دیسک** | ۱ گیگابایت | ۱۰ گیگابایت+ |
| **سیستمعامل** | Ubuntu 20.04+ | Ubuntu 22.04/24.04 |
| **Node.js** | ۱۸ | ۲۰ LTS |
---
## 🐳 داکر
```bash
# اجرای iPmartGit
docker-compose up -d
# با Nginx reverse proxy
docker-compose --profile with-nginx up -d
# مشاهده لاگ
docker logs -f ipmartgit
# توقف
docker-compose down
```
### متغیرهای محیطی
```env
PORT=3000
SESSION_SECRET=your-secret-key-here
NODE_ENV=production
```
---
## 🔗 پروتکل Git
iPmartGit از پروتکل استاندارد Git HTTP پشتیبانی میکند:
```bash
# Clone
git clone http://your-server/git/username/repo.git
# Push (با نام کاربری + رمز عبور یا توکن API)
git push origin main
```
### توکنهای API
از مسیر **تنظیمات → توکنهای API** توکن بسازید و به جای رمز عبور در Git و CI/CD استفاده کنید.
---
## 📡 API
| مسیر | متد | توضیح |
|------|------|-------|
| `/api/repos` | GET | لیست ریپازیتوریهای عمومی |
| `/api/repos/:owner/:repo` | GET | جزئیات ریپازیتوری + فایلها |
| `/api/repos/:owner/:repo/file/*` | GET | محتوای فایل |
| `/api/repos/:owner/:repo/search?q=` | GET | جستجو در کد |
| `/api/repos/:owner/:repo/download` | GET | دانلود ZIP |
| `/api/repos/:owner/:repo/issues` | GET | لیست Issues |
| `/api/users/:username` | GET | پروفایل کاربر |
| `/api/stats` | GET | آمار پلتفرم |
| `/api/explore` | GET | ریپازیتوریهای محبوب |
---
## 🏗️ معماری پروژه
```
iPmartGit/
├── server.js # نقطه ورود Express
├── db/database.js # اسکیمای SQLite (۲۰+ جدول)
├── lib/cache.js # لایه کش حافظهای
├── routes/
│ ├── api.js # API عمومی
│ ├── auth.js # احراز هویت
│ ├── repos.js # CRUD ریپازیتوری
│ ├── git-http.js # پروتکل Git
│ ├── pull-requests.js # Pull Requests
│ ├── code-review.js # بررسی کد خط به خط
│ ├── releases.js # Releases و تگها
│ ├── organizations.js # سازمانها
│ ├── mirror.js # میرور GitHub
│ ├── activity.js # فید فعالیت
│ ├── notifications.js # اعلانها
│ ├── admin.js # پنل ادمین
│ └── ...
├── public/ # فرانتاند (HTML/CSS/JS خالص)
├── Dockerfile
├── docker-compose.yml
└── deploy-iran.sh # اسکریپت استقرار خودکار
```
### پشته فناوری
- **Runtime:** Node.js + Express
- **دیتابیس:** SQLite با better-sqlite3 (بدون پیکربندی)
- **فرانتاند:** Vanilla JS — بدون React، بدون مرحله Build
- **احراز هویت:** bcrypt + express-session
- **Syntax:** highlight.js
---
## 🤝 مشارکت
از مشارکت شما استقبال میکنیم! فایل [CONTRIBUTING.md](CONTRIBUTING.md) را ببینید.
```bash
# حالت توسعه (بارگذاری مجدد خودکار)
npm run dev
```
---
## 📋 نقشه راه
- [ ] پشتیبانی Webhook
- [ ] احراز هویت دو مرحلهای (2FA)
- [ ] احراز هویت با کلید SSH
- [ ] رابط مدیریت Branch
- [ ] صفحات Wiki
- [ ] اجراکننده CI/CD
- [ ] سیستم پلاگین
تاریخچه نسخهها را در [CHANGELOG.md](CHANGELOG.md) ببینید.
---
## 📄 لایسنس
MIT License — فایل [LICENSE](LICENSE) را ببینید.
---
**ساخته شده با ❤️ توسط [iPmart Network](https://github.com/iPmartNetwork)**
اگر این پروژه برایتان مفید بود، یک ⭐ بدهید
[گزارش باگ](https://github.com/iPmartNetwork/iPmartGit/issues) · [درخواست قابلیت](https://github.com/iPmartNetwork/iPmartGit/issues) · [بحث و گفتگو](https://github.com/iPmartNetwork/iPmartGit/discussions)