mirror of
https://github.com/yusufipk/RepoHub.git
synced 2026-09-11 10:36:07 +00:00
ccea8a40a45894f2d18b69eb3ae6f7b28a53ea1a
RepoHub - Cross-Platform Package Manager
Simplify software installation across Linux, Windows, and macOS with official repositories.
RepoHub provides a unified interface for package discovery and installation across different operating systems.
🚀 Features
- Cross-Platform Support: Works on Linux (Debian, Ubuntu, Arch, Fedora), Windows, and macOS.
- Official Repositories: Access software strictly from trusted, official sources.
- Script Generation: Generate idempotent installation scripts for your selected platform.
- Smart Filtering: efficiently browse and filter packages.
🛠️ Technology Stack
Frontend
- Framework: Next.js 14+ (React)
- Styling: Tailwind CSS
- Icons: Lucide React
- State Management: React Query + Zustand
Backend
- Runtime: Node.js (TypeScript)
- Database: PostgreSQL
- Infrastructure: Docker
🏁 Getting Started
Prerequisites
- Node.js 18+
- npm / pnpm / yarn
- Docker (optional, for database)
Installation
-
Clone the repository:
git clone https://github.com/yusufipk/RepoHub.git cd RepoHub -
Install dependencies:
npm install # or pnpm install -
Set up Environment Variables: Copy
.env.exampleto.envand configure your database connection.cp .env.example .env -
Run the development server:
npm run dev # or pnpm devOpen http://localhost:3000 with your browser to see the result.
🔄 API Usage
Syncing Repositories
You can trigger a repository sync using the API. This is useful for updating the package database.
Endpoint: POST /api/sync
Headers:
Content-Type:application/jsonx-sync-secret: Your sync secret key (required ifSYNC_SERVER_ONLY=true)
Body Parameters:
platform: The platform to sync. Options:debian: Sync Debian packages (Official Repo)ubuntu: Sync Ubuntu packages (Official Repo)arch: Sync Arch Linux packages (Official Repo)aur: Sync Arch User Repository (AUR) packagesfedora: Sync Fedora packages (Official Repo)windows: Sync Windows packages (Winget)macos: Sync macOS packages (Homebrew)all: Sync all platforms
Example Request:
curl -X POST http://localhost:3000/api/sync \
-H "Content-Type: application/json" \
-H "x-sync-secret: your_secret_key" \
-d '{"platform": "all"}'
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Languages
TypeScript
94.2%
JavaScript
3.8%
PLpgSQL
1.5%
CSS
0.5%