Riscrivi backend per hosting Node/MariaDB/PM2 (no Cloudflare)

L'utente ha un hosting Virtualmin esistente (musictools.djluza.com)
con Apache + Node 20 + MariaDB + PM2. Tutta l'infrastruttura
Cloudflare (Workers/D1/R2/Pages) e' rimpiazzata con un backend
Express che gira sul server gia' presente, a costo zero.

Cambia:
- server/src/*.ts (Workers) -> server/src/*.js (Node ESM puro)
- D1 (sqlite) -> MariaDB 10.11 via mysql2/promise
- R2 (storage) -> filesystem locale ~/builds/ + signed URL HMAC
- wrangler.toml -> ecosystem.config.cjs (PM2)
- Aggiunto src/migrate.js: runner SQL idempotente

Endpoints invariati - l'app desktop non vede differenze:
- POST /api/license/{activate,validate,deactivate}
- GET  /api/latest, /api/download
- POST /api/webhook/lemonsqueezy
- GET  /api/health

README riscritto con istruzioni complete: creazione DB,
deploy via rsync/git, config Apache reverse proxy via
Virtualmin, gestione PM2, backup, workflow release.

Email rimane su Resend (deliverability) - free tier sufficiente.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
luzadevandClaude Opus 4.7 committed 2026-06-09 00:15:53 +02:00
1 parent 339dd4f3cc
commit 2d8290579b
22 files changed
+892 -790

No files matched your search

+15 -13
View File
@@ -1,19 +1,21 @@
{
"name": "musictools-license-server",
"version": "0.1.0",
"name": "musictools-api",
"version": "1.0.0",
"private": true,
"description": "License + update API for MusicTools (Cloudflare Workers + D1)",
"type": "module",
"description": "License + update API per MusicTools (Node.js + Express + MariaDB)",
"main": "src/server.js",
"scripts": {
"dev": "wrangler dev",
"deploy": "wrangler deploy",
"db:create": "wrangler d1 create musictools-licenses",
"db:migrate:local": "wrangler d1 migrations apply musictools-licenses --local",
"db:migrate:prod": "wrangler d1 migrations apply musictools-licenses --remote",
"tail": "wrangler tail"
"start": "node src/server.js",
"dev": "node --watch src/server.js",
"migrate": "node src/migrate.js"
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20251101.0",
"typescript": "^5.6.0",
"wrangler": "^3.95.0"
"engines": {
"node": ">=20"
},
"dependencies": {
"dotenv": "^16.4.5",
"express": "^4.21.0",
"mysql2": "^3.11.0"
}
}