zideploy 1.1.8 → 1.1.9

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 CHANGED
@@ -1,36 +1,57 @@
1
1
  # ZiDeploy
2
2
 
3
- **Deploy projects to your own servers directly from Claude Code.**
3
+ **Put your app online by just talking to Claude.**
4
4
 
5
- ZiDeploy (`v1.1.8`) is an MCP server + CLI that lets you initialize Ubuntu servers, deploy Node.js / PHP / Docker / static projects, and configure Nginx subdomains, all by talking to Claude naturally.
5
+ You built something. Now you want it live on the internet. ZiDeploy lets you do that by having a normal conversation with Claude Code no terminal commands, no config files, no DevOps knowledge needed.
6
6
 
7
7
  ---
8
8
 
9
- ## How it works
9
+ ## What does it do?
10
+
11
+ You talk. Claude does the work.
10
12
 
11
13
  ```
12
- You: "Deploy my Next.js app at /Users/me/myapp to server 1.2.3.4 as project mysite"
14
+ You: "Deploy my app at /Users/me/myshop to server 1.2.3.4"
13
15
 
14
- Claude calls deploy_project tool → SSHes into server → uploads files → starts PM2 → configures Nginx
16
+ Claude: Detected Node.js project.
17
+ Uploading files... done.
18
+ Installing dependencies... done.
19
+ Starting your app... done.
20
+ Setting up your website address... done.
15
21
 
16
- You: "Done! Live at http://mysite.zisites.app"
22
+ Your site is live at:
23
+ http://myshop.zisites.app
17
24
  ```
18
25
 
19
- ZiDeploy runs as a local MCP server. Claude Code launches it automatically and uses its tools during your conversation — no commands to memorize, no YAML to write.
26
+ That's it. No commands. No YAML. No googling "how to configure Nginx."
27
+
28
+ ---
29
+
30
+ ## What do you need before starting?
31
+
32
+ Just two things:
33
+
34
+ 1. **A server** — a VPS (virtual private server) from any provider: Hetzner, DigitalOcean, Linode, Arvan, etc. Any Ubuntu server works. The cheapest plan ($4–6/month) is fine for most projects.
35
+
36
+ 2. **Your server's IP address, username, and password** — you get these from your VPS provider when you create the server.
37
+
38
+ That's all. ZiDeploy handles everything else.
20
39
 
21
40
  ---
22
41
 
23
42
  ## Installation
24
43
 
25
- ### 1. Install the package
44
+ ### Step 1 Install ZiDeploy
45
+
46
+ Open a terminal and run:
26
47
 
27
48
  ```bash
28
49
  npm install -g zideploy
29
50
  ```
30
51
 
31
- ### 2. Register with Claude Code
52
+ ### Step 2 Connect it to Claude Code
32
53
 
33
- Add to `~/.claude/claude.json`:
54
+ Create or open the file `~/.claude/claude.json` and add this:
34
55
 
35
56
  ```json
36
57
  {
@@ -42,125 +63,152 @@ Add to `~/.claude/claude.json`:
42
63
  }
43
64
  ```
44
65
 
45
- ### 3. Restart Claude Code
66
+ > **Don't know where `~/.claude/claude.json` is?**
67
+ > On Mac it's at `/Users/YOUR_NAME/.claude/claude.json`.
68
+ > Create the file if it doesn't exist yet — just copy the JSON above into it.
46
69
 
47
- That's it. Claude can now deploy your projects.
70
+ ### Step 3 Restart Claude Code
71
+
72
+ Close and reopen Claude Code. Done. Claude now knows how to deploy your projects.
48
73
 
49
74
  ---
50
75
 
51
- ## What Claude can do
76
+ ## How to use it
52
77
 
53
- ### Initialize a server
78
+ ### Prepare your server (first time only)
54
79
 
55
- Prepares a fresh Ubuntu server with the tools it needs.
80
+ The first time you use a new server, tell Claude to set it up:
56
81
 
57
82
  ```
58
- "Initialize my server at 1.2.3.4 install Docker, Nginx, and Node.js"
59
- "Set up a PHP server at 5.6.7.8, it's in Iran so use local mirrors"
83
+ "Set up my server at 1.2.3.4, the username is root and password is mysecretpass"
60
84
  ```
61
85
 
62
- Installs any combination of:
63
-
64
- | Component | What gets installed |
65
- |-----------|-------------------|
66
- | `docker` | Docker CE + Docker Compose |
67
- | `nginx` | Nginx (enabled & started) |
68
- | `nodejs` | Node.js 20 LTS + PM2 |
69
- | `php` | PHP + PHP-FPM + common extensions |
86
+ Claude will install everything your server needs. This takes a few minutes and you only do it once per server.
70
87
 
71
- Automatically configures **Chabokan mirrors** for servers located in Iran (`location: ir`), so packages install fast without timeouts.
88
+ > **Server in Iran?** Just say "my server is in Iran" and Claude will automatically use local mirrors so everything downloads fast.
72
89
 
73
90
  ---
74
91
 
75
- ### Deploy a project
92
+ ### Deploy your project
76
93
 
77
- Uploads your local project, detects its type, and gets it running.
94
+ Point Claude at your project folder and your server:
78
95
 
79
96
  ```
80
- "Deploy /Users/me/myapp to server 1.2.3.4 as project mysite"
81
- "Deploy my app with custom domain example.com and port 8080"
97
+ "Deploy my project at /Users/me/myshop to server 1.2.3.4"
82
98
  ```
83
99
 
84
- **Auto-detected project types:**
100
+ Claude will ask you one question:
85
101
 
86
- | Detected by | Type | How it's deployed |
87
- |-------------|------|-------------------|
88
- | `Dockerfile` / `docker-compose.yml` | Docker | `docker build` + `docker run` or `docker compose up` |
89
- | `package.json` | Node.js | Files uploaded, `npm install`, started with PM2 |
90
- | `composer.json` / `.php` files | PHP | Files uploaded, PHP-FPM configured |
91
- | `.html` / `.htm` files | Static | Files served directly by Nginx |
102
+ ```
103
+ What domain do you want?
92
104
 
93
- After deploying, Nginx is configured automatically with a subdomain on `zisites.app`.
105
+ Free subdomain myshop.zisites.app (ready in seconds)
106
+ My own domain — e.g. myshop.com
107
+ ```
94
108
 
95
- ---
109
+ **Choose the free subdomain** if you just want to get online quickly. Your site will be live at `yourproject.zisites.app` within minutes.
96
110
 
97
- ### Add a subdomain
111
+ **Choose your own domain** if you already bought a domain (like `myshop.com`). ZiDeploy sets everything up and then tells you exactly what to do at your domain registrar — one simple change.
98
112
 
99
- Wire up a subdomain to any already-running service.
113
+ #### If you chose your own domain
114
+
115
+ After deploying, Claude will tell you something like:
100
116
 
101
117
  ```
102
- "Add a subdomain for myapi on server 1.2.3.4, it runs on port 4000"
103
- "Point example.com to the myapi service on port 4000"
118
+ Your site is ready!
119
+
120
+ ACTION REQUIRED — go to your domain registrar (where you bought myshop.com)
121
+ and change the nameservers to:
122
+
123
+ Nameserver 1: ns1.zisites.com
124
+ Nameserver 2: ns2.zisites.com
125
+
126
+ Your site will appear at http://myshop.com within a few hours.
127
+ (DNS changes can take up to 48 hours worldwide — this is normal.)
104
128
  ```
105
129
 
130
+ You log in to wherever you bought your domain, find "Nameservers" in the settings, and paste those two values. That's the only thing you do manually.
131
+
106
132
  ---
107
133
 
108
- ## CLI usage
134
+ ### What types of projects work?
109
135
 
110
- ZiDeploy also works as a standalone CLI if you prefer running commands directly.
136
+ ZiDeploy figures out your project type automatically you don't need to tell it anything:
111
137
 
112
- ```bash
113
- # Initialize a server
114
- zideploy init --host 1.2.3.4 --user root --password secret --location ir
138
+ | Your project has... | ZiDeploy treats it as... |
139
+ |---------------------|--------------------------|
140
+ | A `Dockerfile` or `docker-compose.yml` | Docker app |
141
+ | A `package.json` | Node.js app (Next.js, Express, etc.) |
142
+ | A `composer.json` or `.php` files | PHP app |
143
+ | `.html` files | Static website |
144
+
145
+ ---
115
146
 
116
- # Deploy a project
117
- zideploy deploy \
118
- --host 1.2.3.4 --user root --password secret \
119
- --project mysite --domain example.com \
120
- --path /Users/me/myapp --app-port 3000
147
+ ## Example conversations
121
148
 
122
- # Add a subdomain
123
- zideploy subdomain \
124
- --host 1.2.3.4 --user root --password secret \
125
- --project myapi --app-port 4000
149
+ #### Deploy a Next.js app with a free subdomain
150
+ ```
151
+ You: Deploy /Users/me/portfolio to 1.2.3.4, user root, password abc123, project name portfolio
152
+ Claude: [deploys] → Your site is live at http://portfolio.zisites.app
153
+ ```
154
+
155
+ #### Deploy with a custom domain
156
+ ```
157
+ You: Deploy /Users/me/myshop to 1.2.3.4, I want to use myshop.com as the domain
158
+ Claude: [deploys] → Change nameservers to ns1.zisites.com / ns2.zisites.com
126
159
  ```
127
160
 
128
- Run any command without flags to get an interactive prompt instead.
161
+ #### Add a domain to an already-running project
162
+ ```
163
+ You: Add the domain myapi.com to the myapi project running on port 4000 on server 1.2.3.4
164
+ Claude: [configures] → Change nameservers to ns1.zisites.com / ns2.zisites.com
165
+ ```
166
+
167
+ #### Server in Iran
168
+ ```
169
+ You: Set up my server at 5.6.7.8, it's hosted in Iran
170
+ Claude: [installs everything using Iranian mirrors — fast, no timeouts]
171
+ ```
129
172
 
130
173
  ---
131
174
 
132
- ## Server requirements
175
+ ## One-time DNS server setup (for custom domains)
133
176
 
134
- - Ubuntu 18.04 (Bionic), 20.04 (Focal), 22.04 (Jammy), or 24.04 (Noble)
135
- - SSH access (root or sudo user)
136
- - Port 22 open
177
+ If you want to use custom domains, run this once on your server:
137
178
 
138
- ---
179
+ ```
180
+ "Set up the DNS server on 1.2.3.4, user root, password mysecret"
181
+ ```
139
182
 
140
- ## Iran server support
183
+ After that, every time you deploy a project with a custom domain, ZiDeploy automatically registers it. You just change the nameservers at your registrar — Claude tells you exactly what to paste.
141
184
 
142
- When `location` is set to `ir`, ZiDeploy automatically switches all package sources to [Chabokan mirrors](https://chabokan.net):
185
+ ---
186
+
187
+ ## Server requirements
143
188
 
144
- - Ubuntu `apt` sources `mirror2.chabokan.net/ubuntu`
145
- - Docker registry mirror `mirror2.chabokan.net`
146
- - npm registry → `mirror2.chabokan.net/npm`
189
+ - Any Ubuntu server (18.04, 20.04, 22.04, or 24.04)
190
+ - You can SSH into it (you have the IP, username, and password)
147
191
 
148
- No extra configuration needed just tell Claude your server is in Iran.
192
+ Ports that need to be open: **22** (for ZiDeploy to connect), **80** (for your website)
149
193
 
150
194
  ---
151
195
 
152
- ## Development
196
+ ## Frequently asked questions
153
197
 
154
- ```bash
155
- git clone <repo>
156
- cd deploy-plugin
157
- npm install
158
- npm run build # compile TypeScript
159
- npm run dev # run CLI with ts-node
160
- ```
198
+ **Do I need to know Linux or the command line?**
199
+ No. You just talk to Claude.
200
+
201
+ **What if my project uses a different port than 3000?**
202
+ Tell Claude: "my app runs on port 8080" and it handles it.
203
+
204
+ **Can I deploy multiple projects to the same server?**
205
+ Yes. Each project gets its own subdomain and they run independently.
206
+
207
+ **What if something goes wrong?**
208
+ Just describe the problem to Claude: "my site isn't loading" and Claude will investigate and fix it.
161
209
 
162
- The MCP server entry point is `src/mcp-server.ts`.
163
- The CLI entry point is `src/index.ts`.
210
+ **Do I need to buy a domain?**
211
+ No. You get a free `yourproject.zisites.app` address for every project.
164
212
 
165
213
  ---
166
214
 
package/dist/index.js CHANGED
@@ -46,7 +46,7 @@ const program = new commander_1.Command();
46
46
  program
47
47
  .name('zideploy')
48
48
  .description('ZiSales Deploy Plugin — Deploy projects to PaaS servers')
49
- .version('1.1.8');
49
+ .version('1.1.9');
50
50
  program
51
51
  .command('init')
52
52
  .description('Initialize a server: install Docker, Nginx, Node.js, configure IR mirrors if needed')
@@ -182,7 +182,7 @@ program
182
182
  const w = chalk_1.default.white;
183
183
  console.log();
184
184
  console.log(chalk_1.default.cyan.bold(' ╔══════════════════════════════════╗'));
185
- console.log(chalk_1.default.cyan.bold(' ║') + chalk_1.default.white.bold(' ZiDeploy v1.1.8 ') + chalk_1.default.cyan.bold('║'));
185
+ console.log(chalk_1.default.cyan.bold(' ║') + chalk_1.default.white.bold(' ZiDeploy v1.1.9 ') + chalk_1.default.cyan.bold('║'));
186
186
  console.log(chalk_1.default.cyan.bold(' ║') + chalk_1.default.dim(' Deploy projects to your servers ') + chalk_1.default.cyan.bold('║'));
187
187
  console.log(chalk_1.default.cyan.bold(' ╚══════════════════════════════════╝'));
188
188
  console.log();
@@ -54,7 +54,7 @@ const docker_deploy_1 = require("./deploy/docker-deploy");
54
54
  const direct_deploy_1 = require("./deploy/direct-deploy");
55
55
  const server = new mcp_js_1.McpServer({
56
56
  name: 'zideploy',
57
- version: '1.1.8',
57
+ version: '1.1.9',
58
58
  });
59
59
  const credFields = {
60
60
  host: zod_1.z.string().describe('Server IP address'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zideploy",
3
- "version": "1.1.8",
3
+ "version": "1.1.9",
4
4
  "description": "ZiSales Deploy Plugin - Deploy projects to PaaS servers via Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "bin": {