@upsnap/strapi 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.
- package/README.md +245 -0
- package/package.json +76 -0
package/README.md
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# ๐ Upsnap โ Advanced Website Health Monitoring for Strapi
|
|
2
|
+
|
|
3
|
+
> Enterprise-grade website monitoring directly inside your Strapi Admin Panel.
|
|
4
|
+
|
|
5
|
+
Upsnap is a powerful monitoring plugin for Strapi that enables you to track uptime, SSL certificates, broken links, performance health, domain integrity, and mixed content issues โ all from a clean, real-time dashboard inside your CMS.
|
|
6
|
+
|
|
7
|
+
Designed for agencies, SaaS platforms, and enterprise teams.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## โจ Why Upsnap?
|
|
12
|
+
|
|
13
|
+
Modern websites fail silently โ expired SSL, broken internal links, mixed content errors, slow response times.
|
|
14
|
+
Upsnap helps you detect issues before your users do.
|
|
15
|
+
|
|
16
|
+
โ Monitor multiple domains
|
|
17
|
+
โ Detect critical infrastructure issues
|
|
18
|
+
โ Visual health dashboard inside Strapi
|
|
19
|
+
โ Built for Strapi v5 architecture
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## ๐ฆ Installation
|
|
24
|
+
|
|
25
|
+
Install via npm:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @upsnap/strapi
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
or via yarn:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
yarn add @upsnap/strapi
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Restart Strapi:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm run develop
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Upsnap will appear in your admin sidebar.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## โ๏ธ Requirements
|
|
48
|
+
|
|
49
|
+
- Strapi v5.x
|
|
50
|
+
- Node.js 18+
|
|
51
|
+
- React 18 (provided by Strapi)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## ๐ Features
|
|
56
|
+
|
|
57
|
+
### ๐ Uptime Monitoring
|
|
58
|
+
- HTTP status validation
|
|
59
|
+
- Response time measurement
|
|
60
|
+
- Availability tracking
|
|
61
|
+
|
|
62
|
+
### ๐ SSL Certificate Monitoring
|
|
63
|
+
- Expiry date detection
|
|
64
|
+
- Certificate validity checks
|
|
65
|
+
- Security warnings
|
|
66
|
+
|
|
67
|
+
### ๐ Broken Link Detection
|
|
68
|
+
- Internal link scanning
|
|
69
|
+
- External link validation
|
|
70
|
+
- Dead link reporting
|
|
71
|
+
|
|
72
|
+
### โก Performance Health
|
|
73
|
+
- Server response analysis
|
|
74
|
+
- Latency tracking
|
|
75
|
+
- Basic performance indicators
|
|
76
|
+
|
|
77
|
+
### ๐ก Mixed Content Detection
|
|
78
|
+
- HTTP resources inside HTTPS pages
|
|
79
|
+
- Security vulnerability detection
|
|
80
|
+
|
|
81
|
+
### ๐ Clean Admin Dashboard
|
|
82
|
+
- Real-time monitoring overview
|
|
83
|
+
- Status visualization
|
|
84
|
+
- Health summary per domain
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## ๐ง How It Works
|
|
89
|
+
|
|
90
|
+
Upsnap performs secure server-side checks:
|
|
91
|
+
|
|
92
|
+
1. Fetches target domain
|
|
93
|
+
2. Validates HTTP status
|
|
94
|
+
3. Inspects SSL certificate
|
|
95
|
+
4. Scans DOM for broken links
|
|
96
|
+
5. Detects mixed content
|
|
97
|
+
6. Measures response metrics
|
|
98
|
+
|
|
99
|
+
All results are aggregated and displayed within Strapi's admin interface.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## ๐ง Configuration
|
|
104
|
+
|
|
105
|
+
After installation:
|
|
106
|
+
|
|
107
|
+
1. Go to **Settings โ Plugins โ Upsnap**
|
|
108
|
+
2. Add your target domains
|
|
109
|
+
3. Configure monitoring options
|
|
110
|
+
4. Save and start monitoring
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## ๐ Use Cases
|
|
115
|
+
|
|
116
|
+
- SaaS platforms managing multiple domains
|
|
117
|
+
- Agencies maintaining client websites
|
|
118
|
+
- DevOps monitoring dashboards
|
|
119
|
+
- Enterprise content systems
|
|
120
|
+
- Website audit automation
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## ๐ Development
|
|
125
|
+
|
|
126
|
+
Clone the repository:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
git clone https://github.com/Appfoster/upsnap-strapi
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Install dependencies:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm install
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Build plugin:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npm run build
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Watch mode (for development):
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npm run watch
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## ๐ Project Structure
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
/admin โ Admin UI (React)
|
|
156
|
+
/server โ Backend logic
|
|
157
|
+
/dist โ Compiled output (published to npm)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## ๐ Security
|
|
163
|
+
|
|
164
|
+
- Runs server-side within Strapi
|
|
165
|
+
- No external tracking
|
|
166
|
+
- No third-party data storage
|
|
167
|
+
- Respects Strapi permission system
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## ๐งฉ Compatibility
|
|
172
|
+
|
|
173
|
+
| Strapi Version | Supported |
|
|
174
|
+
|----------------|------------|
|
|
175
|
+
| v5.x | โ
Yes |
|
|
176
|
+
| v4.x | โ No |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## ๐งช Production Readiness
|
|
181
|
+
|
|
182
|
+
- Built using Strapi Plugin SDK
|
|
183
|
+
- Peer dependency aligned with Strapi v5
|
|
184
|
+
- TypeScript support
|
|
185
|
+
- Modular architecture
|
|
186
|
+
- Designed for scalability
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## ๐ License
|
|
191
|
+
|
|
192
|
+
MIT License
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## ๐จโ๐ป Author
|
|
197
|
+
|
|
198
|
+
**Appfoster**
|
|
199
|
+
Website: https://upsnap.ai
|
|
200
|
+
Email: support@upsnap.ai
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## ๐ Roadmap
|
|
205
|
+
|
|
206
|
+
- Scheduled monitoring (cron-based)
|
|
207
|
+
- Email / Slack alerts
|
|
208
|
+
- Historical monitoring logs
|
|
209
|
+
- Public status page integration
|
|
210
|
+
- Performance scoring system
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## ๐ค Contributing
|
|
215
|
+
|
|
216
|
+
Contributions are welcome.
|
|
217
|
+
|
|
218
|
+
1. Fork the repository
|
|
219
|
+
2. Create your feature branch
|
|
220
|
+
3. Commit changes
|
|
221
|
+
4. Open a pull request
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## โญ Support
|
|
226
|
+
|
|
227
|
+
If you find Upsnap useful:
|
|
228
|
+
|
|
229
|
+
- Star the repository
|
|
230
|
+
- Share with your team
|
|
231
|
+
- Submit feature requests
|
|
232
|
+
- Report issues
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## ๐ About Strapi
|
|
237
|
+
|
|
238
|
+
Upsnap is built for Strapi โ the leading open-source headless CMS.
|
|
239
|
+
|
|
240
|
+
Learn more at: https://strapi.io
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
Built with precision. Designed for reliability.
|
|
245
|
+
Monitor smarter with Upsnap.
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"repository": {
|
|
4
|
+
"type": "git",
|
|
5
|
+
"url": "https://github.com/Appfoster/upsnap-strapi"
|
|
6
|
+
},
|
|
7
|
+
"keywords": [],
|
|
8
|
+
"type": "commonjs",
|
|
9
|
+
"exports": {
|
|
10
|
+
"./package.json": "./package.json",
|
|
11
|
+
"./strapi-admin": {
|
|
12
|
+
"types": "./dist/admin/src/index.d.ts",
|
|
13
|
+
"source": "./admin/src/index.ts",
|
|
14
|
+
"import": "./dist/admin/index.mjs",
|
|
15
|
+
"require": "./dist/admin/index.js",
|
|
16
|
+
"default": "./dist/admin/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./strapi-server": {
|
|
19
|
+
"types": "./dist/server/src/index.d.ts",
|
|
20
|
+
"source": "./server/src/index.ts",
|
|
21
|
+
"import": "./dist/server/index.mjs",
|
|
22
|
+
"require": "./dist/server/index.js",
|
|
23
|
+
"default": "./dist/server/index.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "strapi-plugin build",
|
|
31
|
+
"watch": "strapi-plugin watch",
|
|
32
|
+
"watch:link": "strapi-plugin watch:link",
|
|
33
|
+
"verify": "strapi-plugin verify",
|
|
34
|
+
"test:ts:front": "run -T tsc -p admin/tsconfig.json",
|
|
35
|
+
"test:ts:back": "run -T tsc -p server/tsconfig.json"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@strapi/design-system": "^2.0.0-rc.30",
|
|
39
|
+
"@strapi/icons": "^2.0.0-rc.30",
|
|
40
|
+
"axios": "^1.13.4",
|
|
41
|
+
"react-apexcharts": "^1.9.0",
|
|
42
|
+
"react-intl": "^8.1.1",
|
|
43
|
+
"react-toastify": "^11.0.5"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@strapi/sdk-plugin": "^5.4.0",
|
|
47
|
+
"@strapi/strapi": "^5.34.0",
|
|
48
|
+
"@strapi/typescript-utils": "^5.34.0",
|
|
49
|
+
"@types/react": "^19.2.10",
|
|
50
|
+
"@types/react-dom": "^19.2.3",
|
|
51
|
+
"prettier": "^3.8.1",
|
|
52
|
+
"react": "^18.3.1",
|
|
53
|
+
"react-dom": "^18.3.1",
|
|
54
|
+
"react-router-dom": "^6.30.3",
|
|
55
|
+
"styled-components": "^6.3.8",
|
|
56
|
+
"typescript": "^5.9.3"
|
|
57
|
+
},
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"@strapi/sdk-plugin": "^5.4.0",
|
|
60
|
+
"@strapi/strapi": "^5.34.0",
|
|
61
|
+
"react": "^18.3.1",
|
|
62
|
+
"react-dom": "^18.3.1",
|
|
63
|
+
"react-router-dom": "^6.30.3",
|
|
64
|
+
"styled-components": "^6.3.8"
|
|
65
|
+
},
|
|
66
|
+
"strapi": {
|
|
67
|
+
"kind": "plugin",
|
|
68
|
+
"name": "upsnap",
|
|
69
|
+
"displayName": "Upsnap",
|
|
70
|
+
"description": "Complete website health monitoring for Strapi, including uptime, SSL certificates, broken links, performance metrics, domain health, and mixed content issues."
|
|
71
|
+
},
|
|
72
|
+
"name": "@upsnap/strapi",
|
|
73
|
+
"description": "Complete website health monitoring for Strapi, including uptime, SSL certificates, broken links, performance metrics, domain health, and mixed content issues.",
|
|
74
|
+
"license": "MIT",
|
|
75
|
+
"author": "Upsnap <support@upsnap.ai>"
|
|
76
|
+
}
|