Bu proje, masaüstü uygulamaları için bir güncelleme sunucusu görevi görür. Yüklenen .zip dosyasını Cloudflare R2 depolama alanına yükler, dosya bütünlüğünü (SHA256) doğrular ve istemci uygulamaların güncellemeleri kontrol edebilmesi için version.json dosyasını otomatik olarak günceller.
Gerekli paketleri yükleyin:
npm installProjenin kök dizininde bir .env dosyası oluşturun ve aşağıdaki değerleri Cloudflare R2 panelinizden alarak doldurun:
R2_ACCOUNT_ID=senin_cloudflare_account_id
R2_ACCESS_KEY_ID=senin_r2_access_key
R2_SECRET_ACCESS_KEY=senin_r2_secret_key
R2_BUCKET_NAME=bucket_ismi
R2_PUBLIC_DOMAIN=https://pub-xxx.r2.dev| Değişken | Açıklama |
|---|---|
R2_ACCOUNT_ID |
Cloudflare panelinde sağ üstte bulunan hesap ID'si. |
R2_ACCESS_KEY_ID |
R2 API Tokens bölümünden oluşturduğunuz Token ID. |
R2_SECRET_ACCESS_KEY |
Token oluştururken verilen gizli anahtar (Secret Key). |
R2_BUCKET_NAME |
Dosyaların yükleneceği R2 Bucket'ının tam adı. |
R2_PUBLIC_DOMAIN |
Bucket'a bağlı Public Access URL'i veya özel alan adınız (Sonunda / olmamalı). |
Sunucuyu başlatmak için:
node server.jsSunucu http://localhost:3000 adresinde çalışmaya başlayacaktır.
Uygulamanın yeni sürümünü (.zip formatında) yüklemek için aşağıdaki endpoint kullanılır:
- URL:
POST /upload - Body (Multipart/Form-Data):
appZip: Yüklenecek .zip dosyası.socketId: İlerleme çubuğu (progress bar) takibi için Socket.IO ID'si.
- Mevcut
version.jsondosyasını R2'den çeker (yoksa1.0.0kabul eder). - Versiyonu otomatik artırır (Örn:
1.0.5->1.0.6). - Dosyanın SHA256 hash değerini hesaplar.
- Dosyayı
v1.0.6/app.zipyoluna yükler. version.jsondosyasını yeni hash ve indirme linki ile günceller.