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.
Files changed (67) hide show
  1. package/README.md +144 -19
  2. package/README.tr.md +800 -0
  3. package/dist/commands/add.d.ts +9 -0
  4. package/dist/commands/add.d.ts.map +1 -0
  5. package/dist/commands/add.js +151 -0
  6. package/dist/commands/add.js.map +1 -0
  7. package/dist/commands/backup.d.ts +1 -0
  8. package/dist/commands/backup.d.ts.map +1 -1
  9. package/dist/commands/backup.js +104 -1
  10. package/dist/commands/backup.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +20 -6
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/maintain.d.ts +8 -0
  15. package/dist/commands/maintain.d.ts.map +1 -0
  16. package/dist/commands/maintain.js +253 -0
  17. package/dist/commands/maintain.js.map +1 -0
  18. package/dist/commands/remove.d.ts +2 -0
  19. package/dist/commands/remove.d.ts.map +1 -0
  20. package/dist/commands/remove.js +25 -0
  21. package/dist/commands/remove.js.map +1 -0
  22. package/dist/commands/restart.d.ts.map +1 -1
  23. package/dist/commands/restart.js +4 -0
  24. package/dist/commands/restart.js.map +1 -1
  25. package/dist/commands/restore.js +1 -1
  26. package/dist/commands/restore.js.map +1 -1
  27. package/dist/commands/status.d.ts +6 -1
  28. package/dist/commands/status.d.ts.map +1 -1
  29. package/dist/commands/status.js +120 -7
  30. package/dist/commands/status.js.map +1 -1
  31. package/dist/commands/update.d.ts +5 -1
  32. package/dist/commands/update.d.ts.map +1 -1
  33. package/dist/commands/update.js +101 -14
  34. package/dist/commands/update.js.map +1 -1
  35. package/dist/index.js +30 -4
  36. package/dist/index.js.map +1 -1
  37. package/dist/providers/hetzner.js +2 -2
  38. package/dist/providers/hetzner.js.map +1 -1
  39. package/dist/providers/linode.d.ts +21 -0
  40. package/dist/providers/linode.d.ts.map +1 -0
  41. package/dist/providers/linode.js +203 -0
  42. package/dist/providers/linode.js.map +1 -0
  43. package/dist/providers/vultr.d.ts +21 -0
  44. package/dist/providers/vultr.d.ts.map +1 -0
  45. package/dist/providers/vultr.js +183 -0
  46. package/dist/providers/vultr.js.map +1 -0
  47. package/dist/utils/config.d.ts +1 -0
  48. package/dist/utils/config.d.ts.map +1 -1
  49. package/dist/utils/config.js +7 -0
  50. package/dist/utils/config.js.map +1 -1
  51. package/dist/utils/prompts.d.ts.map +1 -1
  52. package/dist/utils/prompts.js +2 -0
  53. package/dist/utils/prompts.js.map +1 -1
  54. package/dist/utils/providerFactory.d.ts.map +1 -1
  55. package/dist/utils/providerFactory.js +10 -0
  56. package/dist/utils/providerFactory.js.map +1 -1
  57. package/dist/utils/serverSelect.d.ts +1 -0
  58. package/dist/utils/serverSelect.d.ts.map +1 -1
  59. package/dist/utils/serverSelect.js +37 -6
  60. package/dist/utils/serverSelect.js.map +1 -1
  61. package/dist/utils/templates.d.ts.map +1 -1
  62. package/dist/utils/templates.js +6 -0
  63. package/dist/utils/templates.js.map +1 -1
  64. package/dist/utils/yamlConfig.d.ts.map +1 -1
  65. package/dist/utils/yamlConfig.js +3 -3
  66. package/dist/utils/yamlConfig.js.map +1 -1
  67. package/package.json +3 -1
package/README.md CHANGED
@@ -8,11 +8,11 @@
8
8
  ![GitHub stars](https://img.shields.io/github/stars/omrfc/quicklify?style=flat-square)
9
9
  [![Socket Badge](https://socket.dev/api/badge/npm/package/quicklify)](https://socket.dev/npm/package/quicklify)
10
10
 
11
- > Deploy Coolify to any cloud VPS with one command
11
+ > Deploy Coolify to a cloud VPS with one command
12
12
 
13
13
  ## 🚀 What is Quicklify?
14
14
 
15
- Quicklify is a CLI tool that automates Coolify installation on cloud VPS providers. One command to deploy your self-hosted PaaS platform.
15
+ Quicklify is a CLI tool that automates [Coolify](https://coolify.io/) deployment on cloud VPS providers. Coolify is an open-source, self-hosted alternative to Vercel/Netlify/Heroku — and Quicklify gets it running on your VPS with one command.
16
16
 
17
17
  **Before Quicklify:**
18
18
 
@@ -29,7 +29,7 @@ Total: ~30 minutes + manual work
29
29
 
30
30
  ```bash
31
31
  npx quicklify init
32
- # Hetzner: ~4 minutes | DigitalOcean: ~6 minutes
32
+ # Hetzner: ~4 min | DigitalOcean: ~6 min | Vultr: ~5 min | Linode: ~6 min
33
33
  # Zero manual work ✨
34
34
  ```
35
35
 
@@ -38,10 +38,10 @@ npx quicklify init
38
38
  - 🎯 **One Command Deploy** - VPS + Coolify with a single command
39
39
  - 💰 **Cost Savings** - $50-200/mo (Vercel/Netlify) → €3.79/mo
40
40
  - 🔒 **Secure by Default** - Automated security setup
41
- - 🌍 **Multi-Cloud** - Hetzner Cloud + DigitalOcean
41
+ - 🌍 **Multi-Cloud** - Hetzner Cloud, DigitalOcean, Vultr, Linode
42
42
  - 💻 **Beautiful CLI** - Interactive prompts with validation
43
43
  - 🎨 **ARM64 Ready** - Support for cost-effective ARM servers
44
- - ⚡ **Fast Setup** - Hetzner ~4 min, DigitalOcean ~6 min
44
+ - ⚡ **Fast Setup** - Hetzner ~4 min, DigitalOcean ~6 min, Vultr ~5 min, Linode ~6 min
45
45
  - ✨ **Dynamic Server Types** - Only shows compatible types for selected location
46
46
  - 🔥 **Auto Firewall** - Ports 8000, 22, 80, 443 configured automatically
47
47
  - 🚀 **Zero SSH Required** - Opens directly in browser after deployment
@@ -64,6 +64,69 @@ npx quicklify init
64
64
  - 📄 **YAML Config** - `quicklify init --config quicklify.yml` for one-command deploy
65
65
  - 📋 **Templates** - `--template starter|production|dev` with per-provider defaults
66
66
  - 🤖 **Non-Interactive Mode** - CI/CD friendly with `--provider --token --region --size --name` flags
67
+ - ➕ **Add Existing Servers** - `quicklify add` to register existing Coolify servers
68
+ - 🔄 **Bulk Operations** - `--all` flag for status, update, backup across all servers
69
+ - 🔁 **Auto-Restart** - `status --autostart` restarts Coolify if server is running but Coolify is down
70
+ - 🔧 **Full Maintenance** - `quicklify maintain` runs status, update, health check, reboot in sequence
71
+
72
+ ## 🎯 What Can You Do with Quicklify?
73
+
74
+ ### Deploy a Coolify Server in Minutes
75
+
76
+ ```bash
77
+ npx quicklify init # Interactive setup
78
+ npx quicklify init --provider hetzner --full-setup # With auto firewall + SSH hardening
79
+ npx quicklify init --template production # Production-ready defaults
80
+ npx quicklify init --config quicklify.yml # From YAML config file
81
+ ```
82
+
83
+ ### Manage Your Servers
84
+
85
+ ```bash
86
+ quicklify list # List all registered servers
87
+ quicklify status my-server # Check server + Coolify status
88
+ quicklify status --all # Check all servers at once
89
+ quicklify ssh my-server # SSH into a server
90
+ quicklify ssh my-server -c "uptime" # Run a remote command
91
+ ```
92
+
93
+ ### Keep Everything Updated & Healthy
94
+
95
+ ```bash
96
+ quicklify update my-server # Update Coolify to latest version
97
+ quicklify restart my-server # Reboot the server
98
+ quicklify maintain my-server # Full maintenance: status → update → health → reboot
99
+ quicklify maintain --all # Maintain all servers sequentially
100
+ quicklify health # Quick health check for all servers
101
+ ```
102
+
103
+ ### Backup & Restore
104
+
105
+ ```bash
106
+ quicklify backup my-server # Backup database + config files
107
+ quicklify backup --all # Backup all servers
108
+ quicklify restore my-server # Restore from a backup
109
+ quicklify export servers.json # Export server list
110
+ quicklify import servers.json # Import on another machine
111
+ ```
112
+
113
+ ### Security & Networking
114
+
115
+ ```bash
116
+ quicklify firewall setup my-server # Configure UFW with Coolify ports
117
+ quicklify domain add my-server --domain coolify.example.com # Bind domain + SSL
118
+ quicklify secure setup my-server # SSH hardening + fail2ban
119
+ quicklify secure audit my-server # Security audit with score (0-4)
120
+ ```
121
+
122
+ ### Monitoring & Diagnostics
123
+
124
+ ```bash
125
+ quicklify monitor my-server # Live CPU/RAM/Disk usage
126
+ quicklify logs my-server -f # Follow Coolify logs in real-time
127
+ quicklify doctor # Check local environment
128
+ quicklify status my-server --autostart # Auto-restart Coolify if down
129
+ ```
67
130
 
68
131
  ## 📦 Installation
69
132
 
@@ -99,6 +162,18 @@ quicklify init
99
162
  2. Generate New Token with **Read & Write** scope
100
163
  3. Copy the token
101
164
 
165
+ **Vultr:**
166
+
167
+ 1. Visit [Vultr API](https://my.vultr.com/settings/#settingsapi)
168
+ 2. Enable API and copy the API Key
169
+ 3. Whitelist your IP address
170
+
171
+ **Linode (Akamai):**
172
+
173
+ 1. Visit [Linode API Tokens](https://cloud.linode.com/profile/tokens)
174
+ 2. Create a Personal Access Token with **Read/Write** scope
175
+ 3. Copy the token
176
+
102
177
  ### Step 2: Deploy Coolify
103
178
 
104
179
  ```bash
@@ -114,7 +189,7 @@ You'll be prompted for:
114
189
 
115
190
  ### Step 3: Access Coolify
116
191
 
117
- After deployment (Hetzner ~4 min, DigitalOcean ~6 min):
192
+ After deployment (Hetzner ~4 min, DigitalOcean ~6 min, Vultr ~5 min, Linode ~6 min):
118
193
 
119
194
  ```
120
195
  ✅ Deployment Successful!
@@ -144,8 +219,8 @@ Visit the URL, create your admin account, and start deploying!
144
219
  |----------|--------|----------------|--------------|
145
220
  | **Hetzner Cloud** | ✅ Available | €3.79/mo | ARM64 + x86 |
146
221
  | **DigitalOcean** | ✅ Available | $12/mo | x86 |
147
- | **Vultr** | 📋 Planned | $2.50/mo | x86 |
148
- | **Linode** | 📋 Planned | $5/mo | x86 |
222
+ | **Vultr** | Available | $6/mo | x86 |
223
+ | **Linode (Akamai)** | Available | $12/mo | x86 |
149
224
 
150
225
  ## 💡 Use Cases
151
226
 
@@ -171,12 +246,23 @@ Visit the URL, create your admin account, and start deploying!
171
246
  | Netlify (Pro) | $19+ | 5 min | Easy |
172
247
  | **Quicklify + Hetzner** | **€3.79** | **~4 min** | **Easy** |
173
248
  | **Quicklify + DigitalOcean** | **$12** | **~6 min** | **Easy** |
249
+ | **Quicklify + Vultr** | **$6** | **~5 min** | **Easy** |
250
+ | **Quicklify + Linode** | **$12** | **~6 min** | **Easy** |
174
251
  | Manual VPS + Coolify | €3.79 | 30+ min | Hard |
175
252
 
176
253
  **Savings: ~$180-240/year per project!** 💰
177
254
 
178
255
  ## 📋 Recent Updates
179
256
 
257
+ ### v1.0.0 (2026-02-23)
258
+ - **New providers:** Vultr and Linode (Akamai) — 4 cloud providers now supported
259
+ - **New command:** `quicklify add` — register existing Coolify servers to Quicklify management
260
+ - **New command:** `quicklify maintain` — full maintenance cycle (status, update, health, reboot)
261
+ - **Bulk operations:** `--all` flag on `status`, `update`, `backup` — operate on all servers at once
262
+ - **Auto-restart:** `status --autostart` — restarts Coolify if server is running but Coolify is down
263
+ - **`collectProviderTokens()`** — asks for each provider's token only once across all servers
264
+ - 937 tests across 44 suites with 98%+ statement coverage, zero new dependencies
265
+
180
266
  ### v0.9.0 (2026-02-21)
181
267
  - **YAML Config:** `quicklify init --config quicklify.yml` - deploy from a config file
182
268
  - **Templates:** `--template starter|production|dev` - predefined server configurations per provider
@@ -312,9 +398,18 @@ Visit the URL, create your admin account, and start deploying!
312
398
  - [x] Template system (`--template starter|production|dev`)
313
399
  - [x] Config merge with priority: CLI > YAML > template > interactive
314
400
 
401
+ ### v1.0.0 (Completed)
402
+
403
+ - [x] Vultr provider support
404
+ - [x] Linode (Akamai) provider support
405
+ - [x] `quicklify add` — register existing Coolify servers
406
+ - [x] `quicklify maintain` — full maintenance cycle
407
+ - [x] `--all` flag for status, update, backup
408
+ - [x] `status --autostart` — auto-restart Coolify when down
409
+
315
410
  ### Future
316
- - [ ] Vultr support
317
- - [ ] Linode / AWS Lightsail support
411
+ - [ ] `quicklify snapshot` — automated VPS snapshots before maintenance
412
+ - [ ] `init --mode production` 2 server deploy (Coolify + worker)
318
413
  - [ ] Interactive TUI dashboard
319
414
 
320
415
  ## 🛠️ Tech Stack
@@ -326,7 +421,7 @@ Visit the URL, create your admin account, and start deploying!
326
421
  - **Styling:** Chalk (colors) + Ora (spinners)
327
422
  - **HTTP Client:** Axios
328
423
  - **YAML Parser:** js-yaml
329
- - **Cloud APIs:** Hetzner Cloud API v1, DigitalOcean API v2
424
+ - **Cloud APIs:** Hetzner Cloud API v1, DigitalOcean API v2, Vultr API v2, Linode API v4
330
425
  - **Linting:** ESLint 10 + typescript-eslint
331
426
  - **Formatting:** Prettier
332
427
 
@@ -357,11 +452,17 @@ quicklify list
357
452
  # Check server and Coolify status
358
453
  quicklify status 123.45.67.89
359
454
  quicklify status my-server
455
+ quicklify status --all # Check all servers at once
456
+ quicklify status my-server --autostart # Restart Coolify if it's down
360
457
 
361
458
  # Destroy a server (with double confirmation)
362
459
  quicklify destroy 123.45.67.89
363
460
  quicklify destroy my-server
364
461
 
462
+ # Remove a server from local config (without destroying cloud server)
463
+ quicklify remove my-server
464
+ quicklify remove 123.45.67.89
465
+
365
466
  # Manage default configuration
366
467
  quicklify config set provider hetzner
367
468
  quicklify config set region nbg1
@@ -375,6 +476,7 @@ quicklify ssh 123.45.67.89 -c "docker ps"
375
476
 
376
477
  # Update Coolify on a server
377
478
  quicklify update my-server
479
+ quicklify update --all # Update all servers sequentially
378
480
 
379
481
  # Restart a server
380
482
  quicklify restart my-server
@@ -427,6 +529,7 @@ quicklify secure setup my-server --dry-run # Preview without executing
427
529
 
428
530
  # Backup Coolify database and config
429
531
  quicklify backup my-server # Full backup (pg_dump + config)
532
+ quicklify backup --all # Backup all servers sequentially
430
533
  quicklify backup my-server --dry-run # Preview backup steps
431
534
 
432
535
  # Restore from a backup
@@ -439,6 +542,17 @@ quicklify export # Export to ./quicklify-export.json
439
542
  quicklify export /path/to/file.json # Export to custom path
440
543
  quicklify import /path/to/file.json # Import servers (skips duplicates)
441
544
 
545
+ # Add existing Coolify server to management
546
+ quicklify add # Interactive (provider, token, IP, verify)
547
+ quicklify add --provider hetzner --ip 1.2.3.4 --name my-server # Non-interactive
548
+ quicklify add --provider vultr --ip 1.2.3.4 --skip-verify # Skip Coolify check
549
+
550
+ # Run full maintenance cycle
551
+ quicklify maintain my-server # Status → Update → Health → Reboot
552
+ quicklify maintain my-server --skip-reboot # Skip the reboot step
553
+ quicklify maintain --all # Maintain all servers sequentially
554
+ quicklify maintain my-server --dry-run # Preview maintenance steps
555
+
442
556
  # Show version
443
557
  quicklify --version
444
558
 
@@ -455,6 +569,10 @@ Set your API token as an environment variable, then pass all options as flags:
455
569
  export HETZNER_TOKEN="your-api-token"
456
570
  # or
457
571
  export DIGITALOCEAN_TOKEN="your-api-token"
572
+ # or
573
+ export VULTR_TOKEN="your-api-token"
574
+ # or
575
+ export LINODE_TOKEN="your-api-token"
458
576
 
459
577
  # Deploy non-interactively
460
578
  quicklify init \
@@ -497,11 +615,11 @@ quicklify init --config quicklify.yml
497
615
 
498
616
  Templates provide sensible defaults per provider:
499
617
 
500
- | Template | Hetzner | DigitalOcean | Full Setup |
501
- |----------|---------|--------------|------------|
502
- | `starter` | nbg1 / cax11 (€3.79) | fra1 / s-2vcpu-2gb ($12) | No |
503
- | `production` | nbg1 / cx33 (€5.49) | fra1 / s-2vcpu-4gb ($24) | Yes |
504
- | `dev` | nbg1 / cax11 (€3.79) | fra1 / s-2vcpu-2gb ($12) | No |
618
+ | Template | Hetzner | DigitalOcean | Vultr | Linode | Full Setup |
619
+ |----------|---------|--------------|-------|--------|------------|
620
+ | `starter` | nbg1 / cax11 (€3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | No |
621
+ | `production` | nbg1 / cx33 (€5.49) | fra1 / s-2vcpu-4gb ($24) | ewr / vc2-4c-8gb ($48) | us-east / g6-standard-4 ($36) | Yes |
622
+ | `dev` | nbg1 / cax11 (€3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | No |
505
623
 
506
624
  ```bash
507
625
  # Quick production deploy
@@ -515,7 +633,7 @@ quicklify init --template starter --provider digitalocean --name test-server
515
633
 
516
634
  ### Interactive Prompts
517
635
 
518
- 1. **Provider Selection** - Choose Hetzner Cloud or DigitalOcean
636
+ 1. **Provider Selection** - Choose Hetzner Cloud, DigitalOcean, Vultr, or Linode
519
637
  2. **API Token** - Validated before proceeding
520
638
  3. **Region Selection** - Choose your preferred datacenter
521
639
  4. **Server Size** - Filtered by Coolify requirements (2GB RAM, 2 vCPU)
@@ -583,10 +701,14 @@ tests/
583
701
  │ ├── ssh-utils.test.ts # SSH helper tests
584
702
  │ ├── status.test.ts # Status command unit tests
585
703
  │ ├── update.test.ts # Update command tests
704
+ │ ├── add.test.ts # Add command tests
705
+ │ ├── maintain.test.ts # Maintain command tests
586
706
  │ └── validators.test.ts
587
707
  ├── integration/ # Integration tests (provider API calls)
588
708
  │ ├── hetzner.test.ts # Including destroyServer tests
589
- └── digitalocean.test.ts # Including destroyServer tests
709
+ ├── digitalocean.test.ts # Including destroyServer tests
710
+ │ ├── vultr.test.ts # Vultr provider tests
711
+ │ └── linode.test.ts # Linode provider tests
590
712
  └── e2e/ # End-to-end tests (full command flows)
591
713
  ├── init.test.ts
592
714
  ├── init-noninteractive.test.ts # Non-interactive mode E2E
@@ -604,7 +726,7 @@ Tests run automatically on every push/PR via GitHub Actions across:
604
726
 
605
727
  ### Coverage
606
728
 
607
- Current coverage: **98%+ statements/lines**, **91%+ branches**, **98%+ functions**. 742 tests across 40 test suites.
729
+ Current coverage: **98%+ statements/lines**, **91%+ branches**, **98%+ functions**. 937 tests across 44 test suites.
608
730
 
609
731
  ## 🔧 Troubleshooting
610
732
 
@@ -648,6 +770,9 @@ See [LICENSE](LICENSE) file for details.
648
770
 
649
771
  - [Coolify](https://coolify.io/) - The amazing open-source PaaS
650
772
  - [Hetzner](https://www.hetzner.com/) - Affordable, reliable cloud infrastructure
773
+ - [DigitalOcean](https://www.digitalocean.com/) - Developer-friendly cloud platform
774
+ - [Vultr](https://www.vultr.com/) - High-performance cloud compute
775
+ - [Linode](https://www.linode.com/) - Simple, affordable cloud computing
651
776
  - All contributors and users!
652
777
 
653
778
  ## 💬 Support & Community