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.
- package/README.md +202 -5
- package/dist/index.js +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
|
|
16
|
+
[PinMe](https://pinme.eth.limo/) is a zero-config frontend deployment tool.
|
|
17
|
+
No servers. No accounts. No setup.
|
|
17
18
|
|
|
18
|
-
|
|
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/
|
|
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.
|
|
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
|
-
//
|
|
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
|
}
|