quicklify 0.9.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +144 -19
- package/README.tr.md +800 -0
- package/dist/commands/add.d.ts +9 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +151 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/backup.d.ts +1 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +104 -1
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +20 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/maintain.d.ts +8 -0
- package/dist/commands/maintain.d.ts.map +1 -0
- package/dist/commands/maintain.js +253 -0
- package/dist/commands/maintain.js.map +1 -0
- package/dist/commands/remove.d.ts +2 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +25 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/restart.d.ts.map +1 -1
- package/dist/commands/restart.js +4 -0
- package/dist/commands/restart.js.map +1 -1
- package/dist/commands/restore.js +1 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/status.d.ts +6 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +120 -7
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts +5 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +101 -14
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/providers/hetzner.js +2 -2
- package/dist/providers/hetzner.js.map +1 -1
- package/dist/providers/linode.d.ts +21 -0
- package/dist/providers/linode.d.ts.map +1 -0
- package/dist/providers/linode.js +203 -0
- package/dist/providers/linode.js.map +1 -0
- package/dist/providers/vultr.d.ts +21 -0
- package/dist/providers/vultr.d.ts.map +1 -0
- package/dist/providers/vultr.js +183 -0
- package/dist/providers/vultr.js.map +1 -0
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +7 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +2 -0
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/providerFactory.d.ts.map +1 -1
- package/dist/utils/providerFactory.js +10 -0
- package/dist/utils/providerFactory.js.map +1 -1
- package/dist/utils/serverSelect.d.ts +1 -0
- package/dist/utils/serverSelect.d.ts.map +1 -1
- package/dist/utils/serverSelect.js +37 -6
- package/dist/utils/serverSelect.js.map +1 -1
- package/dist/utils/templates.d.ts.map +1 -1
- package/dist/utils/templates.js +6 -0
- package/dist/utils/templates.js.map +1 -1
- package/dist/utils/yamlConfig.d.ts.map +1 -1
- package/dist/utils/yamlConfig.js +3 -3
- package/dist/utils/yamlConfig.js.map +1 -1
- package/package.json +3 -1
package/README.tr.md
ADDED
|
@@ -0,0 +1,800 @@
|
|
|
1
|
+
# quicklify
|
|
2
|
+
|
|
3
|
+
> [English](README.md) | Türkçe
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
[](https://codecov.io/gh/omrfc/quicklify)
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
[](https://socket.dev/npm/package/quicklify)
|
|
12
|
+
|
|
13
|
+
> Coolify'i tek bir komutla bulut VPS'e deploy edin
|
|
14
|
+
|
|
15
|
+
## 🚀 Quicklify Nedir?
|
|
16
|
+
|
|
17
|
+
Quicklify, [Coolify](https://coolify.io/) kurulumunu bulut VPS sağlayıcılarında otomatikleştiren bir CLI aracıdır. Coolify, Vercel/Netlify/Heroku'ya açık kaynaklı, kendi sunucunuzda barındırılan bir alternatiftir — Quicklify ise Coolify'i VPS'inize tek bir komutla kurar.
|
|
18
|
+
|
|
19
|
+
**Quicklify Olmadan:**
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
VPS'i manuel oluştur (5 dk)
|
|
23
|
+
Sunucuya SSH ile bağlan (2 dk)
|
|
24
|
+
Docker kur (10 dk)
|
|
25
|
+
Güvenlik duvarını yapılandır (5 dk)
|
|
26
|
+
Coolify'i kur (10 dk)
|
|
27
|
+
Toplam: ~30 dakika + manuel iş
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Quicklify ile:**
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx quicklify init
|
|
34
|
+
# Hetzner: ~4 dk | DigitalOcean: ~6 dk | Vultr: ~5 dk | Linode: ~6 dk
|
|
35
|
+
# Sıfır manuel iş ✨
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## ✨ Özellikler
|
|
39
|
+
|
|
40
|
+
- 🎯 **Tek Komut Deploy** - VPS + Coolify tek bir komutla
|
|
41
|
+
- 💰 **Maliyet Tasarrufu** - $50-200/ay (Vercel/Netlify) → €3.79/ay
|
|
42
|
+
- 🔒 **Varsayılan Güvenlik** - Otomatik güvenlik yapılandırması
|
|
43
|
+
- 🌍 **Çoklu Bulut** - Hetzner Cloud, DigitalOcean, Vultr, Linode
|
|
44
|
+
- 💻 **Şık CLI** - Doğrulama destekli interaktif arayüz
|
|
45
|
+
- 🎨 **ARM64 Desteği** - Uygun fiyatlı ARM sunucu desteği
|
|
46
|
+
- ⚡ **Hızlı Kurulum** - Hetzner ~4 dk, DigitalOcean ~6 dk, Vultr ~5 dk, Linode ~6 dk
|
|
47
|
+
- ✨ **Dinamik Sunucu Tipleri** - Seçilen konum için yalnızca uyumlu tipler gösterilir
|
|
48
|
+
- 🔥 **Otomatik Güvenlik Duvarı** - 8000, 22, 80, 443 portları otomatik yapılandırılır
|
|
49
|
+
- 🚀 **SSH Gerektirmez** - Kurulumdan sonra doğrudan tarayıcıda açılır
|
|
50
|
+
- 📋 **Sunucu Yönetimi** - Listeleme, durum kontrolü, silme, yeniden başlatma, yedekleme, geri yükleme komutları
|
|
51
|
+
- 🔧 **Varsayılan Ayarlar** - Tekrarlayan soruları atlamak için varsayılanları belirleyin
|
|
52
|
+
- 🔑 **SSH Erişimi** - Sunuculara bağlanın veya uzaktan komut çalıştırın
|
|
53
|
+
- 🔄 **Coolify Güncelleme** - Coolify'i tek komutla güncelleyin
|
|
54
|
+
- 🏥 **Sağlık Kontrolü Yoklaması** - Coolify'in ne zaman hazır olduğunu algılar (artık körlemesine bekleme yok)
|
|
55
|
+
- 📊 **Sunucu İzleme** - CPU/RAM/Disk kullanımı ve Docker konteyner durumu
|
|
56
|
+
- 📜 **Log Görüntüleyici** - Coolify, Docker veya sistem loglarını takip moduyla görüntüleyin
|
|
57
|
+
- 🩺 **Ortam Doktoru** - Yerel kurulum sorunlarını teşhis edin
|
|
58
|
+
- 🫀 **Toplu Sağlık Kontrolü** - Tüm sunucuları aynı anda kontrol edin
|
|
59
|
+
- 🔥 **Güvenlik Duvarı Yönetimi** - UFW kurulumu, port ekleme/kaldırma, korumalı port güvenliği
|
|
60
|
+
- 🌐 **Domain Yönetimi** - Domain bağlama, DNS kontrolü, Coolify üzerinden otomatik SSL
|
|
61
|
+
- 🛡️ **SSH Güçlendirme** - Şifre girişini devre dışı bırakma, fail2ban, güvenlik denetimi ve puan
|
|
62
|
+
- 🧪 **Kuru Çalıştırma Modu** - Güvenlik duvarı/domain/güvenlik/yedekleme/geri yükleme komutlarını çalıştırmadan önce önizleyin
|
|
63
|
+
- 💾 **Yedekleme & Geri Yükleme** - Veritabanı + yapılandırma yedeklemesi SCP ile indirme, çift onaylı geri yükleme
|
|
64
|
+
- 📦 **Dışa/İçe Aktarma** - Sunucu listesini makineler arasında JSON olarak aktarın
|
|
65
|
+
- ⚡ **Tam Kurulum** - `--full-setup` bayrağı deploy sonrası güvenlik duvarı + SSH güçlendirmesini otomatik yapılandırır
|
|
66
|
+
- 📄 **YAML Yapılandırma** - `quicklify init --config quicklify.yml` ile tek komutluk deploy
|
|
67
|
+
- 📋 **Şablonlar** - `--template starter|production|dev` ile sağlayıcıya özel varsayılanlar
|
|
68
|
+
- 🤖 **Etkileşimsiz Mod** - `--provider --token --region --size --name` bayraklarıyla CI/CD uyumlu
|
|
69
|
+
- ➕ **Mevcut Sunucu Ekleme** - `quicklify add` ile mevcut Coolify sunucularını kaydedin
|
|
70
|
+
- 🔄 **Toplu İşlemler** - `--all` bayrağı ile status, update, backup komutlarını tüm sunucularda çalıştırın
|
|
71
|
+
- 🔁 **Otomatik Yeniden Başlatma** - `status --autostart` sunucu çalışıyor ama Coolify kapalıysa yeniden başlatır
|
|
72
|
+
- 🔧 **Tam Bakım** - `quicklify maintain` ile status, update, health check, reboot sıralı çalışır
|
|
73
|
+
|
|
74
|
+
## 🎯 Quicklify ile Neler Yapabilirsiniz?
|
|
75
|
+
|
|
76
|
+
### Dakikalar İçinde Coolify Sunucusu Kurun
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
npx quicklify init # İnteraktif kurulum
|
|
80
|
+
npx quicklify init --provider hetzner --full-setup # Otomatik güvenlik duvarı + SSH güçlendirme
|
|
81
|
+
npx quicklify init --template production # Üretime hazır varsayılanlar
|
|
82
|
+
npx quicklify init --config quicklify.yml # YAML dosyasından yapılandırma
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Sunucularınızı Yönetin
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
quicklify list # Tüm kayıtlı sunucuları listele
|
|
89
|
+
quicklify status sunucum # Sunucu + Coolify durumunu kontrol et
|
|
90
|
+
quicklify status --all # Tüm sunucuları aynı anda kontrol et
|
|
91
|
+
quicklify ssh sunucum # Sunucuya SSH ile bağlan
|
|
92
|
+
quicklify ssh sunucum -c "uptime" # Uzaktan komut çalıştır
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Her Şeyi Güncel & Sağlıklı Tutun
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
quicklify update sunucum # Coolify'i son sürüme güncelle
|
|
99
|
+
quicklify restart sunucum # Sunucuyu yeniden başlat
|
|
100
|
+
quicklify maintain sunucum # Tam bakım: durum → güncelle → sağlık → yeniden başlat
|
|
101
|
+
quicklify maintain --all # Tüm sunucuları sırayla bakımdan geçir
|
|
102
|
+
quicklify health # Tüm sunucular için hızlı sağlık kontrolü
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Yedekleme & Geri Yükleme
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
quicklify backup sunucum # Veritabanı + yapılandırma dosyalarını yedekle
|
|
109
|
+
quicklify backup --all # Tüm sunucuları yedekle
|
|
110
|
+
quicklify restore sunucum # Yedekten geri yükle
|
|
111
|
+
quicklify export servers.json # Sunucu listesini dışa aktar
|
|
112
|
+
quicklify import servers.json # Başka makinede içe aktar
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Güvenlik & Ağ
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
quicklify firewall setup sunucum # UFW'yi Coolify portlarıyla yapılandır
|
|
119
|
+
quicklify domain add sunucum --domain coolify.example.com # Domain bağla + SSL
|
|
120
|
+
quicklify secure setup sunucum # SSH güçlendirme + fail2ban
|
|
121
|
+
quicklify secure audit sunucum # Güvenlik denetimi ve puanlama (0-4)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### İzleme & Teşhis
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
quicklify monitor sunucum # Canlı CPU/RAM/Disk kullanımı
|
|
128
|
+
quicklify logs sunucum -f # Coolify loglarını gerçek zamanlı takip et
|
|
129
|
+
quicklify doctor # Yerel ortamı kontrol et
|
|
130
|
+
quicklify status sunucum --autostart # Coolify kapalıysa otomatik yeniden başlat
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## 📦 Kurulum
|
|
134
|
+
|
|
135
|
+
### npx ile (Önerilen)
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npx quicklify init
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Global Kurulum
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
npm install -g quicklify
|
|
145
|
+
quicklify init
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## 🎬 Hızlı Başlangıç
|
|
149
|
+
|
|
150
|
+
### Adım 1: API Token Alın
|
|
151
|
+
|
|
152
|
+
**Hetzner Cloud:**
|
|
153
|
+
|
|
154
|
+
1. [Hetzner Konsolu](https://console.hetzner.cloud/)'nu ziyaret edin
|
|
155
|
+
2. Projenizi seçin
|
|
156
|
+
3. Security → API Tokens bölümüne gidin
|
|
157
|
+
4. "Generate API Token" butonuna tıklayın
|
|
158
|
+
5. İzinleri **Read & Write** olarak ayarlayın
|
|
159
|
+
6. Token'ı kopyalayın (yalnızca bir kez gösterilir!)
|
|
160
|
+
|
|
161
|
+
**DigitalOcean:**
|
|
162
|
+
|
|
163
|
+
1. [DigitalOcean API](https://cloud.digitalocean.com/account/api/tokens) sayfasını ziyaret edin
|
|
164
|
+
2. **Read & Write** kapsamında yeni token oluşturun
|
|
165
|
+
3. Token'ı kopyalayın
|
|
166
|
+
|
|
167
|
+
**Vultr:**
|
|
168
|
+
|
|
169
|
+
1. [Vultr API](https://my.vultr.com/settings/#settingsapi) sayfasını ziyaret edin
|
|
170
|
+
2. API'yi etkinleştirin ve API Key'i kopyalayın
|
|
171
|
+
3. IP adresinizi beyaz listeye ekleyin
|
|
172
|
+
|
|
173
|
+
**Linode (Akamai):**
|
|
174
|
+
|
|
175
|
+
1. [Linode API Tokens](https://cloud.linode.com/profile/tokens) sayfasını ziyaret edin
|
|
176
|
+
2. **Read/Write** kapsamında Personal Access Token oluşturun
|
|
177
|
+
3. Token'ı kopyalayın
|
|
178
|
+
|
|
179
|
+
### Adım 2: Coolify'i Deploy Edin
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
npx quicklify init
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Sizden şunlar istenecek:
|
|
186
|
+
|
|
187
|
+
- ✅ **API Token** - Bulut sağlayıcı token'ınızı yapıştırın
|
|
188
|
+
- ✅ **Bölge** - Veri merkezi konumunu seçin
|
|
189
|
+
- ✅ **Sunucu Boyutu** - VPS özelliklerini seçin (CAX11 önerilir)
|
|
190
|
+
- ✅ **Sunucu Adı** - Örneğinize isim verin
|
|
191
|
+
|
|
192
|
+
### Adım 3: Coolify'e Erişin
|
|
193
|
+
|
|
194
|
+
Deploy sonrası (Hetzner ~4 dk, DigitalOcean ~6 dk, Vultr ~5 dk, Linode ~6 dk):
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
✅ Deployment Successful!
|
|
198
|
+
Server IP: 123.45.67.89
|
|
199
|
+
Access Coolify: http://123.45.67.89:8000
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
URL'yi ziyaret edin, admin hesabınızı oluşturun ve deploy etmeye başlayın!
|
|
203
|
+
|
|
204
|
+
## 🔒 Güvenlik Notları
|
|
205
|
+
|
|
206
|
+
**Önemli:** Port 8000, deploy sonrası herkese açıktır.
|
|
207
|
+
|
|
208
|
+
**Önerilen sonraki adımlar:**
|
|
209
|
+
1. **Tek komut kurulum:** `quicklify init --full-setup` (otomatik güvenlik duvarı + SSH güçlendirme)
|
|
210
|
+
2. **Veya manuel:** `quicklify firewall setup my-server`
|
|
211
|
+
3. **Domain ekleyin:** `quicklify domain add my-server --domain example.com`
|
|
212
|
+
4. **SSH güçlendirin:** `quicklify secure setup my-server`
|
|
213
|
+
5. **Güvenlik denetimi çalıştırın:** `quicklify secure audit my-server`
|
|
214
|
+
6. **Yedek oluşturun:** `quicklify backup my-server`
|
|
215
|
+
7. İlk girişte **güçlü bir şifre** belirleyin
|
|
216
|
+
8. DDoS koruması için **Cloudflare** kullanmayı düşünün
|
|
217
|
+
|
|
218
|
+
## 🌐 Desteklenen Sağlayıcılar
|
|
219
|
+
|
|
220
|
+
| Sağlayıcı | Durum | Başlangıç Fiyatı | Mimari |
|
|
221
|
+
|------------|-------|-------------------|--------|
|
|
222
|
+
| **Hetzner Cloud** | ✅ Mevcut | €3.79/ay | ARM64 + x86 |
|
|
223
|
+
| **DigitalOcean** | ✅ Mevcut | $12/ay | x86 |
|
|
224
|
+
| **Vultr** | ✅ Mevcut | $6/ay | x86 |
|
|
225
|
+
| **Linode (Akamai)** | ✅ Mevcut | $12/ay | x86 |
|
|
226
|
+
|
|
227
|
+
## 💡 Kullanım Senaryoları
|
|
228
|
+
|
|
229
|
+
**Şunlar için ideal:**
|
|
230
|
+
|
|
231
|
+
- 🚀 Yan projeler ve MVP'ler
|
|
232
|
+
- 💼 Müşteri deploy'ları (serbest çalışanlar/ajanslar)
|
|
233
|
+
- 🎓 DevOps ve self-hosting öğrenmek
|
|
234
|
+
- 💸 Bulut barındırma maliyetlerini düşürmek
|
|
235
|
+
- 🏢 Küçük ekip iç araçları
|
|
236
|
+
|
|
237
|
+
**Alternatifleri ne zaman tercih etmeli:**
|
|
238
|
+
|
|
239
|
+
- Büyük kurumsal? → Coolify Cloud veya kurumsal PaaS
|
|
240
|
+
- Aşırı ölçek? → Kubernetes + yönetilen servisler
|
|
241
|
+
|
|
242
|
+
## 📊 Maliyet Karşılaştırması
|
|
243
|
+
|
|
244
|
+
| Çözüm | Aylık Maliyet | Kurulum Süresi | Yönetim |
|
|
245
|
+
|--------|---------------|----------------|---------|
|
|
246
|
+
| Vercel (Hobby) | $20+ | 5 dk | Kolay |
|
|
247
|
+
| Vercel (Pro) | $50+ | 5 dk | Kolay |
|
|
248
|
+
| Netlify (Pro) | $19+ | 5 dk | Kolay |
|
|
249
|
+
| **Quicklify + Hetzner** | **€3.79** | **~4 dk** | **Kolay** |
|
|
250
|
+
| **Quicklify + DigitalOcean** | **$12** | **~6 dk** | **Kolay** |
|
|
251
|
+
| **Quicklify + Vultr** | **$6** | **~5 dk** | **Kolay** |
|
|
252
|
+
| **Quicklify + Linode** | **$12** | **~6 dk** | **Kolay** |
|
|
253
|
+
| Manuel VPS + Coolify | €3.79 | 30+ dk | Zor |
|
|
254
|
+
|
|
255
|
+
**Tasarruf: Proje başına yılda ~$180-240!** 💰
|
|
256
|
+
|
|
257
|
+
## 📋 Son Güncellemeler
|
|
258
|
+
|
|
259
|
+
### v1.0.0 (2026-02-23)
|
|
260
|
+
- **Yeni sağlayıcılar:** Vultr ve Linode (Akamai) — artık 4 bulut sağlayıcı destekleniyor
|
|
261
|
+
- **Yeni komut:** `quicklify add` — mevcut Coolify sunucularını Quicklify yönetimine kaydedin
|
|
262
|
+
- **Yeni komut:** `quicklify maintain` — tam bakım döngüsü (status, update, health, reboot)
|
|
263
|
+
- **Toplu işlemler:** `--all` bayrağı `status`, `update`, `backup` komutlarında — tüm sunucularda aynı anda çalıştırın
|
|
264
|
+
- **Otomatik yeniden başlatma:** `status --autostart` — sunucu çalışıyor ama Coolify kapalıysa yeniden başlatır
|
|
265
|
+
- **`collectProviderTokens()`** — her sağlayıcının token'ını tüm sunucular boyunca yalnızca bir kez sorar
|
|
266
|
+
- 44 test paketi genelinde 937 test, %98+ statement coverage, sıfır yeni bağımlılık
|
|
267
|
+
|
|
268
|
+
### v0.9.0 (2026-02-21)
|
|
269
|
+
- **YAML Yapılandırma:** `quicklify init --config quicklify.yml` - yapılandırma dosyasından deploy
|
|
270
|
+
- **Şablonlar:** `--template starter|production|dev` - sağlayıcıya özel önceden tanımlı sunucu yapılandırmaları
|
|
271
|
+
- **Yapılandırma birleştirme:** Öncelik sırası: CLI bayrakları > YAML değerleri > şablon varsayılanları > interaktif sorular
|
|
272
|
+
- **Güvenlik:** YAML'daki token alanları algılanır ve uyarılır (token'ları yapılandırma dosyalarında saklamayın)
|
|
273
|
+
- 1 yeni bağımlılık (js-yaml), %98+ statement coverage ile 742 test
|
|
274
|
+
|
|
275
|
+
### v0.8.0 (2026-02-21)
|
|
276
|
+
- **Yeni komutlar:** `quicklify backup`, `quicklify restore`, `quicklify export`, `quicklify import`
|
|
277
|
+
- **Yedekleme:** pg_dump + yapılandırma arşivi, SCP ile `~/.quicklify/backups/` dizinine indirme, manifest.json metadata
|
|
278
|
+
- **Geri yükleme:** Yedeği sunucuya yükleme, Coolify'i durdur/başlat, DB + yapılandırma geri yükleme, çift onaylı güvenlik
|
|
279
|
+
- **Dışa/İçe aktarma:** `servers.json` dosyasını makineler arasında aktarma, kopya algılama, format doğrulama
|
|
280
|
+
- **`--full-setup` bayrağı:** `quicklify init --full-setup` deploy sonrası güvenlik duvarı + SSH güçlendirmesini otomatik yapılandırır
|
|
281
|
+
- Sıfır yeni bağımlılık, %98+ statement coverage ile 636 test
|
|
282
|
+
|
|
283
|
+
### v0.7.0 (2026-02-20)
|
|
284
|
+
- **Yeni komutlar:** `quicklify firewall`, `quicklify domain`, `quicklify secure`
|
|
285
|
+
- **Güvenlik duvarı yönetimi:** UFW kurulumu, port ekleme/kaldırma, korumalı port 22 güvenliği, Coolify port uyarıları
|
|
286
|
+
- **Domain yönetimi:** Coolify'e domain bağlama, DNS A kaydı kontrolü, otomatik SSL
|
|
287
|
+
- **SSH güçlendirme:** Şifre girişini devre dışı bırakma, yalnızca anahtar ile root girişi, fail2ban, 0-4 puan güvenlik denetimi
|
|
288
|
+
- **Kuru çalıştırma modu:** `--dry-run` bayrağı tüm komutları çalıştırmadan önizler
|
|
289
|
+
- Sıfır yeni bağımlılık, %97+ statement coverage ile 494 test
|
|
290
|
+
|
|
291
|
+
### v0.6.0 (2026-02-20)
|
|
292
|
+
- **Yeni komutlar:** `quicklify logs`, `quicklify monitor`, `quicklify health`, `quicklify doctor`
|
|
293
|
+
- **Log görüntüleyici:** `--follow` ile gerçek zamanlı akış ile Coolify/Docker/sistem loglarını görüntüleme
|
|
294
|
+
- **Sunucu izleme:** CPU/RAM/Disk kullanımı ve Docker konteyner listesi
|
|
295
|
+
- **Toplu sağlık kontrolü:** Tüm kayıtlı sunucuları yanıt süreleriyle aynı anda kontrol etme
|
|
296
|
+
- **Ortam doktoru:** Node.js, SSH, yapılandırma sorunlarını yerel olarak teşhis etme
|
|
297
|
+
- Sıfır yeni bağımlılık, %97+ statement coverage ile 354 test
|
|
298
|
+
|
|
299
|
+
### v0.5.0 (2026-02-20)
|
|
300
|
+
- **Yeni komutlar:** `quicklify config`, `quicklify ssh`, `quicklify update`, `quicklify restart`
|
|
301
|
+
- **Varsayılan yapılandırma:** `quicklify config set` ile sağlayıcı, bölge, boyut varsayılanlarını ayarlayın
|
|
302
|
+
- **SSH erişimi:** `quicklify ssh` ile sunuculara bağlanın veya `--command` ile komut çalıştırın
|
|
303
|
+
- **Coolify güncelleme:** `quicklify update` ile SSH üzerinden Coolify güncelleyin
|
|
304
|
+
- **Sunucu yeniden başlatma:** `quicklify restart` ile sağlayıcı API üzerinden yeniden başlatma
|
|
305
|
+
- %97+ statement coverage ile 311 test
|
|
306
|
+
|
|
307
|
+
### v0.4.0 (2026-02-20)
|
|
308
|
+
- **Yeni komutlar:** `quicklify list`, `quicklify status [sorgu]`, `quicklify destroy [sorgu]`
|
|
309
|
+
- **Etkileşimsiz mod:** CI/CD için `quicklify init --provider --token --region --size --name`
|
|
310
|
+
- **Sağlık kontrolü yoklaması:** Körlemesine bekleme yerine Coolify'in hazır olduğunu algılar
|
|
311
|
+
- %97+ statement coverage ile 246 test
|
|
312
|
+
|
|
313
|
+
### v0.3.1 (2026-02-19)
|
|
314
|
+
- Hetzner fiyatlandırması artık net fiyatları (KDV hariç) gösteriyor, web sitesi gösterimiyle uyumlu
|
|
315
|
+
- Hetzner sunucu tipleri konum başına gerçek uygunluk için `/datacenters` API'sini kullanıyor
|
|
316
|
+
- Kullanımdan kaldırılan Hetzner sunucu tipleri değiştirildi (cpx→cx23/cx33)
|
|
317
|
+
- "Sunucu adı zaten kullanılıyor" hatası artık yeni ad girmek için yönlendiriyor
|
|
318
|
+
- Konum devre dışı yeniden deneme artık sunucu tipi için tekrar soruyor
|
|
319
|
+
|
|
320
|
+
### v0.3.0 (2026-02-19)
|
|
321
|
+
- DigitalOcean sağlayıcı desteği (tam API entegrasyonu)
|
|
322
|
+
- İnteraktif sağlayıcı seçimi (Hetzner / DigitalOcean)
|
|
323
|
+
- Tüm sorularda adım bazlı geri navigasyon
|
|
324
|
+
- DigitalOcean cloud-init güvenilirliği için ağ bekleme döngüsü + kurulum loglama
|
|
325
|
+
|
|
326
|
+
## 🗺️ Yol Haritası
|
|
327
|
+
|
|
328
|
+
### v0.1.0 (Tamamlandı)
|
|
329
|
+
|
|
330
|
+
- [x] Hetzner Cloud entegrasyonu
|
|
331
|
+
- [x] İnteraktif CLI
|
|
332
|
+
- [x] Otomatik Coolify kurulumu
|
|
333
|
+
- [x] ARM64 desteği
|
|
334
|
+
|
|
335
|
+
### v0.2.0 (Tamamlandı)
|
|
336
|
+
|
|
337
|
+
- [x] Dinamik sunucu tipi filtreleme
|
|
338
|
+
- [x] Otomatik güvenlik duvarı yapılandırması
|
|
339
|
+
- [x] Fiyat formatlama düzeltmesi
|
|
340
|
+
|
|
341
|
+
### v0.2.x (Tamamlandı)
|
|
342
|
+
|
|
343
|
+
- [x] Kullanımdan kaldırılan sunucu tipi filtreleme
|
|
344
|
+
- [x] Kullanılamayan sunucu tiplerinde yeniden deneme
|
|
345
|
+
- [x] Dinamik deploy özeti
|
|
346
|
+
- [x] Dinamik önerilen seçim
|
|
347
|
+
- [x] Codecov entegrasyonu ve coverage rozeti
|
|
348
|
+
- [x] ESLint + Prettier kod kalite araçları
|
|
349
|
+
- [x] Sıfır `any` tipi - tam tip güvenliği
|
|
350
|
+
|
|
351
|
+
### v0.3.0 (Tamamlandı)
|
|
352
|
+
|
|
353
|
+
- [x] DigitalOcean desteği
|
|
354
|
+
- [x] İnteraktif sağlayıcı seçimi arayüzü
|
|
355
|
+
- [x] Adım bazlı geri navigasyon
|
|
356
|
+
- [x] Cloud-init güvenilirlik iyileştirmeleri (ağ bekleme, loglama)
|
|
357
|
+
|
|
358
|
+
### v0.4.0 (Tamamlandı)
|
|
359
|
+
|
|
360
|
+
- [x] Sunucu yönetim komutları (list, status, destroy)
|
|
361
|
+
- [x] CI/CD için etkileşimsiz mod
|
|
362
|
+
- [x] Coolify sağlık kontrolü yoklaması (körlemesine bekleme yerine)
|
|
363
|
+
- [x] Sunucu kaydı kalıcılığı (`~/.quicklify/servers.json`)
|
|
364
|
+
- [x] Provider arayüzünde `destroyServer()`
|
|
365
|
+
- [x] Silme için çift onaylı güvenlik
|
|
366
|
+
|
|
367
|
+
### v0.5.0 (Tamamlandı)
|
|
368
|
+
|
|
369
|
+
- [x] Varsayılan yapılandırma yönetimi (`quicklify config`)
|
|
370
|
+
- [x] Sunuculara SSH erişimi (`quicklify ssh`)
|
|
371
|
+
- [x] SSH üzerinden Coolify güncelleme (`quicklify update`)
|
|
372
|
+
- [x] Sağlayıcı API üzerinden sunucu yeniden başlatma (`quicklify restart`)
|
|
373
|
+
- [x] Paylaşılan sunucu seçimi ve token yardımcı araçları (DRY refaktör)
|
|
374
|
+
|
|
375
|
+
### v0.6.0 (Tamamlandı)
|
|
376
|
+
|
|
377
|
+
- [x] Sunucu izleme - CPU/RAM/Disk kullanımı (`quicklify monitor`)
|
|
378
|
+
- [x] Log görüntüleyici - Coolify/Docker/sistem logları (`quicklify logs`)
|
|
379
|
+
- [x] Tüm sunucular için toplu sağlık kontrolü (`quicklify health`)
|
|
380
|
+
- [x] Ortam teşhis (`quicklify doctor`)
|
|
381
|
+
- [x] Gerçek zamanlı log takibi için SSH akışı
|
|
382
|
+
|
|
383
|
+
### v0.7.0 (Tamamlandı)
|
|
384
|
+
|
|
385
|
+
- [x] Güvenlik duvarı yönetimi - UFW kurulumu, port ekleme/kaldırma (`quicklify firewall`)
|
|
386
|
+
- [x] Domain yönetimi - Domain bağlama, DNS kontrolü, SSL (`quicklify domain`)
|
|
387
|
+
- [x] SSH güçlendirme - Şifre devre dışı, fail2ban, güvenlik denetimi (`quicklify secure`)
|
|
388
|
+
- [x] Tüm güvenlik komutları için kuru çalıştırma modu
|
|
389
|
+
|
|
390
|
+
### v0.8.0 (Tamamlandı)
|
|
391
|
+
|
|
392
|
+
- [x] Coolify veritabanı + yapılandırma yedeklemesi (`quicklify backup`)
|
|
393
|
+
- [x] Çift onaylı yedekten geri yükleme (`quicklify restore`)
|
|
394
|
+
- [x] Sunucu listesi dışa/içe aktarma (`quicklify export`, `quicklify import`)
|
|
395
|
+
- [x] init sırasında otomatik güvenlik duvarı + SSH güçlendirme için `--full-setup` bayrağı
|
|
396
|
+
|
|
397
|
+
### v0.9.0 (Tamamlandı)
|
|
398
|
+
|
|
399
|
+
- [x] Tek komutluk deploy için YAML yapılandırma dosyası (`quicklify.yml`)
|
|
400
|
+
- [x] Şablon sistemi (`--template starter|production|dev`)
|
|
401
|
+
- [x] Öncelikli yapılandırma birleştirme: CLI > YAML > şablon > interaktif
|
|
402
|
+
|
|
403
|
+
### v1.0.0 (Tamamlandı)
|
|
404
|
+
|
|
405
|
+
- [x] Vultr sağlayıcı desteği
|
|
406
|
+
- [x] Linode (Akamai) sağlayıcı desteği
|
|
407
|
+
- [x] `quicklify add` — mevcut Coolify sunucularını kaydetme
|
|
408
|
+
- [x] `quicklify maintain` — tam bakım döngüsü
|
|
409
|
+
- [x] status, update, backup için `--all` bayrağı
|
|
410
|
+
- [x] `status --autostart` — Coolify kapalıysa otomatik yeniden başlatma
|
|
411
|
+
|
|
412
|
+
### Gelecek
|
|
413
|
+
- [ ] `quicklify snapshot` — bakım öncesi otomatik VPS snapshot'ları
|
|
414
|
+
- [ ] `init --mode production` — 2 sunuculu deploy (Coolify + worker)
|
|
415
|
+
- [ ] İnteraktif TUI kontrol paneli
|
|
416
|
+
|
|
417
|
+
## 🛠️ Teknoloji Altyapısı
|
|
418
|
+
|
|
419
|
+
- **Çalışma Ortamı:** Node.js 20+
|
|
420
|
+
- **Dil:** TypeScript
|
|
421
|
+
- **CLI Çatısı:** Commander.js
|
|
422
|
+
- **İnteraktif Sorular:** Inquirer.js
|
|
423
|
+
- **Stil:** Chalk (renkler) + Ora (yüklenme animasyonları)
|
|
424
|
+
- **HTTP İstemcisi:** Axios
|
|
425
|
+
- **YAML Ayrıştırıcı:** js-yaml
|
|
426
|
+
- **Bulut API'leri:** Hetzner Cloud API v1, DigitalOcean API v2, Vultr API v2, Linode API v4
|
|
427
|
+
- **Linting:** ESLint 10 + typescript-eslint
|
|
428
|
+
- **Formatlama:** Prettier
|
|
429
|
+
|
|
430
|
+
## 📖 CLI Referansı
|
|
431
|
+
|
|
432
|
+
### Komutlar
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
# Yeni Coolify örneği deploy et (interaktif)
|
|
436
|
+
quicklify init
|
|
437
|
+
|
|
438
|
+
# Etkileşimsiz deploy (CI/CD uyumlu)
|
|
439
|
+
export HETZNER_TOKEN="your-api-token"
|
|
440
|
+
quicklify init --provider hetzner --region nbg1 --size cax11 --name my-server
|
|
441
|
+
|
|
442
|
+
# Otomatik güvenlik duvarı + SSH güçlendirme ile deploy
|
|
443
|
+
quicklify init --full-setup
|
|
444
|
+
|
|
445
|
+
# YAML yapılandırma dosyasından deploy
|
|
446
|
+
quicklify init --config quicklify.yml
|
|
447
|
+
|
|
448
|
+
# Şablon kullanarak deploy
|
|
449
|
+
quicklify init --template production --provider hetzner
|
|
450
|
+
|
|
451
|
+
# Tüm kayıtlı sunucuları listele
|
|
452
|
+
quicklify list
|
|
453
|
+
|
|
454
|
+
# Sunucu ve Coolify durumunu kontrol et
|
|
455
|
+
quicklify status 123.45.67.89
|
|
456
|
+
quicklify status my-server
|
|
457
|
+
quicklify status --all # Tüm sunucuları aynı anda kontrol et
|
|
458
|
+
quicklify status my-server --autostart # Coolify kapalıysa yeniden başlat
|
|
459
|
+
|
|
460
|
+
# Sunucu sil (çift onay ile)
|
|
461
|
+
quicklify destroy 123.45.67.89
|
|
462
|
+
quicklify destroy my-server
|
|
463
|
+
|
|
464
|
+
# Sunucuyu yerel ayarlardan kaldır (bulut sunucuyu silmeden)
|
|
465
|
+
quicklify remove sunucum
|
|
466
|
+
quicklify remove 123.45.67.89
|
|
467
|
+
|
|
468
|
+
# Varsayılan yapılandırmayı yönet
|
|
469
|
+
quicklify config set provider hetzner
|
|
470
|
+
quicklify config set region nbg1
|
|
471
|
+
quicklify config get provider
|
|
472
|
+
quicklify config list
|
|
473
|
+
quicklify config reset
|
|
474
|
+
|
|
475
|
+
# Sunucuya SSH ile bağlan
|
|
476
|
+
quicklify ssh my-server
|
|
477
|
+
quicklify ssh 123.45.67.89 -c "docker ps"
|
|
478
|
+
|
|
479
|
+
# Sunucudaki Coolify'i güncelle
|
|
480
|
+
quicklify update my-server
|
|
481
|
+
quicklify update --all # Tüm sunucuları sırayla güncelle
|
|
482
|
+
|
|
483
|
+
# Sunucuyu yeniden başlat
|
|
484
|
+
quicklify restart my-server
|
|
485
|
+
|
|
486
|
+
# Coolify loglarını görüntüle (son 50 satır)
|
|
487
|
+
quicklify logs my-server
|
|
488
|
+
|
|
489
|
+
# Coolify loglarını gerçek zamanlı takip et
|
|
490
|
+
quicklify logs my-server --follow
|
|
491
|
+
|
|
492
|
+
# Docker veya sistem loglarını görüntüle
|
|
493
|
+
quicklify logs my-server --service docker --lines 100
|
|
494
|
+
quicklify logs my-server --service system
|
|
495
|
+
|
|
496
|
+
# CPU/RAM/Disk kullanımını göster
|
|
497
|
+
quicklify monitor my-server
|
|
498
|
+
|
|
499
|
+
# Docker konteynerleriyle kullanımı göster
|
|
500
|
+
quicklify monitor my-server --containers
|
|
501
|
+
|
|
502
|
+
# Tüm sunucuların sağlığını kontrol et
|
|
503
|
+
quicklify health
|
|
504
|
+
|
|
505
|
+
# Ortam teşhisi çalıştır
|
|
506
|
+
quicklify doctor
|
|
507
|
+
|
|
508
|
+
# Güvenlik duvarı yönetimi
|
|
509
|
+
quicklify firewall setup my-server # UFW kur + Coolify portlarını aç
|
|
510
|
+
quicklify firewall add my-server --port 3000 # 3000/tcp portunu aç
|
|
511
|
+
quicklify firewall add my-server --port 53 --protocol udp # 53/udp portunu aç
|
|
512
|
+
quicklify firewall remove my-server --port 3000 # 3000 portunu kapat
|
|
513
|
+
quicklify firewall list my-server # Güvenlik duvarı kurallarını göster
|
|
514
|
+
quicklify firewall status my-server # UFW aktif/pasif durumu
|
|
515
|
+
quicklify firewall setup my-server --dry-run # Çalıştırmadan önizle
|
|
516
|
+
|
|
517
|
+
# Domain yönetimi
|
|
518
|
+
quicklify domain add my-server --domain example.com # Domain bağla + HTTPS
|
|
519
|
+
quicklify domain add my-server --domain example.com --no-ssl # Yalnızca HTTP
|
|
520
|
+
quicklify domain remove my-server # IP:8000'e geri dön
|
|
521
|
+
quicklify domain check my-server --domain example.com # DNS doğrula
|
|
522
|
+
quicklify domain list my-server # Mevcut domain'i göster
|
|
523
|
+
quicklify domain add my-server --domain example.com --dry-run # Önizle
|
|
524
|
+
|
|
525
|
+
# SSH güçlendirme ve güvenlik
|
|
526
|
+
quicklify secure status my-server # Güvenlik ayarlarını göster
|
|
527
|
+
quicklify secure audit my-server # Güvenlik puanı (0-4)
|
|
528
|
+
quicklify secure setup my-server # SSH güçlendir + fail2ban kur
|
|
529
|
+
quicklify secure setup my-server --port 2222 # SSH portunu değiştir
|
|
530
|
+
quicklify secure setup my-server --dry-run # Çalıştırmadan önizle
|
|
531
|
+
|
|
532
|
+
# Coolify veritabanı ve yapılandırmasını yedekle
|
|
533
|
+
quicklify backup my-server # Tam yedekleme (pg_dump + yapılandırma)
|
|
534
|
+
quicklify backup --all # Tüm sunucuları sırayla yedekle
|
|
535
|
+
quicklify backup my-server --dry-run # Yedekleme adımlarını önizle
|
|
536
|
+
|
|
537
|
+
# Yedekten geri yükle
|
|
538
|
+
quicklify restore my-server # İnteraktif yedek seçimi
|
|
539
|
+
quicklify restore my-server --backup 2026-02-21_15-30-45-123 # Belirli yedek
|
|
540
|
+
quicklify restore my-server --dry-run # Geri yükleme adımlarını önizle
|
|
541
|
+
|
|
542
|
+
# Sunucu listesini dışa/içe aktar
|
|
543
|
+
quicklify export # ./quicklify-export.json'a aktar
|
|
544
|
+
quicklify export /path/to/file.json # Özel yola aktar
|
|
545
|
+
quicklify import /path/to/file.json # Sunucuları içe aktar (kopyaları atlar)
|
|
546
|
+
|
|
547
|
+
# Mevcut Coolify sunucusunu yönetime ekle
|
|
548
|
+
quicklify add # İnteraktif (sağlayıcı, token, IP, doğrulama)
|
|
549
|
+
quicklify add --provider hetzner --ip 1.2.3.4 --name my-server # Etkileşimsiz
|
|
550
|
+
quicklify add --provider vultr --ip 1.2.3.4 --skip-verify # Coolify kontrolünü atla
|
|
551
|
+
|
|
552
|
+
# Tam bakım döngüsü çalıştır
|
|
553
|
+
quicklify maintain my-server # Status → Update → Health → Reboot
|
|
554
|
+
quicklify maintain my-server --skip-reboot # Yeniden başlatma adımını atla
|
|
555
|
+
quicklify maintain --all # Tüm sunucuları sırayla bakıma al
|
|
556
|
+
quicklify maintain my-server --dry-run # Bakım adımlarını önizle
|
|
557
|
+
|
|
558
|
+
# Sürümü göster
|
|
559
|
+
quicklify --version
|
|
560
|
+
|
|
561
|
+
# Yardımı göster
|
|
562
|
+
quicklify --help
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
### Etkileşimsiz Mod
|
|
566
|
+
|
|
567
|
+
API token'ınızı ortam değişkeni olarak ayarlayın, ardından tüm seçenekleri bayrak olarak geçirin:
|
|
568
|
+
|
|
569
|
+
```bash
|
|
570
|
+
# Token ayarla (önerilen - kabuk geçmişinde görünmeyi önler)
|
|
571
|
+
export HETZNER_TOKEN="your-api-token"
|
|
572
|
+
# veya
|
|
573
|
+
export DIGITALOCEAN_TOKEN="your-api-token"
|
|
574
|
+
# veya
|
|
575
|
+
export VULTR_TOKEN="your-api-token"
|
|
576
|
+
# veya
|
|
577
|
+
export LINODE_TOKEN="your-api-token"
|
|
578
|
+
|
|
579
|
+
# Etkileşimsiz deploy
|
|
580
|
+
quicklify init \
|
|
581
|
+
--provider hetzner \
|
|
582
|
+
--region nbg1 \
|
|
583
|
+
--size cax11 \
|
|
584
|
+
--name production-coolify
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
Token çözümleme sırası: ortam değişkeni > interaktif soru. `--token` bayrağı mevcuttur ancak kabuk geçmişinde token'ı açığa çıkardığı için **önerilmez**.
|
|
588
|
+
|
|
589
|
+
Bazı bayraklar eksikse, yalnızca eksik değerler interaktif olarak sorulur.
|
|
590
|
+
|
|
591
|
+
### YAML Yapılandırma Dosyası
|
|
592
|
+
|
|
593
|
+
Tekrarlanabilir deploy'lar için bir `quicklify.yml` dosyası oluşturun:
|
|
594
|
+
|
|
595
|
+
```yaml
|
|
596
|
+
# quicklify.yml
|
|
597
|
+
template: production
|
|
598
|
+
provider: hetzner
|
|
599
|
+
region: nbg1
|
|
600
|
+
size: cx33
|
|
601
|
+
name: my-coolify-prod
|
|
602
|
+
fullSetup: true
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
Ardından deploy edin:
|
|
606
|
+
|
|
607
|
+
```bash
|
|
608
|
+
export HETZNER_TOKEN="your-api-token"
|
|
609
|
+
quicklify init --config quicklify.yml
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
**Güvenlik:** API token'larını yapılandırma dosyalarında asla saklamayın. Ortam değişkenlerini kullanın (`export HETZNER_TOKEN=...`).
|
|
613
|
+
|
|
614
|
+
**Yapılandırma birleştirme önceliği:** CLI bayrakları > YAML değerleri > şablon varsayılanları > interaktif sorular.
|
|
615
|
+
|
|
616
|
+
### Şablonlar
|
|
617
|
+
|
|
618
|
+
Şablonlar sağlayıcıya özel makul varsayılanlar sunar:
|
|
619
|
+
|
|
620
|
+
| Şablon | Hetzner | DigitalOcean | Vultr | Linode | Tam Kurulum |
|
|
621
|
+
|--------|---------|--------------|-------|--------|-------------|
|
|
622
|
+
| `starter` | nbg1 / cax11 (€3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | Hayır |
|
|
623
|
+
| `production` | nbg1 / cx33 (€5.49) | fra1 / s-2vcpu-4gb ($24) | ewr / vc2-4c-8gb ($48) | us-east / g6-standard-4 ($36) | Evet |
|
|
624
|
+
| `dev` | nbg1 / cax11 (€3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | Hayır |
|
|
625
|
+
|
|
626
|
+
```bash
|
|
627
|
+
# Hızlı production deploy
|
|
628
|
+
export HETZNER_TOKEN="your-api-token"
|
|
629
|
+
quicklify init --template production --provider hetzner --name my-server
|
|
630
|
+
|
|
631
|
+
# Test için ucuz starter
|
|
632
|
+
export DIGITALOCEAN_TOKEN="your-api-token"
|
|
633
|
+
quicklify init --template starter --provider digitalocean --name test-server
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
### İnteraktif Sorular
|
|
637
|
+
|
|
638
|
+
1. **Sağlayıcı Seçimi** - Hetzner Cloud, DigitalOcean, Vultr veya Linode seçin
|
|
639
|
+
2. **API Token** - Devam etmeden önce doğrulanır
|
|
640
|
+
3. **Bölge Seçimi** - Tercih ettiğiniz veri merkezini seçin
|
|
641
|
+
4. **Sunucu Boyutu** - Coolify gereksinimleri (2GB RAM, 2 vCPU) ile filtrelenir
|
|
642
|
+
5. **Sunucu Adı** - Format doğrulama (küçük harf, alfanümerik, kısa çizgi)
|
|
643
|
+
6. **Onay** - Deploy öncesi özet inceleme
|
|
644
|
+
|
|
645
|
+
Tüm adımlar önceki adıma dönmek için **← Geri** navigasyonunu destekler.
|
|
646
|
+
|
|
647
|
+
## 🧪 Testler
|
|
648
|
+
|
|
649
|
+
### Testleri Çalıştırma
|
|
650
|
+
|
|
651
|
+
```bash
|
|
652
|
+
# Tüm testleri çalıştır
|
|
653
|
+
npm test
|
|
654
|
+
|
|
655
|
+
# İzleme modunda testleri çalıştır
|
|
656
|
+
npm run test:watch
|
|
657
|
+
|
|
658
|
+
# Coverage raporu ile testleri çalıştır
|
|
659
|
+
npm run test:coverage
|
|
660
|
+
|
|
661
|
+
# Kodu lint'le
|
|
662
|
+
npm run lint
|
|
663
|
+
|
|
664
|
+
# Kodu formatla
|
|
665
|
+
npm run format
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
### Test Yapısı
|
|
669
|
+
|
|
670
|
+
```
|
|
671
|
+
tests/
|
|
672
|
+
├── __mocks__/ # Mock modülleri (axios, inquirer, ora, chalk)
|
|
673
|
+
├── unit/ # Birim testleri
|
|
674
|
+
│ ├── cloudInit.test.ts
|
|
675
|
+
│ ├── config.test.ts # Config CRUD işlemleri
|
|
676
|
+
│ ├── config-edge.test.ts # Config uç durumları (bozulma, boş dosyalar)
|
|
677
|
+
│ ├── config-command.test.ts # Config komut alt komutları
|
|
678
|
+
│ ├── defaults.test.ts # Varsayılan config CRUD
|
|
679
|
+
│ ├── destroy.test.ts # Destroy komutu birim testleri
|
|
680
|
+
│ ├── doctor.test.ts # Doctor komutu testleri
|
|
681
|
+
│ ├── domain.test.ts # Domain komutu testleri
|
|
682
|
+
│ ├── firewall.test.ts # Firewall komutu testleri
|
|
683
|
+
│ ├── health-command.test.ts # Health komutu testleri
|
|
684
|
+
│ ├── healthCheck.test.ts # Sağlık kontrolü yoklama testleri
|
|
685
|
+
│ ├── healthCheck-edge.test.ts # Sağlık kontrolü uç durumları (302, 401, 500)
|
|
686
|
+
│ ├── list.test.ts # List komutu birim testleri
|
|
687
|
+
│ ├── logger.test.ts
|
|
688
|
+
│ ├── logs.test.ts # Logs komutu testleri
|
|
689
|
+
│ ├── monitor.test.ts # Monitor komutu testleri
|
|
690
|
+
│ ├── prompts.test.ts
|
|
691
|
+
│ ├── providerFactory.test.ts # Provider factory testleri
|
|
692
|
+
│ ├── restart.test.ts # Restart komutu testleri
|
|
693
|
+
│ ├── secure.test.ts # Secure komutu testleri
|
|
694
|
+
│ ├── backup.test.ts # Backup komutu testleri
|
|
695
|
+
│ ├── restore.test.ts # Restore komutu testleri
|
|
696
|
+
│ ├── transfer.test.ts # Export/Import komutu testleri
|
|
697
|
+
│ ├── templates.test.ts # Şablon tanımları testleri
|
|
698
|
+
│ ├── yamlConfig.test.ts # YAML yapılandırma yükleyici testleri
|
|
699
|
+
│ ├── configMerge.test.ts # Yapılandırma birleştirme mantığı testleri
|
|
700
|
+
│ ├── init-fullsetup.test.ts # Init --full-setup testleri
|
|
701
|
+
│ ├── serverSelect.test.ts # Sunucu seçim yardımcı testleri
|
|
702
|
+
│ ├── ssh-command.test.ts # SSH komutu testleri
|
|
703
|
+
│ ├── ssh-utils.test.ts # SSH yardımcı testleri
|
|
704
|
+
│ ├── status.test.ts # Status komutu birim testleri
|
|
705
|
+
│ ├── update.test.ts # Update komutu testleri
|
|
706
|
+
│ ├── add.test.ts # Add komutu testleri
|
|
707
|
+
│ ├── maintain.test.ts # Maintain komutu testleri
|
|
708
|
+
│ └── validators.test.ts
|
|
709
|
+
├── integration/ # Entegrasyon testleri (sağlayıcı API çağrıları)
|
|
710
|
+
│ ├── hetzner.test.ts # destroyServer testleri dahil
|
|
711
|
+
│ ├── digitalocean.test.ts # destroyServer testleri dahil
|
|
712
|
+
│ ├── vultr.test.ts # Vultr sağlayıcı testleri
|
|
713
|
+
│ └── linode.test.ts # Linode sağlayıcı testleri
|
|
714
|
+
└── e2e/ # Uçtan uca testler (tam komut akışları)
|
|
715
|
+
├── init.test.ts
|
|
716
|
+
├── init-noninteractive.test.ts # Etkileşimsiz mod E2E
|
|
717
|
+
├── init-config.test.ts # YAML yapılandırma + şablon E2E
|
|
718
|
+
├── status.test.ts # Status komutu E2E
|
|
719
|
+
└── destroy.test.ts # Destroy komutu E2E
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
### CI/CD
|
|
723
|
+
|
|
724
|
+
Testler her push/PR'da GitHub Actions aracılığıyla otomatik çalışır:
|
|
725
|
+
|
|
726
|
+
- **İşletim Sistemi:** Ubuntu, macOS, Windows
|
|
727
|
+
- **Node.js:** 20, 22
|
|
728
|
+
|
|
729
|
+
### Coverage
|
|
730
|
+
|
|
731
|
+
Mevcut coverage: **%98+ statements/lines**, **%91+ branches**, **%98+ functions**. 44 test paketi genelinde 937 test.
|
|
732
|
+
|
|
733
|
+
## 🔧 Sorun Giderme
|
|
734
|
+
|
|
735
|
+
**"Invalid API token"**
|
|
736
|
+
|
|
737
|
+
- Token'ın Read & Write izinlerine sahip olduğundan emin olun
|
|
738
|
+
- Kopyalarken fazla boşluk olup olmadığını kontrol edin
|
|
739
|
+
- Gerekirse token'ı yeniden oluşturun
|
|
740
|
+
|
|
741
|
+
**"Server creation failed"**
|
|
742
|
+
|
|
743
|
+
- Bulut hesabında yeterli bakiye olduğunu doğrulayın
|
|
744
|
+
- Hesap limitlerini kontrol edin (yeni hesapların kısıtlamaları olabilir)
|
|
745
|
+
- Farklı bölge veya sunucu boyutu deneyin
|
|
746
|
+
|
|
747
|
+
**"Cannot access Coolify UI"**
|
|
748
|
+
|
|
749
|
+
- 3-5 dakika daha bekleyin (Coolify başlatma zaman alır)
|
|
750
|
+
- Kurulum logunu kontrol edin: `ssh root@YOUR_IP "cat /var/log/quicklify-install.log | tail -20"`
|
|
751
|
+
- Güvenlik duvarı ayarlarını kontrol edin (otomatik yapılandırılmalıdır)
|
|
752
|
+
- Bulut konsolunda sunucunun çalıştığını doğrulayın
|
|
753
|
+
|
|
754
|
+
## 🤝 Katkıda Bulunma
|
|
755
|
+
|
|
756
|
+
Katkılarınızı bekliyoruz! Geliştirme ortamı kurulumu, kod kuralları ve PR süreci için [CONTRIBUTING.md](CONTRIBUTING.md) dosyasına bakın.
|
|
757
|
+
|
|
758
|
+
**Katkı alanları:**
|
|
759
|
+
|
|
760
|
+
- Yeni bulut sağlayıcı entegrasyonları
|
|
761
|
+
- CLI iyileştirmeleri
|
|
762
|
+
- Dokümantasyon
|
|
763
|
+
- Hata düzeltmeleri
|
|
764
|
+
|
|
765
|
+
## 📄 Lisans
|
|
766
|
+
|
|
767
|
+
MIT © 2026 Ömer FC
|
|
768
|
+
|
|
769
|
+
Detaylar için [LICENSE](LICENSE) dosyasına bakın.
|
|
770
|
+
|
|
771
|
+
## 🙏 Teşekkürler
|
|
772
|
+
|
|
773
|
+
- [Coolify](https://coolify.io/) - Harika açık kaynaklı PaaS
|
|
774
|
+
- [Hetzner](https://www.hetzner.com/) - Uygun fiyatlı, güvenilir bulut altyapısı
|
|
775
|
+
- [DigitalOcean](https://www.digitalocean.com/) - Geliştirici dostu bulut platformu
|
|
776
|
+
- [Vultr](https://www.vultr.com/) - Yüksek performanslı bulut bilişim
|
|
777
|
+
- [Linode](https://www.linode.com/) - Basit, uygun fiyatlı bulut bilişim
|
|
778
|
+
- Tüm katkıda bulunanlar ve kullanıcılar!
|
|
779
|
+
|
|
780
|
+
## 💬 Destek & Topluluk
|
|
781
|
+
|
|
782
|
+
- 🐛 **Hata Raporları:** [GitHub Issues](https://github.com/omrfc/quicklify/issues)
|
|
783
|
+
- 💡 **Özellik İstekleri:** [GitHub Discussions](https://github.com/omrfc/quicklify/discussions)
|
|
784
|
+
- 🐦 **Güncellemeler:** [@omrfc](https://twitter.com/omrfc)
|
|
785
|
+
- 🌐 **Web Sitesi:** [quicklify.omrfc.dev](https://quicklify.omrfc.dev)
|
|
786
|
+
|
|
787
|
+
## ⭐ Desteğinizi Gösterin
|
|
788
|
+
|
|
789
|
+
Quicklify size yardımcı olduysa, lütfen:
|
|
790
|
+
|
|
791
|
+
- ⭐ Bu depoyu yıldızlayın
|
|
792
|
+
- 🐦 Twitter'da paylaşın
|
|
793
|
+
- 📝 Blog yazısı yazın
|
|
794
|
+
- 💬 Arkadaşlarınıza anlatın!
|
|
795
|
+
|
|
796
|
+
---
|
|
797
|
+
|
|
798
|
+
**[@omrfc](https://github.com/omrfc) tarafından ❤️ ile yapılmıştır**
|
|
799
|
+
|
|
800
|
+
*Geliştiricilerin zamanını kurtarıyor, her seferinde bir deploy.* ⚡
|