{"id":51038901,"url":"https://github.com/ipmartnetwork/ipmartgit","last_synced_at":"2026-06-22T09:01:16.055Z","repository":{"id":359331566,"uuid":"1245545925","full_name":"iPmartNetwork/iPmartGit","owner":"iPmartNetwork","description":"🚀 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.","archived":false,"fork":false,"pushed_at":"2026-05-21T19:19:25.000Z","size":1630,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-21T19:35:27.221Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iPmartNetwork.png","metadata":{"files":{"readme":"README-FA.md","changelog":"CHANGELOG-FA.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T10:18:41.000Z","updated_at":"2026-05-21T19:20:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/iPmartNetwork/iPmartGit","commit_stats":null,"previous_names":["ipmartnetwork/ipmartgit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/iPmartNetwork/iPmartGit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FiPmartGit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FiPmartGit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FiPmartGit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FiPmartGit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iPmartNetwork","download_url":"https://codeload.github.com/iPmartNetwork/iPmartGit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FiPmartGit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34641636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-22T09:01:14.945Z","updated_at":"2026-06-22T09:01:16.048Z","avatar_url":"https://github.com/iPmartNetwork.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\" dir=\"rtl\"\u003e\n\n\u003cimg src=\"img/iPmartGit2.png\" alt=\"iPmartGit\" width=\"150\"\u003e\n\n# iPmartGit\n\n### کد شما. سرور شما. قوانین شما.\n\nپلتفرم مدیریت کد سلف‌هاست برای تیم‌هایی که کنترل کامل روی سورس‌کد خود می‌خواهند — بدون وابستگی به فضای ابری، بدون نیاز به اینترنت بین‌المللی.\n\n[![Node.js](https://img.shields.io/badge/Node.js-18+-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org)\n[![SQLite](https://img.shields.io/badge/SQLite-3-003B57?style=flat-square\u0026logo=sqlite\u0026logoColor=white)](https://sqlite.org)\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white)](https://docker.com)\n[![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE)\n[![GitHub Stars](https://img.shields.io/github/stars/iPmartNetwork/iPmartGit?style=flat-square\u0026color=yellow)](https://github.com/iPmartNetwork/iPmartGit/stargazers)\n\n[نصب سریع](#-نصب-سریع) · [قابلیت‌ها](#-قابلیتها) · [استقرار روی سرور](#-استقرار-روی-سرور) · [داکر](#-داکر) · [API](#-api) · [مشارکت](#-مشارکت)\n\n---\n\n\u003cimg src=\"img/iPmartGit.png\" width=\"500\" alt=\"iPmartGit Logo\"\u003e\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv dir=\"rtl\"\u003e\n\n## 🤔 چرا iPmartGit؟\n\n| مشکل | راه‌حل iPmartGit |\n|------|-----------------|\n| GitHub/GitLab مسدود یا کند است | ۱۰۰٪ روی سرور محلی شما اجرا می‌شود |\n| نیاز به سرور Git خصوصی | بدون پیکربندی — SQLite داخلی |\n| نصب پیچیده (Gitea, GitLab) | فقط `npm install \u0026\u0026 npm start` |\n| تیم نیاز به ابزار همکاری دارد | PR، Code Review، Issues، سازمان‌ها |\n| منابع سرور محدود | با ۵۱۲ مگابایت RAM اجرا می‌شود |\n\n---\n\n## ⚡ نصب سریع\n\n### نصب یک‌خطی (سرور لینوکس)\n\n\u003c/div\u003e\n\n```bash\nbash \u003c(curl -s https://raw.githubusercontent.com/iPmartNetwork/iPmartGit/master/deploy-iran.sh)\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### نصب دستی\n\n\u003c/div\u003e\n\n```bash\ngit clone https://github.com/iPmartNetwork/iPmartGit.git\ncd iPmartGit\nnpm install\nnpm run setup\nnpm start\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\nمرورگر را باز کنید: **http://localhost:3000** → ورود: `admin` / `admin123`\n\n\u003e ⚠️ بلافاصله بعد از اولین ورود، نام کاربری و رمز عبور ادمین را از صفحه تنظیمات تغییر دهید.\n\n---\n\n## 🎯 قابلیت‌ها\n\n### 📦 مدیریت ریپازیتوری\n- ایجاد ریپازیتوری عمومی و خصوصی\n- Fork کردن ریپازیتوری‌ها\n- آپلود فایل (کشیدن و رها کردن)\n- ویرایش آنلاین فایل‌ها با Syntax Highlighting\n- دانلود به صورت ZIP\n- میرور از GitHub با قابلیت سینک\n\n### 🔀 Pull Request و Code Review\n- ایجاد PR بین fork ها\n- کامنت خط به خط روی کد\n- تأیید / درخواست تغییرات / کامنت\n- Merge با یک کلیک\n- نمایش فایل‌های تغییر یافته\n\n### 🏢 تیم‌ها و سازمان‌ها\n- ایجاد سازمان\n- نقش‌های عضو: مالک / ادمین / عضو\n- ریپازیتوری‌های مشترک تیمی\n- سطوح دسترسی همکاران (خواندن / نوشتن / ادمین)\n\n### 🐛 Issues و مدیریت پروژه\n- سیستم کامل Issue Tracker\n- کامنت و بحث\n- برچسب‌ها با رنگ دلخواه\n- Milestone با تاریخ سررسید\n- گردش کار باز/بسته\n\n### 🔐 امنیت و احراز هویت\n- احراز هویت مبتنی بر Session\n- توکن‌های API برای دسترسی برنامه‌ای\n- هش رمز عبور با bcrypt\n- محدودیت نرخ درخواست (Rate Limiting)\n- کنترل دسترسی ریپازیتوری خصوصی\n- تغییر نام کاربری و رمز عبور ادمین از تنظیمات\n\n### 🚀 آماده DevOps\n- پروتکل Git HTTP (واقعی `git clone` / `git push`)\n- Releases با فایل‌های پیوست\n- Import/Export (پشتیبان‌گیری کامل به JSON)\n- Docker و Docker Compose\n- اسکریپت استقرار خودکار\n- سرویس Systemd\n\n### ✨ تجربه کاربری\n- 🎨 **Syntax Highlighting** — بیش از ۳۰ زبان\n- 🌗 **تم تاریک / روشن** — تغییر با `Ctrl+Shift+T`\n- ⌨️ **میانبرهای کیبورد** — `?` را بزنید\n- 📜 **تاریخچه فایل** — ردیابی نسخه‌ها با Diff بصری\n- 🔍 **جستجوی کد** — جستجو در محتوای فایل‌ها\n- 📰 **فید فعالیت** — ببینید چه اتفاقی می‌افتد\n- 🔔 **اعلان‌ها** — ستاره، Issue، PR، کامنت\n- 📱 **ریسپانسیو** — سازگار با موبایل\n- 🇮🇷 **رابط فارسی RTL** — پشتیبانی کامل راست‌به‌چپ\n\n---\n\n## 🖥️ استقرار روی سرور\n\n### استقرار یک‌دستوری (Ubuntu/Debian)\n\n\u003c/div\u003e\n\n```bash\n# پروژه را به سرور منتقل کنید، سپس:\nchmod +x deploy-iran.sh\nsudo bash deploy-iran.sh\n\n# با دامنه اختصاصی:\nsudo bash deploy-iran.sh git.yourdomain.com\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\nاین اسکریپت همه کارها را انجام می‌دهد:\n- ✅ نصب Node.js 20، Git، Nginx\n- ✅ ایجاد کاربر سیستم و دایرکتوری‌ها\n- ✅ نصب وابستگی‌ها\n- ✅ راه‌اندازی سرویس systemd (ریستارت خودکار)\n- ✅ پیکربندی Nginx reverse proxy\n- ✅ تولید کلید امن Session\n\n### حداقل سیستم مورد نیاز\n\n| | حداقل | توصیه شده |\n|---|-------|-----------|\n| **CPU** | ۱ هسته | ۲+ هسته |\n| **RAM** | ۵۱۲ مگابایت | ۱ گیگابایت+ |\n| **دیسک** | ۱ گیگابایت | ۱۰ گیگابایت+ |\n| **سیستم‌عامل** | Ubuntu 20.04+ | Ubuntu 22.04/24.04 |\n| **Node.js** | ۱۸ | ۲۰ LTS |\n\n---\n\n## 🐳 داکر\n\n\u003c/div\u003e\n\n```bash\n# اجرای iPmartGit\ndocker-compose up -d\n\n# با Nginx reverse proxy\ndocker-compose --profile with-nginx up -d\n\n# مشاهده لاگ\ndocker logs -f ipmartgit\n\n# توقف\ndocker-compose down\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### متغیرهای محیطی\n\n\u003c/div\u003e\n\n```env\nPORT=3000\nSESSION_SECRET=your-secret-key-here\nNODE_ENV=production\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\n---\n\n## 🔗 پروتکل Git\n\niPmartGit از پروتکل استاندارد Git HTTP پشتیبانی می‌کند:\n\n\u003c/div\u003e\n\n```bash\n# Clone\ngit clone http://your-server/git/username/repo.git\n\n# Push (با نام کاربری + رمز عبور یا توکن API)\ngit push origin main\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### توکن‌های API\n\nاز مسیر **تنظیمات → توکن‌های API** توکن بسازید و به جای رمز عبور در Git و CI/CD استفاده کنید.\n\n---\n\n## 📡 API\n\n| مسیر | متد | توضیح |\n|------|------|-------|\n| `/api/repos` | GET | لیست ریپازیتوری‌های عمومی |\n| `/api/repos/:owner/:repo` | GET | جزئیات ریپازیتوری + فایل‌ها |\n| `/api/repos/:owner/:repo/file/*` | GET | محتوای فایل |\n| `/api/repos/:owner/:repo/search?q=` | GET | جستجو در کد |\n| `/api/repos/:owner/:repo/download` | GET | دانلود ZIP |\n| `/api/repos/:owner/:repo/issues` | GET | لیست Issues |\n| `/api/users/:username` | GET | پروفایل کاربر |\n| `/api/stats` | GET | آمار پلتفرم |\n| `/api/explore` | GET | ریپازیتوری‌های محبوب |\n\n---\n\n## 🏗️ معماری پروژه\n\n\u003c/div\u003e\n\n```\niPmartGit/\n├── server.js              # نقطه ورود Express\n├── db/database.js         # اسکیمای SQLite (۲۰+ جدول)\n├── lib/cache.js           # لایه کش حافظه‌ای\n├── routes/\n│   ├── api.js             # API عمومی\n│   ├── auth.js            # احراز هویت\n│   ├── repos.js           # CRUD ریپازیتوری\n│   ├── git-http.js        # پروتکل Git\n│   ├── pull-requests.js   # Pull Requests\n│   ├── code-review.js     # بررسی کد خط به خط\n│   ├── releases.js        # Releases و تگ‌ها\n│   ├── organizations.js   # سازمان‌ها\n│   ├── mirror.js          # میرور GitHub\n│   ├── activity.js        # فید فعالیت\n│   ├── notifications.js   # اعلان‌ها\n│   ├── admin.js           # پنل ادمین\n│   └── ...\n├── public/                # فرانت‌اند (HTML/CSS/JS خالص)\n├── Dockerfile\n├── docker-compose.yml\n└── deploy-iran.sh         # اسکریپت استقرار خودکار\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\n### پشته فناوری\n- **Runtime:** Node.js + Express\n- **دیتابیس:** SQLite با better-sqlite3 (بدون پیکربندی)\n- **فرانت‌اند:** Vanilla JS — بدون React، بدون مرحله Build\n- **احراز هویت:** bcrypt + express-session\n- **Syntax:** highlight.js\n\n---\n\n## 🤝 مشارکت\n\nاز مشارکت شما استقبال می‌کنیم! فایل [CONTRIBUTING.md](CONTRIBUTING.md) را ببینید.\n\n\u003c/div\u003e\n\n```bash\n# حالت توسعه (بارگذاری مجدد خودکار)\nnpm run dev\n```\n\n\u003cdiv dir=\"rtl\"\u003e\n\n---\n\n## 📋 نقشه راه\n\n- [ ] پشتیبانی Webhook\n- [ ] احراز هویت دو مرحله‌ای (2FA)\n- [ ] احراز هویت با کلید SSH\n- [ ] رابط مدیریت Branch\n- [ ] صفحات Wiki\n- [ ] اجراکننده CI/CD\n- [ ] سیستم پلاگین\n\nتاریخچه نسخه‌ها را در [CHANGELOG.md](CHANGELOG.md) ببینید.\n\n---\n\n## 📄 لایسنس\n\nMIT License — فایل [LICENSE](LICENSE) را ببینید.\n\n---\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n**ساخته شده با ❤️ توسط [iPmart Network](https://github.com/iPmartNetwork)**\n\nاگر این پروژه برایتان مفید بود، یک ⭐ بدهید\n\n[گزارش باگ](https://github.com/iPmartNetwork/iPmartGit/issues) · [درخواست قابلیت](https://github.com/iPmartNetwork/iPmartGit/issues) · [بحث و گفتگو](https://github.com/iPmartNetwork/iPmartGit/discussions)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipmartnetwork%2Fipmartgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipmartnetwork%2Fipmartgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipmartnetwork%2Fipmartgit/lists"}