Skip to content
macbyclpPublic

About

Self-hosted corporate file management platform with role-based access, sharing, versioning, and audit logging (Next.js + Prisma + PostgreSQL).

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

118 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CDrive logo

CDrive

Kurumsal dosyalarınız. Kendi sunucunuzda. Tam kontrolünüzde.

Departman, rol ve izin temelli self-hosted dosya yönetimi ve işbirliği platformu. Google Drive rahatlığı, ama veri sizin diskinizde — şimdi Liquid Glass arayüzü ve iOS PWA uyumuyla.

Canlı Next.js 16 React 19 Prisma PWA Self-hosted

CDrive — Liquid Glass sürücü görünümü

Önce / Sonra

Arayüz baştan tasarlandı (#15). Aynı sayfalar, aynı veri; yalnızca görünüm ve etkileşim değişti.

Önce Sonra
Sürücü (açık) Önce: sürücü, açık tema Sonra: sürücü, açık tema
Sürücü (koyu) Önce: sürücü, koyu tema Sonra: sürücü, koyu tema
Genel bakış Önce: genel bakış Sonra: genel bakış
Yönetim paneli Önce: yönetim paneli Sonra: yönetim paneli
Giriş (koyu) Önce: giriş Sonra: giriş
Telefon (375 px) Önce: telefon Sonra: telefon

Görüntüler yerel bir kurulumda demo verisiyle alındı. Önce: düz indigo/mor tema, telefonda taşan araç çubuğu. Sonra: nötr Liquid Glass, yüzen cam paneller, iOS alt sekme çubuğu.

Liquid Glass neleri getirdi?

  • Nötr cam dili: gri-beyaz-siyah palet, buzlu cam yüzeyler ve zeminde yavaş süzülen ışık lekeleri; açık ve koyu tema.
  • Su efekti: fare düğme, kart ve satırların üstündeyken ışık halkaları su gibi dalgalanır; tıklamada dalga çıkar; zeminde fareyi yumuşakça izleyen bir dalga vardır. Tema menüsündeki Su efekti ve hareket anahtarıyla açılıp kapanır (Sistem: işletim sisteminin "hareketi azalt" ayarını izler).
  • iOS PWA uyumu: safe-area (çentik / home bar), şeffaf durum çubuğu, telefonda alt sekme çubuğu, alttan açılan menü ve diyalog sayfaları (bottom sheet), 16 px girdiler (zoom yok), ≥ 44 px dokunma hedefleri.
  • Erişilebilirlik: saydamlığı azalt camı daha opak yapar, hareketi azalt efektleri kapatabilir; backdrop-filter desteği yoksa opak yedek görünüm.
  • Seçilebilir görünümler: Liquid Glass varsayılandır; eski Modern ve Kurumsal Arşiv görünümleri yönetim panelinden (Sistem ayarları → Arayüz görünümü) seçilebilir. Ayrıntı: DESIGN.md.

Manifesto

Veri egemenliği önce gelir.

Şirket dosyaları üçüncü taraf bir buluta ait değildir. CDrive; dosyaların, kullanıcıların ve erişim kayıtlarının kendi VDS veya sunucunuzda kalması için yapıldı. KVKK gibi veri gizliliği konusunda hassas kurumlar için gerçekçi bir alternatif olmayı hedefler.

Üç rol, net sınırlar

Rol Ne yapar
ADMIN Tüm sisteme erişir; kullanıcı, departman ve sistem ayarlarını yönetir
MANAGER Kendi departmanının dosya ve klasörlerini yönetir
MEMBER Kendi dosyaları ve kendisiyle paylaşılanlarla çalışır

Klasör ve dosya bazında ayrıca VIEW / EDIT izinleri verilir.

Neler var?

Dosyalar

  • Büyük dosyalar: video/fotoğraf/arşiv gibi GB'larca dosyalar 8 MB'lık parçalarla yüklenir (sunucu belleği dosya boyutundan bağımsız, ilerleme çubuğu, kesintide parça yeniden denenir); ZIP: yükleyip çıkarma ve sürücüdeki ZIP'i "Zipten çıkar" (akışlı, zip-slip/zip bombası korumalı), seçili öğeleri tek ZIP olarak indirme veya sürücüde "ZIP oluştur"
  • Klasör ağacı, çoklu yükleme, ZIP yükleme, sürükle-bırak taşıma, kopyalama, çöp kutusu, yıldızlı ve son kullanılanlar
  • Sürümleme: aynı adla yüklenen dosya yeni sürüm olur; sürümleri karşılaştır, eskisine dön
  • Belge tara: kamera veya fotoğraflardan sayfa topla → filtre (Orijinal / Belge / Siyah-beyaz) → tek PDF. İsteğe bağlı OCR ile içerik araması ve düzenlenebilir Word (.docx) çıktısı (#14)
  • Dosya adı ve metin/PDF içeriğinde arama, etiketler, yorumlar, onay akışları
  • Claude yardımcısı: üst çubuktaki yuvarlak Claude düğmesi; yönetici sistem geneli Claude API anahtarını Yönetim → Ayarlar'dan girer (şifreli saklanır), Claude dosyalarında arar, belgelerini (metin/PDF/Word/Excel/PowerPoint) okuyup özetler ve düz metin dosyaları için düzenleme önerir. Her araç kullanıcının yetkileriyle çalışır, Claude doğrudan yazamaz: değişiklik farkı panelde görünür, onaylayınca yeni sürüm olur
  • Yapay zekâ bağlantısı (MCP): Hesap ayarları → Yapay zekâ bağlantısı'ndan kişisel erişim anahtarı oluştur; Claude Code veya Codex'e tek komutla bağla (claude mcp add / codex mcp add, komutlar kartta hazır). Sonra "bu Excel'i Cdrive ana klasörüme gönder" demen yeterli: araç dosyayı senin adına yükler (yetki, kota, politika ve sürümleme normal yükleme gibi), Cdrive bildirim üretir ve masaüstü uygulaması tepsi balonu gösterir. Anahtar yalnızca /api/agent/* uçlarında (yükle/listele/ara/oku) geçerlidir, veritabanında yalnızca özeti durur, istediğin an iptal edersin
  • İsteğe bağlı OnlyOffice ile tarayıcıda Word/Excel/PowerPoint düzenleme

Yönetim

  • Yönetim panelinden SSH'siz uzaktan güncelleme (yedek + otomatik geri dönüş)

Paylaşım ve güvenlik

  • Süreli, indirme limitli, parola korumalı genel bağlantılar
  • Denetim kaydı: kim ne zaman ne yaptı
  • TOTP ile iki aşamalı doğrulama, hesap kilitleme, sunucu tarafından iptal edilebilen oturumlar
  • Departman ve kullanıcı bazlı depolama kotaları, depolama analitiği

İşbirliği ve iş modülleri

  • Kurum içi sohbet (kanallar ve birebir), bildirimler
  • Sipariş, müşteri, muhasebe ve üretim modülleri; raporlar

Hızlı kurulum

Gereksinim: Node.js ≥ 20.9 ve MySQL / MariaDB.

git clone https://github.com/macbyclp/cdrive.git && cd cdrive
npm install
cp .env.example .env   # değerleri düzenle (aşağıya bak)
npx prisma migrate deploy
npm run dev            # http://localhost:3000

Minimum .env:

DATABASE_URL="mysql://KULLANICI:SIFRE@127.0.0.1:3306/cdrive"
SESSION_SECRET="en-az-32-karakterlik-rastgele-bir-anahtar"
STORAGE_ROOT="./storage"
NEXT_BASE_PATH=""          # kökte barındırıyorsan boş; alt yolda ise örn. "/cdrive"

İlk açılışta kullanıcı yoksa kurulum sihirbazı ilk yöneticiyi oluşturur. Üretimde SESSION_SECRET zorunludur. OnlyOffice, SMTP, cron ve yedek dizini gibi isteğe bağlı ayarlar için .env.example dosyasına bak.

Üretim

npm run build && npm start

Docker/VDS için Dockerfile ve deploy/vds altındaki docker-compose.yml kullanılır; cPanel/Passenger için kökteki server.js hazırdır.

SSH'siz uzaktan güncelleme

VDS'e Docker ile kurduğunuzda, sonraki güncellemeler için sunucuya girmeniz gerekmez: Yönetim → Güncelleme sekmesi GitHub'daki yeni sürümü gösterir, Şimdi güncelle ise veritabanı yedeği alır, yeni sürümü derler, yeniden başlatır ve sağlıklı açılmazsa otomatik olarak eskisine döner. Kurulum ve güvenlik ayrıntıları: deploy/vds/README.md.

iPhone'da PWA: "Ana Ekrana Ekle" için HTTPS önerilir; kamera (Belge tara) yalnızca HTTPS veya localhost üzerinde açılır.

Geliştirme

Komut Ne yapar
npm run dev Geliştirme sunucusu
npm run typecheck Tip kontrolü
npm run lint ESLint
npm test Vitest (birim + entegrasyon)
npm run migrate prisma migrate deploy

Proje yapısı: src/app (sayfalar ve API rotaları), src/components, src/lib, prisma (şema ve migration'lar), messages (i18n), tests, deploy.

Belgeler

  • DESIGN.md — tasarım sistemi (Liquid Glass ve Kurumsal Arşiv)
  • PRODUCT.md — ürün amacı, kullanıcılar, konumlandırma
  • docs/README-detailed.md — önceki, ayrıntılı README (eski arayüz ekran görüntüleriyle)

Canlı örnek

https://cdrive.calapverdi.tr

Verin senin sunucunda. Kontrol senin elinde.

About

Self-hosted corporate file management platform with role-based access, sharing, versioning, and audit logging (Next.js + Prisma + PostgreSQL).

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages