kastell 1.12.0 → 1.13.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 +56 -20
- package/README.tr.md +56 -20
- package/SECURITY.md +10 -1
- package/dist/adapters/coolify.d.ts +4 -1
- package/dist/adapters/coolify.d.ts.map +1 -1
- package/dist/adapters/coolify.js +11 -1
- package/dist/adapters/coolify.js.map +1 -1
- package/dist/adapters/dokploy.d.ts +4 -1
- package/dist/adapters/dokploy.d.ts.map +1 -1
- package/dist/adapters/dokploy.js +11 -1
- package/dist/adapters/dokploy.js.map +1 -1
- package/dist/adapters/interface.d.ts +21 -1
- package/dist/adapters/interface.d.ts.map +1 -1
- package/dist/adapters/shared.d.ts +7 -0
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/shared.js +8 -1
- package/dist/adapters/shared.js.map +1 -1
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +41 -96
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/firewall.d.ts.map +1 -1
- package/dist/commands/firewall.js +6 -5
- package/dist/commands/firewall.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +11 -15
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/maintain.d.ts.map +1 -1
- package/dist/commands/maintain.js +2 -2
- package/dist/commands/maintain.js.map +1 -1
- package/dist/commands/restore.js +7 -7
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +20 -32
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +26 -64
- package/dist/commands/update.js.map +1 -1
- package/dist/core/audit/checks/docker.d.ts.map +1 -1
- package/dist/core/audit/checks/docker.js +3 -4
- package/dist/core/audit/checks/docker.js.map +1 -1
- package/dist/core/backup.d.ts +7 -1
- package/dist/core/backup.d.ts.map +1 -1
- package/dist/core/backup.js +21 -2
- package/dist/core/backup.js.map +1 -1
- package/dist/core/lock.js +1 -1
- package/dist/core/lock.js.map +1 -1
- package/dist/core/maintain.d.ts.map +1 -1
- package/dist/core/maintain.js +2 -3
- package/dist/core/maintain.js.map +1 -1
- package/dist/core/provision.d.ts.map +1 -1
- package/dist/core/provision.js +9 -4
- package/dist/core/provision.js.map +1 -1
- package/dist/core/status.d.ts +9 -0
- package/dist/core/status.d.ts.map +1 -1
- package/dist/core/status.js +44 -1
- package/dist/core/status.js.map +1 -1
- package/dist/core/update.d.ts +10 -0
- package/dist/core/update.d.ts.map +1 -0
- package/dist/core/update.js +45 -0
- package/dist/core/update.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +29 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/serverAudit.d.ts +2 -1
- package/dist/mcp/tools/serverAudit.d.ts.map +1 -1
- package/dist/mcp/tools/serverAudit.js +4 -2
- package/dist/mcp/tools/serverAudit.js.map +1 -1
- package/dist/mcp/tools/serverBackup.handlers.d.ts.map +1 -1
- package/dist/mcp/tools/serverBackup.handlers.js +2 -7
- package/dist/mcp/tools/serverBackup.handlers.js.map +1 -1
- package/dist/mcp/tools/serverInfo.d.ts.map +1 -1
- package/dist/mcp/tools/serverInfo.js +28 -10
- package/dist/mcp/tools/serverInfo.js.map +1 -1
- package/dist/mcp/tools/serverLock.d.ts +2 -1
- package/dist/mcp/tools/serverLock.d.ts.map +1 -1
- package/dist/mcp/tools/serverLock.js +4 -2
- package/dist/mcp/tools/serverLock.js.map +1 -1
- package/dist/mcp/tools/serverLogs.d.ts.map +1 -1
- package/dist/mcp/tools/serverLogs.js +11 -4
- package/dist/mcp/tools/serverLogs.js.map +1 -1
- package/dist/mcp/tools/serverMaintain.d.ts.map +1 -1
- package/dist/mcp/tools/serverMaintain.js +9 -6
- package/dist/mcp/tools/serverMaintain.js.map +1 -1
- package/dist/mcp/tools/serverProvision.d.ts +2 -1
- package/dist/mcp/tools/serverProvision.d.ts.map +1 -1
- package/dist/mcp/tools/serverProvision.js +4 -2
- package/dist/mcp/tools/serverProvision.js.map +1 -1
- package/dist/mcp/tools/serverSecure.d.ts +2 -1
- package/dist/mcp/tools/serverSecure.d.ts.map +1 -1
- package/dist/mcp/tools/serverSecure.js +3 -2
- package/dist/mcp/tools/serverSecure.js.map +1 -1
- package/dist/mcp/utils.d.ts +5 -0
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +7 -0
- package/dist/mcp/utils.js.map +1 -1
- package/dist/utils/ssh.d.ts +5 -0
- package/dist/utils/ssh.d.ts.map +1 -1
- package/dist/utils/ssh.js +21 -3
- package/dist/utils/ssh.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ Running `kastell` without any arguments launches an **interactive search menu**
|
|
|
45
45
|
██║ ██╗ ██║ ██║ ███████║ ██║ ███████╗███████╗███████╗
|
|
46
46
|
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚══════╝╚══════╝
|
|
47
47
|
|
|
48
|
-
KASTELL v1.
|
|
48
|
+
KASTELL v1.13.0 · Your infrastructure, fortified.
|
|
49
49
|
|
|
50
50
|
$ kastell init --template production → deploy a new server
|
|
51
51
|
$ kastell status --all → check all servers
|
|
@@ -152,18 +152,26 @@ kastell domain add my-server --domain example.com # Set domain + SSL
|
|
|
152
152
|
|
|
153
153
|
### Security Audit
|
|
154
154
|
```bash
|
|
155
|
-
kastell audit my-server
|
|
156
|
-
kastell audit my-server --json
|
|
157
|
-
kastell audit my-server --threshold 70
|
|
158
|
-
kastell audit my-server --fix
|
|
159
|
-
kastell audit my-server --fix --dry-run
|
|
160
|
-
kastell audit my-server --watch
|
|
161
|
-
kastell audit my-server --watch 60
|
|
162
|
-
kastell audit --host root@1.2.3.4
|
|
163
|
-
kastell audit my-server --badge
|
|
164
|
-
kastell audit my-server --report html
|
|
165
|
-
kastell audit my-server --score-only
|
|
166
|
-
kastell audit my-server --summary
|
|
155
|
+
kastell audit my-server # Full security audit (27 categories, 413 checks)
|
|
156
|
+
kastell audit my-server --json # JSON output for automation
|
|
157
|
+
kastell audit my-server --threshold 70 # Exit code 1 if score below threshold
|
|
158
|
+
kastell audit my-server --fix # Interactive fix mode (prompts per severity)
|
|
159
|
+
kastell audit my-server --fix --dry-run # Preview fixes without executing
|
|
160
|
+
kastell audit my-server --watch # Re-audit every 5 min, show only changes
|
|
161
|
+
kastell audit my-server --watch 60 # Custom interval (60 seconds)
|
|
162
|
+
kastell audit --host root@1.2.3.4 # Audit unregistered server
|
|
163
|
+
kastell audit my-server --badge # SVG badge output
|
|
164
|
+
kastell audit my-server --report html # Full HTML report
|
|
165
|
+
kastell audit my-server --score-only # Just the score (CI-friendly)
|
|
166
|
+
kastell audit my-server --summary # Compact dashboard view
|
|
167
|
+
kastell audit my-server --explain # Explain failed checks with remediation guidance
|
|
168
|
+
kastell audit my-server --compliance cis # Filter by compliance framework (cis-level1, cis-level2, pci-dss, hipaa)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Security Hardening
|
|
172
|
+
```bash
|
|
173
|
+
kastell lock my-server # 19-step production hardening (SSH + UFW + sysctl + auditd + AIDE + Docker)
|
|
174
|
+
kastell lock my-server --dry-run # Preview hardening steps without applying
|
|
167
175
|
```
|
|
168
176
|
|
|
169
177
|
### Monitor & Debug
|
|
@@ -237,7 +245,7 @@ kastell init --template production --provider hetzner
|
|
|
237
245
|
|
|
238
246
|
## Security
|
|
239
247
|
|
|
240
|
-
Kastell is built with security as a priority -- **
|
|
248
|
+
Kastell is built with security as a priority -- **4,178 tests** across 183 suites, including dedicated security test suites.
|
|
241
249
|
|
|
242
250
|
- API tokens are never stored on disk -- prompted at runtime or via environment variables
|
|
243
251
|
- SSH keys are auto-generated if needed (Ed25519)
|
|
@@ -249,6 +257,7 @@ Kastell is built with security as a priority -- **3,333 tests** across 149 suite
|
|
|
249
257
|
- Import/export operations strip sensitive fields and enforce strict file permissions (`0o600`)
|
|
250
258
|
- `--full-setup` enables UFW firewall and SSH hardening automatically
|
|
251
259
|
- MCP: SAFE_MODE (default: on) blocks all destructive operations, Zod schema validation on all inputs, path traversal protection on backup restore
|
|
260
|
+
- Claude Code hooks: destroy-block prevents accidental `kastell destroy` without `--force`, pre-commit audit guard warns on score drops
|
|
252
261
|
|
|
253
262
|
## Installation
|
|
254
263
|
|
|
@@ -278,6 +287,8 @@ Use `kastell status my-server --autostart` to check platform status and auto-res
|
|
|
278
287
|
|
|
279
288
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, and contribution guidelines.
|
|
280
289
|
|
|
290
|
+
Kastell uses **4,178 tests** across 183 suites. Run `npm test` before submitting PRs.
|
|
291
|
+
|
|
281
292
|
## MCP Server (AI Integration)
|
|
282
293
|
|
|
283
294
|
Kastell includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server for AI-powered server management. Works with Claude Code, Cursor, Windsurf, and other MCP-compatible clients.
|
|
@@ -303,22 +314,47 @@ Available tools:
|
|
|
303
314
|
|
|
304
315
|
| Tool | Actions | Description |
|
|
305
316
|
|------|---------|-------------|
|
|
306
|
-
| `server_info` | list, status, health | Query server information, check cloud provider and platform status |
|
|
317
|
+
| `server_info` | list, status, health, sizes | Query server information, check cloud provider and platform status |
|
|
307
318
|
| `server_logs` | logs, monitor | Fetch platform/Docker logs and system metrics via SSH |
|
|
308
319
|
| `server_manage` | add, remove, destroy | Register, unregister, or destroy cloud servers |
|
|
309
320
|
| `server_maintain` | update, restart, maintain | Update platform, restart servers, run full maintenance |
|
|
310
321
|
| `server_secure` | secure, firewall, domain | SSH hardening, firewall rules, domain/SSL management (10 subcommands) |
|
|
311
322
|
| `server_backup` | backup, snapshot | Backup/restore databases and create/manage VPS snapshots |
|
|
312
323
|
| `server_provision` | create | Provision new servers on cloud providers |
|
|
313
|
-
| `server_audit` | audit |
|
|
324
|
+
| `server_audit` | audit | 413-check security audit with compliance framework filtering; use `--explain` for remediation guidance |
|
|
314
325
|
| `server_evidence` | collect | Collect forensic evidence package with checksums |
|
|
315
326
|
| `server_guard` | start, stop, status | Manage autonomous security monitoring daemon |
|
|
316
327
|
| `server_doctor` | diagnose | Proactive health analysis with remediation commands |
|
|
317
|
-
| `server_lock` | harden |
|
|
328
|
+
| `server_lock` | harden | 19-step production hardening (SSH, UFW, sysctl, auditd, AIDE, Docker) |
|
|
318
329
|
| `server_fleet` | overview | Fleet-wide health and security posture dashboard |
|
|
319
330
|
|
|
320
331
|
> All destructive operations (destroy, restore, snapshot-delete, provision, restart, maintain, snapshot-create) require `SAFE_MODE=false` to execute.
|
|
321
332
|
|
|
333
|
+
### Claude Code Plugin
|
|
334
|
+
|
|
335
|
+
Kastell is available as a [Claude Code plugin](kastell-plugin/) for the Anthropic marketplace. The plugin bundles:
|
|
336
|
+
|
|
337
|
+
- **4 skills**: kastell-ops (architecture reference), kastell-scaffold (component generation), kastell-careful (destructive op guard), kastell-research (codebase exploration)
|
|
338
|
+
- **2 agents**: kastell-auditor (parallel audit analyzer), kastell-fixer (worktree-isolated auto-fix)
|
|
339
|
+
- **5 hooks**: destroy-block, session-audit, session-log, pre-commit-audit-guard, stop-quality-check
|
|
340
|
+
|
|
341
|
+
Install via Claude Code plugin manager or use directly with `claude --plugin-dir kastell-plugin`.
|
|
342
|
+
|
|
343
|
+
### MCP Platform Setup
|
|
344
|
+
|
|
345
|
+
| Platform | Config Location | Guide |
|
|
346
|
+
|----------|----------------|-------|
|
|
347
|
+
| Claude Code | `claude mcp add` or `.mcp.json` | [Setup Guide](docs/mcp-platforms/claude-code.md) |
|
|
348
|
+
| Claude Desktop | `claude_desktop_config.json` | [Setup Guide](docs/mcp-platforms/claude-desktop.md) |
|
|
349
|
+
| VS Code / Copilot | `.vscode/mcp.json` | [Setup Guide](docs/mcp-platforms/vscode.md) |
|
|
350
|
+
| Cursor | `.cursor/mcp.json` | [Setup Guide](docs/mcp-platforms/cursor.md) |
|
|
351
|
+
|
|
352
|
+
> More platforms (JetBrains, Windsurf, Gemini, and others) coming in v2.0.
|
|
353
|
+
|
|
354
|
+
### AI Discoverability
|
|
355
|
+
|
|
356
|
+
Kastell provides [`llms.txt`](llms.txt) for AI crawlers and is listed in the [MCP Registry](https://registry.modelcontextprotocol.io/) as `io.github.kastelldev/kastell`.
|
|
357
|
+
|
|
322
358
|
## CI/CD Integration
|
|
323
359
|
|
|
324
360
|
Use `kastell audit` in your CI pipeline to enforce security baselines:
|
|
@@ -347,9 +383,9 @@ The `--threshold` flag causes a non-zero exit code when the score falls below th
|
|
|
347
383
|
|
|
348
384
|
## What's Next
|
|
349
385
|
|
|
350
|
-
-
|
|
351
|
-
- Plugin ecosystem
|
|
352
|
-
- Dashboard and managed service
|
|
386
|
+
- Test Excellence: Mutation testing, coverage gaps, integration tests (v1.14)
|
|
387
|
+
- Plugin ecosystem with marketplace distribution (v2.0)
|
|
388
|
+
- Dashboard and managed service (v3.0)
|
|
353
389
|
|
|
354
390
|
## Philosophy
|
|
355
391
|
|
package/README.tr.md
CHANGED
|
@@ -45,7 +45,7 @@ npx kastell
|
|
|
45
45
|
██║ ██╗ ██║ ██║ ███████║ ██║ ███████╗███████╗███████╗
|
|
46
46
|
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚══════╝╚══════╝
|
|
47
47
|
|
|
48
|
-
KASTELL v1.
|
|
48
|
+
KASTELL v1.13.0 · Your infrastructure, fortified.
|
|
49
49
|
|
|
50
50
|
$ kastell init --template production → deploy a new server
|
|
51
51
|
$ kastell status --all → check all servers
|
|
@@ -152,18 +152,26 @@ kastell domain add sunucum --domain ornek.com # Domain + SSL ayarla
|
|
|
152
152
|
|
|
153
153
|
### Güvenlik Denetimi
|
|
154
154
|
```bash
|
|
155
|
-
kastell audit sunucum
|
|
156
|
-
kastell audit sunucum --json
|
|
157
|
-
kastell audit sunucum --threshold 70
|
|
158
|
-
kastell audit sunucum --fix
|
|
159
|
-
kastell audit sunucum --fix --dry-run
|
|
160
|
-
kastell audit sunucum --watch
|
|
161
|
-
kastell audit sunucum --watch 60
|
|
162
|
-
kastell audit --host root@1.2.3.4
|
|
163
|
-
kastell audit sunucum --badge
|
|
164
|
-
kastell audit sunucum --report html
|
|
165
|
-
kastell audit sunucum --score-only
|
|
166
|
-
kastell audit sunucum --summary
|
|
155
|
+
kastell audit sunucum # Tam güvenlik denetimi (27 kategori, 413 kontrol)
|
|
156
|
+
kastell audit sunucum --json # Otomasyon için JSON çıktısı
|
|
157
|
+
kastell audit sunucum --threshold 70 # Skor eşiğin altındaysa exit code 1
|
|
158
|
+
kastell audit sunucum --fix # İnteraktif düzeltme modu (önem derecesine göre)
|
|
159
|
+
kastell audit sunucum --fix --dry-run # Düzeltmeleri çalıştırmadan önizle
|
|
160
|
+
kastell audit sunucum --watch # 5 dk aralıkla tekrar denetle, sadece değişiklikleri göster
|
|
161
|
+
kastell audit sunucum --watch 60 # Özel aralık (60 saniye)
|
|
162
|
+
kastell audit --host root@1.2.3.4 # Kayıtlı olmayan sunucuyu denetle
|
|
163
|
+
kastell audit sunucum --badge # SVG rozet çıktısı
|
|
164
|
+
kastell audit sunucum --report html # Tam HTML raporu
|
|
165
|
+
kastell audit sunucum --score-only # Sadece skor (CI uyumlu)
|
|
166
|
+
kastell audit sunucum --summary # Kompakt özet görünümü
|
|
167
|
+
kastell audit sunucum --explain # Başarısız kontrolleri iyileştirme rehberiyle açıkla
|
|
168
|
+
kastell audit sunucum --compliance cis # Uyumluluk çerçevesine göre filtrele (cis-level1, cis-level2, pci-dss, hipaa)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Güvenlik Sertleştirme
|
|
172
|
+
```bash
|
|
173
|
+
kastell lock sunucum # 19 adımlı production sertleştirme (SSH + UFW + sysctl + auditd + AIDE + Docker)
|
|
174
|
+
kastell lock sunucum --dry-run # Sertleştirme adımlarını uygulamadan önizle
|
|
167
175
|
```
|
|
168
176
|
|
|
169
177
|
### İzleme ve Hata Ayıklama
|
|
@@ -237,7 +245,7 @@ kastell init --template production --provider hetzner
|
|
|
237
245
|
|
|
238
246
|
## Güvenlik
|
|
239
247
|
|
|
240
|
-
Kastell güvenlik öncelikli olarak geliştirilmektedir --
|
|
248
|
+
Kastell güvenlik öncelikli olarak geliştirilmektedir -- 183 test suite'inde **4.178 test**, özel güvenlik test suite'leri dahil.
|
|
241
249
|
|
|
242
250
|
- API token'ları asla diske kaydedilmez -- çalışma zamanında sorulur veya ortam değişkenlerinden alınır
|
|
243
251
|
- SSH anahtarları gerekirse otomatik oluşturulur (Ed25519)
|
|
@@ -249,6 +257,7 @@ Kastell güvenlik öncelikli olarak geliştirilmektedir -- 149 test suite'inde *
|
|
|
249
257
|
- İçe/dışa aktarma işlemleri hassas alanları temizler ve dosya izinlerini sıkılaştırır (`0o600`)
|
|
250
258
|
- `--full-setup` güvenlik duvarı ve SSH sıkılaştırmasını otomatik etkinleştirir
|
|
251
259
|
- MCP: SAFE_MODE (varsayılan: açık) tüm yıkıcı işlemleri engeller, tüm girdilerde Zod şema doğrulaması, yedek geri yüklemede path traversal koruması
|
|
260
|
+
- Claude Code hook'ları: destroy-block, `--force` olmadan `kastell destroy` komutunu engeller; pre-commit audit guard skor düşüşünde uyarır
|
|
252
261
|
|
|
253
262
|
## Kurulum
|
|
254
263
|
|
|
@@ -278,6 +287,8 @@ Platform durumunu kontrol edip gerekirse otomatik yeniden başlatmak için `kast
|
|
|
278
287
|
|
|
279
288
|
Geliştirme ortamı kurulumu, test ve katkı rehberi için [CONTRIBUTING.md](CONTRIBUTING.md) dosyasına bakın.
|
|
280
289
|
|
|
290
|
+
Kastell, 183 suite'te **4.178 test** kullanmaktadır. PR göndermeden önce `npm test` çalıştırın.
|
|
291
|
+
|
|
281
292
|
## MCP Sunucusu (Yapay Zeka Entegrasyonu)
|
|
282
293
|
|
|
283
294
|
Kastell, yapay zeka destekli sunucu yönetimi için yerleşik bir [Model Context Protocol](https://modelcontextprotocol.io/) sunucusu içerir. Claude Code, Cursor, Windsurf ve diğer MCP uyumlu istemcilerle çalışır.
|
|
@@ -303,22 +314,47 @@ Mevcut araçlar:
|
|
|
303
314
|
|
|
304
315
|
| Araç | Eylemler | Açıklama |
|
|
305
316
|
|------|----------|----------|
|
|
306
|
-
| `server_info` | list, status, health | Sunucu bilgilerini sorgula, bulut sağlayıcı ve platform durumunu kontrol et |
|
|
317
|
+
| `server_info` | list, status, health, sizes | Sunucu bilgilerini sorgula, bulut sağlayıcı ve platform durumunu kontrol et |
|
|
307
318
|
| `server_logs` | logs, monitor | SSH ile platform/Docker loglarını ve sistem metriklerini getir |
|
|
308
319
|
| `server_manage` | add, remove, destroy | Sunucuları kaydet, kaldır veya bulut sunucusunu sil |
|
|
309
320
|
| `server_maintain` | update, restart, maintain | Platformu güncelle, sunucuları yeniden başlat, tam bakım yap |
|
|
310
321
|
| `server_secure` | secure, firewall, domain | SSH sıkılaştırma, güvenlik duvarı kuralları, domain/SSL yönetimi (10 alt komut) |
|
|
311
322
|
| `server_backup` | backup, snapshot | Veritabanı yedekle/geri yükle ve VPS snapshot oluştur/yönet |
|
|
312
323
|
| `server_provision` | create | Bulut sağlayıcılarda yeni sunucu oluştur |
|
|
313
|
-
| `server_audit` | audit |
|
|
324
|
+
| `server_audit` | audit | 413 kontrollü güvenlik denetimi, uyumluluk çerçevesi filtresiyle; iyileştirme rehberi için `--explain` kullanın |
|
|
314
325
|
| `server_evidence` | collect | Adli kanıt paketi topla (SHA256 checksum ile) |
|
|
315
326
|
| `server_guard` | start, stop, status | Otonom güvenlik izleme daemon'u yönet |
|
|
316
327
|
| `server_doctor` | diagnose | Proaktif sağlık analizi ve iyileştirme komutları |
|
|
317
|
-
| `server_lock` | harden |
|
|
328
|
+
| `server_lock` | harden | 19 adımlı production sertleştirme (SSH, UFW, sysctl, auditd, AIDE, Docker) |
|
|
318
329
|
| `server_fleet` | overview | Tüm filo için sağlık ve güvenlik duruşu panosu |
|
|
319
330
|
|
|
320
331
|
> Tüm yıkıcı işlemler (destroy, restore, snapshot-delete, provision, restart, maintain, snapshot-create) çalıştırılmak için `SAFE_MODE=false` gerektirir.
|
|
321
332
|
|
|
333
|
+
### Claude Code Eklentisi
|
|
334
|
+
|
|
335
|
+
Kastell, Anthropic marketplace için [Claude Code eklentisi](kastell-plugin/) olarak da sunulmaktadır. Eklenti şunları içerir:
|
|
336
|
+
|
|
337
|
+
- **4 beceri**: kastell-ops (mimari referans), kastell-scaffold (bileşen üretimi), kastell-careful (yıkıcı işlem koruyucusu), kastell-research (kod tabanı keşfi)
|
|
338
|
+
- **2 ajan**: kastell-auditor (paralel denetim analizcisi), kastell-fixer (worktree izolasyonlu otomatik düzeltici)
|
|
339
|
+
- **5 hook**: destroy-block, session-audit, session-log, pre-commit-audit-guard, stop-quality-check
|
|
340
|
+
|
|
341
|
+
Kurulum için Claude Code eklenti yöneticisini kullanın ya da doğrudan `claude --plugin-dir kastell-plugin` ile çalıştırın.
|
|
342
|
+
|
|
343
|
+
### MCP Platform Kurulumu
|
|
344
|
+
|
|
345
|
+
| Platform | Yapılandırma Konumu | Kılavuz |
|
|
346
|
+
|----------|---------------------|---------|
|
|
347
|
+
| Claude Code | `claude mcp add` veya `.mcp.json` | [Kurulum Rehberi](docs/mcp-platforms/claude-code.md) |
|
|
348
|
+
| Claude Desktop | `claude_desktop_config.json` | [Kurulum Rehberi](docs/mcp-platforms/claude-desktop.md) |
|
|
349
|
+
| VS Code / Copilot | `.vscode/mcp.json` | [Kurulum Rehberi](docs/mcp-platforms/vscode.md) |
|
|
350
|
+
| Cursor | `.cursor/mcp.json` | [Kurulum Rehberi](docs/mcp-platforms/cursor.md) |
|
|
351
|
+
|
|
352
|
+
> Daha fazla platform (JetBrains, Windsurf, Gemini ve diğerleri) v2.0'da eklenecek.
|
|
353
|
+
|
|
354
|
+
### AI Keşfedilebilirliği
|
|
355
|
+
|
|
356
|
+
Kastell, AI tarayıcıları için [`llms.txt`](llms.txt) sağlar ve [MCP Registry](https://registry.modelcontextprotocol.io/)'de `io.github.kastelldev/kastell` olarak listelenmiştir.
|
|
357
|
+
|
|
322
358
|
`kastell audit` komutunu CI pipeline'ınızda güvenlik eşiği zorunluluğu için kullanın:
|
|
323
359
|
|
|
324
360
|
```yaml
|
|
@@ -340,9 +376,9 @@ jobs:
|
|
|
340
376
|
|
|
341
377
|
## Gelecek Planlar
|
|
342
378
|
|
|
343
|
-
-
|
|
344
|
-
-
|
|
345
|
-
- Dashboard ve yönetilen hizmet
|
|
379
|
+
- Test Mükemmelliği: Mutasyon testi, kapsam boşlukları, entegrasyon testleri (v1.14)
|
|
380
|
+
- Marketplace dağıtımıyla plugin ekosistemi (v2.0)
|
|
381
|
+
- Dashboard ve yönetilen hizmet (v3.0)
|
|
346
382
|
|
|
347
383
|
## Felsefe
|
|
348
384
|
|
package/SECURITY.md
CHANGED
|
@@ -71,6 +71,15 @@ Response time: Within 48 hours
|
|
|
71
71
|
- **SAFE_MODE** (`KASTELL_SAFE_MODE=true`, default enabled for MCP) blocks destructive operations: `destroy`, `restore`, `snapshot-delete`, `provision`, `restart`, `maintain`, `snapshot-create`
|
|
72
72
|
- Mode guard (`requireCoolifyMode()`) prevents Coolify-specific operations on bare servers
|
|
73
73
|
|
|
74
|
+
### Claude Code Plugin Security
|
|
75
|
+
- Plugin hooks run in the Claude Code process — no separate daemon or elevated privileges
|
|
76
|
+
- `destroy-block` hook prevents accidental `kastell destroy` without explicit `--force` flag
|
|
77
|
+
- `pre-commit-audit-guard` hook compares audit scores before/after — blocks commit if score drops
|
|
78
|
+
- `session-audit` hook runs `kastell audit --silent` at session start — informational only, never blocks
|
|
79
|
+
- Plugin agents (`kastell-auditor`) use `memory: user` scope — audit data stays in user's Claude context
|
|
80
|
+
- `kastell-fixer` uses `isolation: worktree` — runs in a separate git worktree, cannot modify the working tree directly
|
|
81
|
+
- All hooks use Node.js (not shell scripts) for Windows cross-platform compatibility
|
|
82
|
+
|
|
74
83
|
### Import/Export Security
|
|
75
84
|
- Sensitive field stripping on import
|
|
76
85
|
- Strict file permissions on export
|
|
@@ -89,7 +98,7 @@ Response time: Within 48 hours
|
|
|
89
98
|
| A6 - Vulnerable Components | See below | Production: 0 vulnerabilities |
|
|
90
99
|
| A7 - XSS | N/A | CLI tool, no web UI |
|
|
91
100
|
| A8 - Insecure Deserialization | Mitigated | JSON.parse wrapped in try/catch with safe defaults |
|
|
92
|
-
| A9 - Logging & Monitoring |
|
|
101
|
+
| A9 - Logging & Monitoring | Mitigated | `sanitizeStderr()` prevents sensitive data in logs, MCP structured logging via `sendLoggingMessage()` |
|
|
93
102
|
| A10 - SSRF | Mitigated | `assertValidIp()` on all outbound SSH/HTTP targets |
|
|
94
103
|
|
|
95
104
|
## Dependency Security
|
|
@@ -2,7 +2,10 @@ import type { PlatformAdapter, HealthResult, PlatformStatusResult, PlatformBacku
|
|
|
2
2
|
import type { BackupManifest } from "../types/index.js";
|
|
3
3
|
export declare class CoolifyAdapter implements PlatformAdapter {
|
|
4
4
|
readonly name = "coolify";
|
|
5
|
-
|
|
5
|
+
readonly port = 8000;
|
|
6
|
+
readonly defaultLogService = "coolify";
|
|
7
|
+
readonly platformPorts: readonly number[];
|
|
8
|
+
getCloudInit(serverName: string, sshPublicKey?: string): string;
|
|
6
9
|
healthCheck(ip: string, domain?: string): Promise<HealthResult>;
|
|
7
10
|
createBackup(ip: string, serverName: string, provider: string): Promise<PlatformBackupResult>;
|
|
8
11
|
restoreBackup(ip: string, backupPath: string, manifest: BackupManifest, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../src/adapters/coolify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;
|
|
1
|
+
{"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../src/adapters/coolify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,IAAI,QAAgB;IAC7B,QAAQ,CAAC,iBAAiB,aAAa;IACvC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAuC;IAEhF,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAiGzD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAI1B,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAI3B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAM/C,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;CActB"}
|
package/dist/adapters/coolify.js
CHANGED
|
@@ -5,7 +5,10 @@ const SCRIPT_VALIDATE = 'head -c2 "$1" | grep -q "#!" && [ "$(wc -c < "$1")" -gt
|
|
|
5
5
|
const COOLIFY_UPDATE_CMD = `curl -fsSL ${COOLIFY_INSTALL_URL} -o /tmp/coolify-install.sh && ${SCRIPT_VALIDATE.replace(/\$1/g, "/tmp/coolify-install.sh")} && bash /tmp/coolify-install.sh && rm -f /tmp/coolify-install.sh`;
|
|
6
6
|
export class CoolifyAdapter {
|
|
7
7
|
name = "coolify";
|
|
8
|
-
|
|
8
|
+
port = COOLIFY_PORT;
|
|
9
|
+
defaultLogService = "coolify";
|
|
10
|
+
platformPorts = [80, 443, COOLIFY_PORT, 6001, 6002];
|
|
11
|
+
getCloudInit(serverName, sshPublicKey) {
|
|
9
12
|
const safeName = serverName.replace(/[^a-z0-9-]/g, "");
|
|
10
13
|
return `#!/bin/bash
|
|
11
14
|
set +e
|
|
@@ -82,6 +85,13 @@ if ! ss -tlnp | grep -q ':22 '; then
|
|
|
82
85
|
sleep 2
|
|
83
86
|
fi
|
|
84
87
|
|
|
88
|
+
# Re-inject SSH public key (Coolify installer may overwrite authorized_keys)
|
|
89
|
+
${sshPublicKey ? `echo "Re-injecting SSH public key..."
|
|
90
|
+
mkdir -p /root/.ssh
|
|
91
|
+
chmod 700 /root/.ssh
|
|
92
|
+
grep -qF '${sshPublicKey.trim().replace(/'/g, "'\\''")}' /root/.ssh/authorized_keys 2>/dev/null || echo '${sshPublicKey.trim().replace(/'/g, "'\\''")}' >> /root/.ssh/authorized_keys
|
|
93
|
+
chmod 600 /root/.ssh/authorized_keys` : "# No SSH public key provided — skipping re-injection"}
|
|
94
|
+
|
|
85
95
|
# Wait for services
|
|
86
96
|
echo "Waiting for Coolify services to start..."
|
|
87
97
|
sleep 30
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../src/adapters/coolify.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGxH,4EAA4E;AAC5E,MAAM,eAAe,GAAG,+DAA+D,CAAC;AACxF,MAAM,kBAAkB,GAAG,cAAc,mBAAmB,kCAAkC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,mEAAmE,CAAC;AAE5N,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../src/adapters/coolify.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,10 @@ import type { PlatformAdapter, HealthResult, PlatformStatusResult, PlatformBacku
|
|
|
2
2
|
import type { BackupManifest } from "../types/index.js";
|
|
3
3
|
export declare class DokployAdapter implements PlatformAdapter {
|
|
4
4
|
readonly name = "dokploy";
|
|
5
|
-
|
|
5
|
+
readonly port = 3000;
|
|
6
|
+
readonly defaultLogService = "dokploy";
|
|
7
|
+
readonly platformPorts: readonly number[];
|
|
8
|
+
getCloudInit(serverName: string, sshPublicKey?: string): string;
|
|
6
9
|
healthCheck(ip: string, domain?: string): Promise<HealthResult>;
|
|
7
10
|
createBackup(ip: string, serverName: string, provider: string): Promise<PlatformBackupResult>;
|
|
8
11
|
restoreBackup(ip: string, backupPath: string, manifest: BackupManifest, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dokploy.d.ts","sourceRoot":"","sources":["../../src/adapters/dokploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;
|
|
1
|
+
{"version":3,"file":"dokploy.d.ts","sourceRoot":"","sources":["../../src/adapters/dokploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,IAAI,QAAgB;IAC7B,QAAQ,CAAC,iBAAiB,aAAa;IACvC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAA2B;IAEpE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAwGzD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAI1B,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAI3B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAM/C,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;CActB"}
|
package/dist/adapters/dokploy.js
CHANGED
|
@@ -5,7 +5,10 @@ const SCRIPT_VALIDATE = 'head -c2 "$1" | grep -q "#!" && [ "$(wc -c < "$1")" -gt
|
|
|
5
5
|
const DOKPLOY_UPDATE_CMD = `curl -sSL ${DOKPLOY_INSTALL_URL} -o /tmp/dokploy-install.sh && ${SCRIPT_VALIDATE.replace(/\$1/g, "/tmp/dokploy-install.sh")} && sh /tmp/dokploy-install.sh update && rm -f /tmp/dokploy-install.sh`;
|
|
6
6
|
export class DokployAdapter {
|
|
7
7
|
name = "dokploy";
|
|
8
|
-
|
|
8
|
+
port = DOKPLOY_PORT;
|
|
9
|
+
defaultLogService = "dokploy";
|
|
10
|
+
platformPorts = [80, 443, DOKPLOY_PORT];
|
|
11
|
+
getCloudInit(serverName, sshPublicKey) {
|
|
9
12
|
const safeName = serverName.replace(/[^a-z0-9-]/g, "");
|
|
10
13
|
return `#!/bin/bash
|
|
11
14
|
set +e
|
|
@@ -89,6 +92,13 @@ if ! ss -tlnp | grep -q ':22 '; then
|
|
|
89
92
|
sleep 2
|
|
90
93
|
fi
|
|
91
94
|
|
|
95
|
+
# Re-inject SSH public key (platform installer may overwrite authorized_keys)
|
|
96
|
+
${sshPublicKey ? `echo "Re-injecting SSH public key..."
|
|
97
|
+
mkdir -p /root/.ssh
|
|
98
|
+
chmod 700 /root/.ssh
|
|
99
|
+
grep -qF '${sshPublicKey.trim().replace(/'/g, "'\\''")}' /root/.ssh/authorized_keys 2>/dev/null || echo '${sshPublicKey.trim().replace(/'/g, "'\\''")}' >> /root/.ssh/authorized_keys
|
|
100
|
+
chmod 600 /root/.ssh/authorized_keys` : "# No SSH public key provided — skipping re-injection"}
|
|
101
|
+
|
|
92
102
|
# Wait for services
|
|
93
103
|
echo "Waiting for Dokploy services to start..."
|
|
94
104
|
sleep 30
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dokploy.js","sourceRoot":"","sources":["../../src/adapters/dokploy.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGxH,4EAA4E;AAC5E,MAAM,eAAe,GAAG,+DAA+D,CAAC;AACxF,MAAM,kBAAkB,GAAG,aAAa,mBAAmB,kCAAkC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,wEAAwE,CAAC;AAEhO,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"dokploy.js","sourceRoot":"","sources":["../../src/adapters/dokploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BackupManifest } from "../types/index.js";
|
|
2
|
+
import type { LogService } from "../core/logs.js";
|
|
2
3
|
/**
|
|
3
4
|
* Result of a platform health check.
|
|
4
5
|
*
|
|
@@ -89,15 +90,34 @@ export interface PlatformAdapter {
|
|
|
89
90
|
* @example "coolify" | "dokploy"
|
|
90
91
|
*/
|
|
91
92
|
readonly name: string;
|
|
93
|
+
/**
|
|
94
|
+
* Default HTTP port for the platform's web UI.
|
|
95
|
+
* Used by commands that need the platform port without importing constants directly.
|
|
96
|
+
* @example 8000 (Coolify) | 3000 (Dokploy)
|
|
97
|
+
*/
|
|
98
|
+
readonly port: number;
|
|
99
|
+
/**
|
|
100
|
+
* Default log service name for `kastell logs` when no `--service` is specified.
|
|
101
|
+
* Matches the platform name (lowercase).
|
|
102
|
+
* @example "coolify" | "dokploy"
|
|
103
|
+
*/
|
|
104
|
+
readonly defaultLogService: LogService;
|
|
105
|
+
/**
|
|
106
|
+
* Ports required by this platform that should be protected from firewall removal.
|
|
107
|
+
* Includes HTTP (80), HTTPS (443), the platform port, and any additional service ports.
|
|
108
|
+
*/
|
|
109
|
+
readonly platformPorts: readonly number[];
|
|
92
110
|
/**
|
|
93
111
|
* Returns a cloud-init bash script that installs the platform on a fresh
|
|
94
112
|
* Ubuntu/Debian server. Executed once during `kastell init`.
|
|
95
113
|
*
|
|
96
114
|
* @param serverName - Server name used inside the script for logging.
|
|
97
115
|
* Sanitized to `[a-z0-9-]` before insertion.
|
|
116
|
+
* @param sshPublicKey - Optional SSH public key to re-inject after platform
|
|
117
|
+
* installation (some installers overwrite authorized_keys).
|
|
98
118
|
* @returns A bash script string starting with `#!/bin/bash`.
|
|
99
119
|
*/
|
|
100
|
-
getCloudInit(serverName: string): string;
|
|
120
|
+
getCloudInit(serverName: string, sshPublicKey?: string): string;
|
|
101
121
|
/**
|
|
102
122
|
* Checks whether the platform's web UI is reachable.
|
|
103
123
|
* Tries HTTPS via domain first (if provided), then falls back to HTTP on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/adapters/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/adapters/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC;CACrC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C;;;;;;;;;OASG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhE;;;;;;;;;;;OAWG;IACH,YAAY,CACV,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAErD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3C"}
|
|
@@ -59,4 +59,11 @@ export declare function sharedCreateBackup(ip: string, serverName: string, provi
|
|
|
59
59
|
export declare function sharedRestoreBackup(ip: string, backupPath: string, _manifest: BackupManifest, config: AdapterRestoreConfig, _options?: {
|
|
60
60
|
force?: boolean;
|
|
61
61
|
}): Promise<PlatformRestoreResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Returns a capitalized display name for a platform adapter.
|
|
64
|
+
* @example adapterDisplayName(coolifyAdapter) => "Coolify"
|
|
65
|
+
*/
|
|
66
|
+
export declare function adapterDisplayName(adapter: {
|
|
67
|
+
readonly name: string;
|
|
68
|
+
}): string;
|
|
62
69
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAsBvB;AASD,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAoBvB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAID,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAuF/B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAiIhC"}
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAsBvB;AASD,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAoBvB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAID,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAuF/B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAiIhC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE7E"}
|
package/dist/adapters/shared.js
CHANGED
|
@@ -192,7 +192,7 @@ export async function sharedRestoreBackup(ip, backupPath, _manifest, config, _op
|
|
|
192
192
|
}
|
|
193
193
|
steps.push({ name: "Upload config backup", status: "success" });
|
|
194
194
|
// Step 1: Stop platform
|
|
195
|
-
const platformLabel =
|
|
195
|
+
const platformLabel = adapterDisplayName({ name: config.platform });
|
|
196
196
|
const stopResult = await sshExec(ip, config.stopCmd);
|
|
197
197
|
if (stopResult.code !== 0) {
|
|
198
198
|
steps.push({
|
|
@@ -264,4 +264,11 @@ export async function sharedRestoreBackup(ip, backupPath, _manifest, config, _op
|
|
|
264
264
|
};
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Returns a capitalized display name for a platform adapter.
|
|
269
|
+
* @example adapterDisplayName(coolifyAdapter) => "Coolify"
|
|
270
|
+
*/
|
|
271
|
+
export function adapterDisplayName(adapter) {
|
|
272
|
+
return adapter.name.charAt(0).toUpperCase() + adapter.name.slice(1);
|
|
273
|
+
}
|
|
267
274
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAgOA,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAChF,OAAO,CAAC,IAAI,CAAC,CA2Ef"}
|