- Format Windows winget package IDs for better display (e.g., "Microsoft.VisualStudioCode" → "Visual Studio Code") - Extract last segment from dotted package names and convert CamelCase to spaced format - Add title attribute to package names for full name on hover - Update README with optional icon addition step in contribution guide - Document Simple Icons integration process for new package submissions - Add package icons
7.8 KiB
RepoHub - Çok Platformlu Paket Yöneticisi
🇬🇧 English | 🇹🇷 Türkçe
Linux, Windows ve macOS'te resmi depolardan yazılım kurulumunu basitleştirin.
RepoHub, farklı işletim sistemlerinde paket keşfi ve kurulumu için birleşik bir arayüz sağlar.
🚀 Özellikler
- Çok Platformlu Destek: Linux (Debian, Ubuntu, Arch, Fedora), Windows ve macOS'te çalışır.
- Resmi Depolar: Yazılımlara yalnızca güvenilir, resmi kaynaklardan erişin.
- Script Oluşturma: Seçtiğiniz platform için idempotent kurulum scriptleri oluşturun.
- Akıllı Filtreleme: Paketleri verimli bir şekilde bulun ve filtreleyin.
- Paket İkonları: Popüler paketler için görsel ikonlar ile kolay tanıma.
🛠️ Teknoloji Yığını
Frontend
- Framework: Next.js 14+ (React)
- Stil: Tailwind CSS
- İkonlar: Lucide React
- Durum Yönetimi: React Query + Zustand
Backend
- Runtime: Node.js (TypeScript)
- Veritabanı: PostgreSQL
- Altyapı: Docker
🏁 Başlangıç
Gereksinimler
- Node.js 18+
- pnpm
- Docker (isteğe bağlı, veritabanı için)
Kurulum
-
Depoyu klonlayın:
git clone https://github.com/yusufipk/RepoHub.git cd RepoHub -
Bağımlılıkları yükleyin:
pnpm install -
Ortam Değişkenlerini Ayarlayın:
.env.exampledosyasını.envolarak kopyalayın ve veritabanı bağlantınızı yapılandırın.cp .env.example .env -
Veritabanını Başlatın: Veritabanı şemasını kurmak ve migrasyonları uygulamak için başlatma scriptini çalıştırın.
pnpm init:db -
Geliştirme sunucusunu çalıştırın:
pnpm devTarayıcınızda http://localhost:3000 adresini açın.
🔄 API Kullanımı
Depoları Senkronize Etme
API kullanarak depo senkronizasyonunu tetikleyebilirsiniz. Bu, paket veritabanını güncellemek için kullanışlıdır.
Endpoint: POST /api/sync
Başlıklar:
Content-Type:application/jsonx-sync-secret: Senkronizasyon gizli anahtarınız (SYNC_SERVER_ONLY=trueise gerekli)
Body Parametreleri:
platform: Senkronize edilecek platform. Seçenekler:debian: Debian paketlerini senkronize et (Resmi Repo)ubuntu: Ubuntu paketlerini senkronize et (Resmi Repo)arch: Arch Linux paketlerini senkronize et (Resmi Repo)aur: Arch User Repository (AUR) paketlerini senkronize etfedora: Fedora paketlerini senkronize et (Resmi Repo)windows: Windows paketlerini senkronize et (Winget)macos: macOS paketlerini senkronize et (Homebrew)all: Tüm platformları senkronize et
Örnek İstek:
curl -X POST http://localhost:3000/api/sync \
-H "Content-Type: application/json" \
-H "x-sync-secret: gizli_anahtariniz" \
-d '{"platform": "all"}'
📦 Paket Önerilerine Katkıda Bulunma
🇬🇧 English | 🇹🇷 Türkçe
RepoHub, kullanıcılara kişiselleştirilmiş öneriler sunmak için düzenlenmiş paket listeleri kullanır. Paket ekleyerek bu önerileri geliştirmeye yardımcı olabilirsiniz!
Paket Nasıl Eklenir
Paket önerileri /src/data/recommendationPresets.ts dosyasında saklanır. İşte bir paket ekleme adımları:
1. Doğru Konumu Bulun
Paketinizin ait olduğu platform ve kategoriye gidin:
export const PACKAGE_PRESETS = {
windows: {
development: ["Git.Git", "Microsoft.VisualStudioCode"],
design: ["GIMP.GIMP", "Inkscape.Inkscape"],
// ... diğer kategoriler
},
// ... diğer platformlar
}
Mevcut Platformlar:
windows- Windows (Winget)macos- macOS (Homebrew)ubuntu- Ubuntu (APT)debian- Debian (APT)arch- Arch Linux (Pacman/AUR)fedora- Fedora (DNF)
Mevcut Kategoriler:
development- Geliştirme araçları, IDE'ler, derleyicilerdesign- Grafik, kreatif yazılımlarmultimedia- Medya oynatıcılar, editörlersystem-tools- Sistem araçlarıgaming- Oyun başlatıcıları, platformlarproductivity- Ofis, tarayıcılar, üretkenlik uygulamalarıeducation- Eğitim yazılımları
2. Doğru Paket Adını Alın
⚠️ KRİTİK: Paket adları veritabanında göründükleri gibi tam olarak eşleşmelidir.
Platformlara göre paket adı formatları:
- Windows:
Yayinci.PaketAdi(örn.,Microsoft.VisualStudioCode) - macOS: kucuk-harf-tireli (örn.,
visual-studio-code) - Linux: küçük harf, dağıtıma göre değişir (örn.,
code,docker.io)
3. Paketin Var Olduğunu Doğrulayın
Seçenek A: Doğrulama Scriptini Kullanma (Önerilen)
Veritabanı erişiminiz varsa:
# Belirli bir platformu doğrula
npm run validate:presets -- windows
# Birden fazla platformu doğrula
npm run validate:presets -- ubuntu debian arch
# Tüm platformları doğrula
npm run validate:presets -- --all
Script şunları gösterecek:
- ✅ Veritabanında bulunan paketler
- ❌ Bulunamayan paketler
- 💡 Benzer paket önerileri
Seçenek B: Manuel Doğrulama
Veritabanı erişiminiz yoksa:
- Canlı RepoHub web sitesinde arama yapın
- Arama sonuçlarında paketinizi bulun
- Görüntülenen tam paket adını kopyalayın
- Veya resmi paket depolarını kontrol edin:
- Windows: winget.run
- macOS:
brew search <paket> - Ubuntu/Debian:
apt search <paket> - Arch: archlinux.org/packages
- Fedora: packages.fedoraproject.org
4. Paketi Ekleyin
Paket adını diziye ekleyin:
windows: {
development: [
"Git.Git",
"Microsoft.VisualStudioCode",
"Docker.DockerDesktop" // ← Yeni paketiniz
]
}
5. İkon Ekleyin (İsteğe Bağlı)
Paketin önerilerde daha iyi görünmesi için PACKAGE_ICONS içine bir ikon eşlemesi ekleyin:
- Simple Icons'da paket slug'ını bulun
src/data/recommendationPresets.tsdosyasındakiPACKAGE_ICONSnesnesine ekleyin:
export const PACKAGE_ICONS: Record<string, string> = {
// ...
"Docker.DockerDesktop": "docker", // Anahtar paket adıyla eşleşmeli, Değer Simple Icons slug'ı olmalı
// ...
};
İkon eklenmezse, varsayılan paket ikonu kullanılacaktır.
6. Değişikliklerinizi Test Edin
-
Doğrulamayı çalıştırın:
npm run validate:presets -- windows -
Geliştirme sunucusunu başlatın:
npm run dev -
Uygulamada test edin:
- Onboarding'i tamamlayın
- İlgili kategoriyi seçin
- Paketinizin önerilerde görünüp görünmediğini kontrol edin
En İyi Uygulamalar
YAPIN ✅
- Doğrulama scriptini kullanarak paket adlarını doğrulayın
- Popüler, iyi bakımlı paketler ekleyin
- Göndermeden önce test edin
- Resmi depolardan tam paket adlarını kullanın
YAPMAYIN ❌
- Paket adlarını tahmin etmeyin
- Kullanımdan kaldırılmış paketler eklemeyin
- Doğrulamayı atlamayın
- Kategoriler arasında tekrar eklemeyin
Örnek Pull Request
Windows Önerilerine Popüler Geliştirme Araçları Eklendi
- development'a Docker.DockerDesktop eklendi
- development'a Postman.Postman eklendi
- Doğrulama: ✅ Tüm paketler doğrulandı (%100 bulundu)
🤝 Katkıda Bulunma
Katkılar hoş karşılanır! Lütfen Pull Request göndermekten çekinmeyin.
- Projeyi fork edin
- Feature branch'inizi oluşturun (
git checkout -b feature/HarikaBirOzellik) - Değişikliklerinizi commit edin (
git commit -m 'Harika bir özellik ekle') - Branch'inizi push edin (
git push origin feature/HarikaBirOzellik) - Bir Pull Request açın