pinme 1.1.6-alpha.4 → 1.2.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 (3) hide show
  1. package/README.md +202 -5
  2. package/dist/index.js +3 -3
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -13,9 +13,17 @@
13
13
 
14
14
  # PinMe
15
15
 
16
- [PinMe](https://pinme.eth.limo/) is a one-command deploy tool that turns static sites into permanent, verifiable frontends by pinning to [IPFS](https://ipfs.tech/), writing contenthash to [ENS](https://ens.domains/) subnames, and serving through gateways like [eth.limo](https://eth.limo/)—no DNS, no servers.
16
+ [PinMe](https://pinme.eth.limo/) is a zero-config frontend deployment tool.
17
+ No servers. No accounts. No setup.
17
18
 
18
- Website:[https://pinme.eth.limo/](https://pinme.eth.limo/)
19
+ Build a static site, generate a page with AI, or export your frontend — then deploy instantly with a single command.
20
+
21
+ PinMe publishes your site as verifiable content, making silent tampering and accidental breakage far harder than traditional hosting.
22
+
23
+ You don’t manage servers, regions, or uptime.
24
+ PinMe handles availability and persistence for you.
25
+
26
+ Website: [https://pinme.eth.limo/](https://pinme.eth.limo/)
19
27
 
20
28
 
21
29
  ## Installation
@@ -42,6 +50,10 @@ pinme upload
42
50
 
43
51
  # Specify path directly
44
52
  pinme upload /path/to/file-or-directory
53
+
54
+ # Upload and bind to a domain
55
+ pinme upload /path/to/file-or-directory --domain <name>
56
+ pinme upload /path/to/file-or-directory -d <name>
45
57
  ```
46
58
 
47
59
  ### Remove files from IPFS
@@ -70,6 +82,26 @@ pinme list -l 5
70
82
  pinme list -c
71
83
  ```
72
84
 
85
+ ### Set AppKey for authentication
86
+
87
+ ```bash
88
+ # Interactive AppKey setup
89
+ pinme set-appkey
90
+
91
+ # Set AppKey directly
92
+ pinme set-appkey <AppKey>
93
+ ```
94
+
95
+ ### View your domains
96
+
97
+ ```bash
98
+ # List all domains owned by current account
99
+ pinme my-domains
100
+
101
+ # Or use the shorthand command
102
+ pinme domain
103
+ ```
104
+
73
105
  ### Get help
74
106
 
75
107
  ```bash
@@ -81,14 +113,15 @@ pinme help
81
113
 
82
114
  ### `upload`
83
115
 
84
- Upload a file or directory to the IPFS network.
116
+ Upload a file or directory to the IPFS network. Supports binding to a Pinme subdomain after upload.
85
117
 
86
118
  ```bash
87
- pinme upload [path]
119
+ pinme upload [path] [--domain <name>]
88
120
  ```
89
121
 
90
122
  **Options:**
91
123
  - `path`: Path to the file or directory to upload (optional, if not provided, interactive mode will be entered)
124
+ - `-d, --domain <name>`: Pinme subdomain to bind after upload (optional)
92
125
 
93
126
  **Examples:**
94
127
  ```bash
@@ -100,6 +133,10 @@ pinme upload ./example.jpg
100
133
 
101
134
  # Upload an entire directory
102
135
  pinme upload ./my-website
136
+
137
+ # Upload and bind to a domain
138
+ pinme upload ./my-website --domain my-site
139
+ pinme upload ./my-website -d my-site
103
140
  ```
104
141
 
105
142
  ### `rm`
@@ -149,6 +186,52 @@ pinme ls -l 5
149
186
  pinme list -c
150
187
  ```
151
188
 
189
+ ### `set-appkey`
190
+
191
+ Set AppKey for authentication and automatically merge anonymous upload history to the current account.
192
+
193
+ ```bash
194
+ pinme set-appkey [AppKey]
195
+ ```
196
+
197
+ **Options:**
198
+ - `AppKey`: Your AppKey for authentication (optional, if not provided, interactive mode will be entered)
199
+
200
+ **Examples:**
201
+ ```bash
202
+ # Interactive AppKey setup
203
+ pinme set-appkey
204
+
205
+ # Set AppKey directly
206
+ pinme set-appkey your-app-key-here
207
+ ```
208
+
209
+ **Note:** After setting the AppKey, your anonymous upload history will be automatically merged to your account.
210
+
211
+ ### `my-domains` / `domain`
212
+
213
+ List all domains owned by the current account.
214
+
215
+ ```bash
216
+ pinme my-domains
217
+ pinme domain
218
+ ```
219
+
220
+ **Examples:**
221
+ ```bash
222
+ # List all domains
223
+ pinme my-domains
224
+
225
+ # Shorthand command
226
+ pinme domain
227
+ ```
228
+
229
+ This command displays information about each domain including:
230
+ - Domain name
231
+ - Domain type
232
+ - Bind time
233
+ - Expire time
234
+
152
235
  ### `help`
153
236
 
154
237
  Display help information.
@@ -205,11 +288,125 @@ export default {
205
288
  }
206
289
  ```
207
290
 
291
+ ## GitHub Actions Integration
292
+
293
+ PinMe can be integrated with GitHub Actions to automatically deploy your project when you push code to GitHub. This enables a fully automated CI/CD workflow.
294
+
295
+ ### Quick Setup
296
+
297
+ 1. **Add the workflow file** to your repository:
298
+ - Copy `.github/workflows/deploy.yml` from the PinMe repository to your project
299
+ - Or create `.github/workflows/deploy.yml` in your repository
300
+
301
+ 2. **Configure GitHub Secrets**:
302
+ - Go to your repository → Settings → Secrets and variables → Actions
303
+ - Add a new secret named `PINME_APPKEY` with your PinMe AppKey
304
+ - (Optional) Add `PINME_DOMAIN` to specify a custom domain name
305
+
306
+ 3. **Push to trigger deployment**:
307
+ - Push code to `main` or `master` branch to trigger automatic deployment
308
+ - Or manually trigger via Actions tab → "Deploy to PinMe" → Run workflow
309
+
310
+ ### Workflow Features
311
+
312
+ The GitHub Actions workflow automatically:
313
+
314
+ - ✅ Detects and installs project dependencies
315
+ - ✅ Builds your project (if a build script exists)
316
+ - ✅ Installs PinMe CLI
317
+ - ✅ Sets up authentication using your AppKey
318
+ - ✅ Auto-detects build output directory (`dist`, `build`, `public`, or `out`)
319
+ - ✅ Uploads to IPFS and binds to your domain
320
+ - ✅ Provides deployment summary with access URL
321
+
322
+ ### Configuration Options
323
+
324
+ #### Using GitHub Secrets
325
+
326
+ You can configure the following secrets in your repository:
327
+
328
+ - **`PINME_APPKEY`** (Required): Your PinMe AppKey for authentication
329
+ - Format: `<address>-<jwt>`
330
+ - Get your AppKey from [PinMe website](https://pinme.eth.limo/)
331
+
332
+ - **`PINME_DOMAIN`** (Optional): Default domain name to bind
333
+ - If not set, the workflow will generate a domain from your repository name
334
+ - Example: `my-awesome-project` → `https://my-awesome-project.pinit.eth.limo`
335
+
336
+ #### Manual Workflow Dispatch
337
+
338
+ You can also manually trigger the workflow with custom parameters:
339
+
340
+ 1. Go to Actions tab in your repository
341
+ 2. Select "Deploy to PinMe" workflow
342
+ 3. Click "Run workflow"
343
+ 4. Enter:
344
+ - **Domain**: Your desired PinMe domain name
345
+ - **Build Directory**: Your build output directory (default: `dist`)
346
+
347
+ ### Example Workflow
348
+
349
+ ```yaml
350
+ name: Deploy to PinMe
351
+
352
+ on:
353
+ push:
354
+ branches: [main, master]
355
+ workflow_dispatch:
356
+ inputs:
357
+ domain:
358
+ description: 'PinMe domain name'
359
+ required: true
360
+ build_dir:
361
+ description: 'Build directory'
362
+ default: 'dist'
363
+
364
+ jobs:
365
+ deploy:
366
+ runs-on: ubuntu-latest
367
+ steps:
368
+ - uses: actions/checkout@v4
369
+ - uses: actions/setup-node@v4
370
+ with:
371
+ node-version: '18'
372
+ - run: npm ci
373
+ - run: npm run build
374
+ - run: npm install -g pinme
375
+ - run: pinme set-appkey "${{ secrets.PINME_APPKEY }}"
376
+ - run: pinme upload dist --domain "${{ secrets.PINME_DOMAIN }}"
377
+ ```
378
+
379
+ ### Supported Build Tools
380
+
381
+ The workflow automatically detects and supports:
382
+
383
+ - **Vite**: Builds to `dist/`
384
+ - **Create React App**: Builds to `build/`
385
+ - **Next.js**: Builds to `out/` (with `output: 'export'`)
386
+ - **Vue CLI**: Builds to `dist/`
387
+ - **Angular**: Builds to `dist/`
388
+ - **Static sites**: Uses root directory or `public/`
389
+
390
+ ### Troubleshooting
391
+
392
+ **Build directory not found:**
393
+ - Ensure your build script outputs to a standard directory (`dist`, `build`, `public`, or `out`)
394
+ - Or set `PINME_DOMAIN` secret and use manual workflow dispatch to specify custom directory
395
+
396
+ **Authentication failed:**
397
+ - Verify your `PINME_APPKEY` secret is correctly set
398
+ - Ensure the AppKey format is correct: `<address>-<jwt>`
399
+
400
+ **Domain binding failed:**
401
+ - Check if the domain name is available
402
+ - Ensure you have permission to bind the domain
403
+ - Try a different domain name
404
+
208
405
  ## Contact Us
209
406
 
210
407
  If you have questions or suggestions, please contact us through:
211
408
 
212
- - GitHub Issues: [https://github.com/glitternetwork/pinme/issues](https://github.com/glitternetwork/pinme/issue)
409
+ - GitHub Issues: [https://github.com/glitternetwork/pinme/issues](https://github.com/glitternetwork/pinme/issues)
213
410
  - Email: [pinme@glitterprotocol.io](mailto:pinme@glitterprotocol.io)
214
411
 
215
412
  ---
package/dist/index.js CHANGED
@@ -1523,7 +1523,7 @@ var import_chalk9 = __toESM(require("chalk"));
1523
1523
  var import_figlet3 = __toESM(require("figlet"));
1524
1524
 
1525
1525
  // package.json
1526
- var version = "1.1.6-alpha.4";
1526
+ var version = "1.2.0";
1527
1527
 
1528
1528
  // bin/upload.ts
1529
1529
  var import_path6 = __toESM(require("path"));
@@ -4592,12 +4592,12 @@ var StepProgressBar = class {
4592
4592
  }
4593
4593
  completeStep() {
4594
4594
  }
4595
- // 开始模拟进度,用于在90%后继续显示进度
4595
+ // Start simulating progress to continue display after 90%
4596
4596
  startSimulatingProgress() {
4597
4597
  this.isSimulatingProgress = true;
4598
4598
  this.simulationStartTime = Date.now();
4599
4599
  }
4600
- // 停止模拟进度
4600
+ // Stop simulating progress
4601
4601
  stopSimulatingProgress() {
4602
4602
  this.isSimulatingProgress = false;
4603
4603
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinme",
3
- "version": "1.1.6-alpha.4",
3
+ "version": "1.2.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },