Github 私有项目授权许可平台 GitStore v1.0.0

2 天前
 JameSupeReal

🛍️ GitStore

插件商店和许可证管理平台

专为 Github 私有项目设计的商业分发平台,支持永久许可证 + 时限维护的创新授权模式。

做这个项目是因为自己有一些 Github 的小玩意,想拿来换点小钱,但没有一个趁手的授权程序,就自己和 AI 双排(主要是 AI)撸了一个。

Github https://github.com/nodeloc/gitstore

Demo https://discourseplugin.com


💡 为什么选择 Git-Store ?

你是一位 GitHub 开源开发者吗?想要将你的创意项目变现,同时保持开源精神?

Git-Store 解决了插件开发者的变现难题:

完美适用于:

不再担心盗版和许可证验证。开始从你的创意中获得收益。


✨ 核心特性

🎯 独特的授权模式

🔐 GitHub 深度集成

💳 多种支付方式

支付方式 覆盖地区 状态
💎 Stripe 全球 ✅ 已集成
💚 支付宝 中国 ✅ 已集成

📧 智能通知系统

📊 数据分析


🏗️ 技术架构

后端 Go 1.21+ / Gin Framework / GORM
前端 Vue 3.4 / Vite 5 / TailwindCSS / DaisyUI
数据库 PostgreSQL 14+
认证 GitHub OAuth + JWT
支付 Stripe / PayPal / Alipay
部署 Docker / Nginx Proxy Manager

🚀 快速部署

方式一:Docker 一键部署(推荐)

# 1. 克隆代码
git clone https://github.com/nodeloc/gitstore.git /opt/gitstore
cd /opt/gitstore

# 2. 配置环境变量
cp .env.example .env
nano .env  # 修改必要的配置

# 3. 执行部署脚本
export DOMAIN="your-domain.com"
sudo ./deploy.sh

部署完成后访问 http://YOUR_SERVER_IP:81 配置 Nginx Proxy Manager 。

详细步骤请参考 NPM_SETUP.md

方式二:本地开发

# 1. 启动数据库(使用 Docker )
docker-compose up -d postgres

# 2. 运行迁移
psql -h localhost -p 5433 -U postgres -d git_store < migrations/001_initial_schema.sql

# 3. 启动后端
go run main.go

# 4. 启动前端
cd frontend
npm install
npm run dev

访问 http://localhost:3001


⚙️ 配置指南

1️⃣ GitHub OAuth 应用

访问 GitHub Developer Settings 创建 OAuth App:

获取 Client IDClient Secret

2️⃣ GitHub 个人访问令牌

为了管理已购插件的仓库访问权限,你需要一个 GitHub 个人访问令牌:

  1. 访问 GitHub Tokens
  2. 点击「 Generate new token (classic)」
  3. 配置令牌:
    • Note: gitstore admin token
    • Expiration: No expiration (或自定义)
    • Scopes: 选择 admin:orgwrite:org(用于管理组织成员)
  4. 生成并复制令牌

添加到 .env

GITHUB_ADMIN_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

说明:此令牌用于在用户购买/过期插件时,自动添加/移除用户到你的 GitHub 组织。

管理员配置

ADMIN_EMAIL=admin@example.com
ADMIN_GITHUB_ID=your_github_user_id

设置为管理员的 Github 邮箱和用户名,使用 Github 登录时,会自动将此用户设置为管理员。

3️⃣ Stripe 支付配置

访问 Stripe Dashboard

STRIPE_SECRET_KEY=sk_live_xxx        # 生产环境用 live ,测试用 test
STRIPE_PUBLISHABLE_KEY=pk_live_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx

创建 Webhook(用于接收支付状态):

4️⃣ 环境变量配置

完整的 .env 配置示例:

# 应用配置
APP_ENV=production
APP_PORT=8080
APP_URL=https://your-domain.com
FRONTEND_URL=https://your-domain.com

# 数据库
DB_HOST=postgres
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=your_strong_password
DB_NAME=git_store

# GitHub OAuth
GITHUB_CLIENT_ID=your_client_id
GITHUB_CLIENT_SECRET=your_client_secret
GITHUB_REDIRECT_URL=https://your-domain.com/api/auth/github/callback
GITHUB_ORG_NAME=your-org-name
GITHUB_ADMIN_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

# JWT
JWT_SECRET=your-random-64-character-secret-key
JWT_EXPIRY_HOURS=720

# Stripe
STRIPE_SECRET_KEY=sk_live_xxx
STRIPE_PUBLISHABLE_KEY=pk_live_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx

# 邮件(可选)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_FROM=noreply@your-domain.com

🎮 使用流程

管理员端

  1. 登录后台:使用 GitHub 账号登录
  2. 创建分类:为插件设置分类(如:功能增强、主题美化)
  3. 添加插件
    • 填写插件名称、描述、价格
    • 设置 GitHub 仓库地址
    • 配置默认维护期(月)
  4. 管理订单:查看订单状态、收入统计

用户端

  1. 浏览插件:在商店浏览可用插件
  2. 购买插件:选择插件,使用 Stripe 完成支付
  3. 获取访问权:自动获得 GitHub 私有仓库访问权限
  4. 安装插件:通过 GitHub 克隆/下载插件代码
  5. 维护续费:到期前可续费延长更新权限

整个项目基本都是 AI 写的。花了大概 2 天时间打磨了一下细节。

236 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1191492

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX