ControlCenter
➕ Nuovo 📝 Aggiorna 📘 Docs 07/05/2026 09:00
← Tutti i progetti
🚀
Discover Extra
CMS custom leggero (PHP 8.3 + MariaDB 10.11) per generare siti HTML statici ottimizzati per Google Discover, alternativa alla rete WordPress MCL Media.
◐ In Sviluppo Priorità Alta 👤 Luca
🤖 Sincronizza con Claude
🚀 Copia Brief + ToDo = per iniziare una nuova conversazione  |  📋 JSON Completo = per aggiornare a fine sessione
📖 Brief Progetto
Discover Extra è il CMS custom MCL Media (PHP 8.3 + MariaDB 10.11 + Nginx, server Hetzner CPX22 128.140.55.211, pannello admin su cms.mclmedia.eu) che genera siti HTML statici ottimizzati per Google Discover. Gestisce ~24 siti Discover attivi (incluso il nuovo ferraravetro.it), 3 siti Worldfilia, e ~329 siti parking su 12 VPS CX23, monetizzati tramite HB Agency header bidding e affiliazione Amazon, con push notifications VAPID native (~183K subscriber) e analytics Plausible.

Nella sessione del 9 aprile 2026 il lavoro si è concentrato su tre aree principali: il sistema di Piano Editoriale automatizzato, il sistema di push notification boost, e l'avvio di nuovi siti.

**Piano Editoriale (MultiPED v2):** Il MultiPED è stato completamente semplificato — rimossi i campi orario, distanza min/max e dropdown categoria dalla tabella siti. Il backend ora gestisce tutto automaticamente: gli articoli vengono distribuiti random ma ben spaziati nella giornata (oggi: da +30min fino alle 23:00; domani: dalle 06:00 alle 23:00). La categoria viene risolta automaticamente dal Category Resolver, un nuovo engine a 3 livelli: (1) sito verticale → usa sempre quella categoria, (2) sito con top articles 1000+ visite → distribuzione proporzionale pesata, (3) sito senza storico → weighted random dal database parking, max 5 categorie in 5 giorni poi ruota. La pagina Siti ora mostra il campo 'Verticale' editabile inline.

**Push Notification Boost:** Il sistema boost è stato riscritto con logica round-robin. In precedenza i boost venivano assegnati sito per sito durante il confirm_ped, causando esaurimento del budget per i siti confermati per ultimi (bug critico: mt_rand crashava quando min > max, bloccando l'inserimento degli articoli). Ora il confirm_ped crea articoli SENZA boost, e dopo tutti i siti una chiamata separata assign_boosts distribuisce i boost equamente: giro 1 → 1 boost per sito, giro 2 → 1 per sito, ecc. fino al budget (64/giorno). Così tutti i siti hanno almeno N boost. Ottimizzato anche il push_sender: batch da 100→30 e parallelo da 3→2 per VPS, errori curl_0 passati da ~30K a quasi zero (~5 per invio).

**Avvio Sito e Network Boost:** Riscritta la pagina Avvio Sito — mostra solo siti nuovi senza contenuti, selezione fino a 3 categorie dalle top 5 del network, toggle boost (10 push su 27 articoli), genera 27 articoli su 3 giorni (9+9+9). Implementato il sistema Network Boost cross-site: quando il publisher pubblica articoli di un sito in lancio (launch_expires_at attivo), li inserisce nella tabella network_boost. Il builder genera un box 'Da non perdere' con max 3 link della stessa categoria da siti in lancio — HTML statico puro per massimo peso SEO. Il box appare automaticamente nei rebuild degli altri siti e sparisce dopo 5 giorni. ferraravetro.it è stato creato e avviato con 27 articoli (Salute + Giardino) e 10 boost. Golden snapshot aggiornato a 374785564 (con push_sender.php incluso). Pagina Riepilogo Boost aggiunta sotto Analisi. Sessione login portata a 7 giorni, dashboard refresh a 10 secondi.

**Prossimi step:** testare il MultiPED con il boost round-robin (primo test reale dopodomani), verificare che il Network Boost box appaia sugli articoli degli altri siti, risolvere l'interstitial HB Agency su mobile per i nuovi siti, implementare la pagina Guadagni HB Agency.
📁 File Progetto 2 file
Max 64M · zip, pdf, docx, xlsx, immagini, codice…
📝
MCL-Discover-CMS-Guida-Completa.docx
20KB · 03/04/2026 15:47
⬇️
📃
guida-discover-cms.md
10KB · 29/03/2026 13:06
⬇️
📊 Avanzamento
99%
✅ To Do List 72/80
Setup server Hetzner CPX22 con PHP 8.3 + Nginx + SQLite
Builder v1-v7: template articolo con NewsArticle schema, chapô, curiosity box, link inline, correlati, pagine statiche, categorie multiple, menu dropdown, footer redesign, top-links, internal linking cronologico
Generator: generazione titoli + articoli via OpenAI GPT-4.1-mini con prompt ottimizzato Discover
Modulo Immich: ricerca immagini, anti-duplicato, alt text via OpenAI, filename SEO
Pannello admin cms.mclmedia.eu: dashboard, gestione siti, generazione, recycler, settings, documentazione (26 sezioni v3.0), cache management
Audit SEO completo vs archedfo.it e implementazione fix
Builder v5: BreadcrumbList, ProfilePage, WebSite+Organization schema, font sistema, logo SVG auto, og:image homepage, article:tag
Builder v6: formato URL archedfo (/giorno-id-slug/), funzione article_url_path() centralizzata
Builder v8: formato permalink catdate, generazione redirects.map, pulizia cartelle postname orfane, migrazione 353 siti, recovery ~95K immagini da Immich
Modulo Cloudflare API: creazione zona, DNS, page rule www/non-www, SSL, Security High, Bot Fight Mode
Deploy automatico: Nginx config + Cloudflare Origin Certificate SSL (15 anni)
Modulo HB Agency: registrazione sito via API, download ads.txt, script prebid injection
Cron HB Agency ads.txt: ogni 10 min se manca, ogni 2 giorni se presente
Generator v2: Immich integrato dopo ogni articolo, retry, rebuild automatico
Logo Generator v3: 10 stili × 5 varianti PNG con GD + Montserrat/Inter, brand color awareness
Tagline generator: H1 + subtitle dinamici basati su categorie del sito
Plausible analytics tag integrato in tutte le pagine
HB Agency script integrato nell'head di tutte le pagine con JS delay (carica dopo interazione/5s)
WebP conversion: importer, Immich download, batch converter (1110 immagini, 56MB risparmiati)
Endpoint API su gestionale-wf (api_cms_products.php) per esporre prodotti WF al CMS
Tipo sito WF nel form creazione siti + colonna site_type nel DB
Pagina Prodotti WF: import automatico da gestionale-wf con check HTTP siti online + fetch og:image da JSON-LD
Generator WF: 3 articoli per prodotto (social proof, funzionalità, evergreen) con nome display pulito
10 varianti banner display professionali con CSS dedicato e selezione random
Tracking CTR banner: pixel 1px impressioni + JS onclick click, tabella wf_banner_events
Pagina Analisi Banner WF: CTR per variante, posizione, prodotto, trend giornaliero
Skip HB Agency per siti WF (no ads.txt, no prebid script)
Web Push Notifications: modulo VAPID nativo (engine/push.php), zero dipendenze, payload Perfecty-compatibile
Pagina Nuovo Articolo: form admin + AI generation + Immich + publish asincrono + push network/sito
Publisher v2: invio push automatico alla pubblicazione di articoli scheduled, tracking article_id e push_mode
Widget iscrizione push: popup modale compatto + service worker Perfecty-compatibile in 3 path + esclusione iOS
Dashboard Push nel pannello admin: invio manuale, stats, log, gestione VAPID, tab Discover/Parking separati
Fix PageSpeed: fetchpriority=high, overflow-x:hidden ads, location /img/ nginx, ARIA landmarks, contrast fixes (score 99/96/100/100)
Importer WordPress v2.1: migrazione con WebP conversion, articoli, categorie, push subscribers, VAPID keys
Plugin MCL Exporter v2.0: REST API endpoint per migrazione automatizzata parking
Fix layout HB Agency su mobile: CSS containment + MutationObserver + iframe TCF/GPP nascosti
Push Network: funzione push_send_network() per inviare a tutti i siti + UI con toggle sito/rete
MCL Ads Manager: strategie per sito/articolo (full/light/native-only/no-ads/amazon + custom), auto-parse zone HB, pannello admin con rebuild+deploy in un click
Stripe Premium: checkout €1.99/mese singolo + €7.99/mese network, webhook, pagina /premium/ su ogni sito, cookie-based no-ads, verifica token asincrona
Cache Management: pagina admin per purge Cloudflare singola/bulk via API
Internal linking: cronologico per categoria (deterministico), top-links card dopo primo paragrafo (2 prominenti + 4 inline)
Pagina Pubblicazioni: grid 2 colonne con card colorate per categoria, stats header
Infrastruttura parking: VPS parking-01 configurata, snapshot golden-parking (ID 373225296), config CMS con costanti parking
Sistema migrazione parking completo: parking_importer.php, pagina Migrazione Parking, pagina Parcheggio, tabella parking_servers con auto-scaling
Migrazione batch ~330 siti WordPress al parking (12 VPS CX23, 50 siti/VPS, costo €0.14/sito/mese)
Pagina Migra al Parking: sposta siti attivi da VPS dedicata CPX22 al parking condiviso CX23 con eliminazione automatica VPS Hetzner
Nuova dashboard con card a griglia per sito + timeline attività + API dashboard-live.php
Ottimizzazione mobile globale: file mobile.css unico con fix responsive per tutte le pagine admin
Pubblicazione articoli asincrona: article-create.php salva come scheduled, publisher.php fa rebuild/deploy/indexing/push in background
Push distribuito su VPS remote: push_sender.php v1.1 su 32 VPS, PHP 8.3-cli, batch=30, max 2 paralleli/VPS, ~8 min per ~183K sub, errori quasi azzerati
Modulo Amazon monoprodotto: PA-API 5.0 OffersV2, pagina admin Amazon, ricerca/preview/genera, box CTA HTML con prezzo+sconto+bottone, cover GD con scontorno, categoria 'Prodotti e Offerte' automatica, campo prezzo manuale fallback
Cover Amazon: 20 template editoriali WOW con PHP/GD + helper radial/diagonal gradient
3 box CTA Amazon per articolo (dopo intro, prima di Pro/Contro, alla fine) + sticky bar con IntersectionObserver
Strategia ads 'amazon': HB Agency completamente disattivato per articoli Amazon, ads_strategy='amazon' auto-assegnata
Native Amazon Widget: widget proprietario in fondo all'articolo con 3 sezioni (stessa categoria/stessa macro/ultimi dal network), card con cover+titolo+dominio, link diretti cross-sito per backlink
Sistema scheduling Amazon automatico: 100 categorie merceologiche (10 macro-settori), 5 tabelle DB, assegnazione categoria per sito con rotazione 21gg e storico, pagina admin Programmazione Amazon con 4 tab
Cron Amazon: amazon_cron.php con 3 modalità (plan/run/expire), linking interno + cross-sito, anti-duplicato ASIN, ~$30/mese per 329 siti
FAQ + Product JSON-LD per articoli Amazon: 5 FAQ generate dall'AI, parser dedicato, HTML accordion, FAQPage + Product schema nel builder
MultiPED v2 con category resolver automatico, distribuzione orari random, boost round-robin separato
Migrazione database da SQLite a MariaDB 10.11: schema 23 tabelle, migrazione ~290K righe, conversione 32 file PHP, zero downtime, tutti i cron funzionanti in parallelo
Documentazione v3.0: aggiornata per MySQL, nuove sezioni Amazon/Parking/Crontab, credenziali MariaDB, comandi aggiornati, storico migrazione
Restyling pagina Programmazione: dashboard KPI (5 card), stato processi Worker/Publisher con LED, barra progresso, filtro solo Discover, ETA completamento
Log migliorati: PED worker e Publisher loggano 'Nessun articolo da scrivere/pubblicare', script log_cleanup.sh con cron mezzanotte (12 log troncati a 500 righe)
Category Resolver: engine a 3 livelli (verticale → top articles pesati → weighted random parking), campo vertical_category in sites, tabella site_assigned_categories, max 5 categorie in 5 giorni
Top Analytics: pagina admin con tab Discover/Parking, cron notturno top 100 pagine 30gg, categorie agganciate, populate parking manuale (51K+ titoli)
PED v2 con strategia Pillar/Spin: 60% nuovi ispirati ai top, 30% spin vincenti, anti-duplicato ultimi 30, box approfondimento pillar nell'HTML
Pagina Riepilogo Boost: stato publisher cron, KPI, prossimi boost, boost inviati, errori
Pagina Avvio Sito: selezione fino a 3 categorie top, 27 articoli su 3 giorni, toggle boost (10/27), launch_expires_at per 5 giorni
Network Boost cross-site: box 'Da non perdere' HTML statico con max 3 link stessa categoria da siti in lancio, tabella network_boost, scadenza automatica 5 giorni
Boost round-robin: assign_boosts separato dal confirm_ped, distribuzione equa su tutti i siti (1 boost/sito per round fino al budget)
Golden snapshot Hetzner aggiornato a 374785564 con push_sender.php pre-installato
Ottimizzazione push: batch da 100→30, parallelo da 3→2 per VPS, errori curl_0 da ~30K a ~5 per invio
Pagina Guadagni HB Agency: cron sync API + tabella hb_revenues + dashboard con KPI/grafico/tabella top siti (prompt dettagliato pronto: PROMPT-guadagni-hb-agency.md)
Articoli multiprodotto Amazon ('I 5 migliori...') con selezione N prodotti e cover griglia
Migrazione da PA-API 5.0 a Creators API Amazon (PA-API deprecata 30 aprile 2026)
Restyling pannello admin: tema chiaro Google Material (Concept A approvato), prompt dettagliato pronto (PROMPT-RESTYLING.md)
Integrazione Plausible via API/SSH per aggiunta automatica siti ad analytics.mclmedia.eu
Test ingresso Google Discover con siti CMS vs siti WordPress
Configurare chiavi Stripe in Impostazioni e testare flusso premium end-to-end
Migrare i ~20 siti Discover attivi al parking tramite pagina Migra al Parking ed eliminare VPS CPX22 dedicate
📝 Note
## Struttura file sul server ``` /var/www/cms/ ← CMS engine + admin /admin/ ← Pannello web (PHP-FPM) /assets/ mobile.css ← Override responsive globale per tutte le pagine admin /pages/ ← dashboard, sites, site-detail, settings, generate, recycler, deploy-status, import, wf-products, wf-generate, wf-analytics, amazon, amazon-scheduler, article-new, push, ads-manager, caching, documentazione, analytics, programmazione, multi-ped, parking-import, parking, migrate, tools, top-analytics, boost-overview, guadagni (DA CREARE) /api/ ← article-create.php, amazon-api.php, ads-rebuild.php, push-subscribe.php, push-send.php, dashboard-live.php, stripe-webhook.php, premium-checkout.php, premium-verify.php, cache-api.php, analytics-api.php, parking-api.php, migrate-api.php, ped-api.php inspector.php ← Snapshot CMS tar.gz (?key=mcl2026) wf_tracker.php ← Endpoint tracking banner (pixel + click) /engine/ ← Moduli core builder.php ← v8 — catdate, redirects.map, CSS Amazon, pillar box, network boost box network_boost.php ← Box 'Da non perdere' cross-site per siti in lancio category_resolver.php ← Risoluzione automatica categoria (verticale/top articles/weighted random) amazon_api.php ← PA-API 5.0 OffersV2, AWS Sig v4 amazon_generator.php ← Prompt AI monoprodotto con 5 FAQ, cover GD 20 template amazon_cron.php ← Cron engine: plan (4:00) + run (*/5 8-20 LIMIT 15) + expire (3:00) logo_generator.php ← 10 stili × 5 varianti PNG con GD generator.php ← v2 — genera articoli OpenAI + Immich generator_functions.php ← generate_titles_v2() con pesi 60/30, spin, anti-duplicato generator_wf.php ← Genera articoli WF: 3 per prodotto publisher.php ← v5 — cron pubblicazione + push distribuito + network_boost insert per siti in lancio ped_worker.php ← Cron ogni minuto, 1 articolo/esecuzione push.php ← Web Push VAPID nativo push_fast.php ← v4 — Push distribuito SSH, batch=30, max 2 paralleli/VPS push_sender.php ← v1.1 su ogni VPS (retry 2 round) ads_manager.php ← Funzioni core ads hb_parser.php ← Parser zone HB hbagency.php ← HB Agency API stripe_premium.php ← Stripe API importer.php ← v2.1 — Import WP con WebP parking_importer.php ← v1.0 — Migrazione parking immich.php ← Modulo immagini + WebP cloudflare.php ← API Cloudflare deploy.php ← v2 — Deploy Nginx + Origin Certificate + cron SSL retry hetzner.php ← API Hetzner (HETZNER_SNAPSHOT_ID = 374785564) brand.php ← Header/footer/menu/push widget indexing.php ← Google Indexing API schedule.php ← Scheduler recycler giornaliero recycler.php ← URL recycler analytics_cron.php ← Cron analytics + top_articles log_cleanup.sh ← Pulizia log mezzanotte /tools/ ← Script operativi (rebuild_one, dns_check, assign_images, etc.) /config/ config.php ← mcl_db() MySQL PDO, mcl_setting(), CF keys, PARKING constants init_db.php ← v4 — Migration checks via information_schema migrate_categories.php ← vertical_category + site_assigned_categories migrate_network_boost.php ← network_boost + launch_expires_at migrate_top_articles.php ← top_articles table ``` ## Database MariaDB 10.11 — migrato da SQLite il 7 aprile 2026 - DB: mcl_cms, User: mcl@localhost, Pass: McL2026ExtraDB - Tabelle nuove (9 aprile): top_articles, site_assigned_categories, network_boost - Campi nuovi (9 aprile): sites.vertical_category, sites.launch_expires_at - Connessione: mcl_db() in config.php restituisce PDO MySQL ## Piano Editoriale — Flusso attuale 1. MultiPED: seleziona siti + numero articoli, clicca Genera Titoli 2. Category Resolver determina automaticamente la categoria per ogni sito 3. generate_titles_v2: 60% nuovi (ispirati ai top), 30% spin, anti-duplicato 4. Conferma: articoli creati SENZA boost, distribuiti random nella giornata 5. assign_boosts: distribuzione round-robin (1 boost/sito per round fino al budget) 6. PED Worker: scrive contenuti in background 7. Publisher (*/3 min): pubblica, rebuild, deploy, push, indexing ## Push Notification — Parametri attuali - PUSH_BATCH_SIZE = 30 (era 100) - PUSH_MAX_PARALLEL_PER_VPS = 2 (era 3) - Budget boost giornaliero: 64 - Slot intervallo: 15 minuti - ~183K subscriber su ~350 siti - Errori curl_0 quasi azzerati dopo ottimizzazione ## Crontab completo ``` * * * * * php8.3 /var/www/cms/engine/ped_worker.php >> /tmp/mcl-ped-session.log 2>&1 */3 * * * * php8.3 /var/www/cms/engine/publisher.php >> /var/log/mcl-publisher.log 2>&1 */3 7-23 * * * php8.3 /var/www/cms/engine/recycler.php >> /var/log/mcl-recycler.log 2>&1 0 6 * * * php8.3 /var/www/cms/engine/schedule.php >> /var/log/mcl-schedule.log 2>&1 0 4 * * * php8.3 /var/www/cms/engine/amazon_cron.php plan >> /var/log/mcl-amazon-plan.log 2>&1 */5 8-20 * * * php8.3 /var/www/cms/engine/amazon_cron.php run >> /var/log/mcl-amazon-run.log 2>&1 0 3 * * * php8.3 /var/www/cms/engine/amazon_cron.php expire >> /var/log/mcl-amazon-expire.log 2>&1 */10 * * * * php8.3 /var/www/cms/engine/hbagency.php --cron-ads >> /var/log/mcl-hb-cron.log 2>&1 */30 * * * * php8.3 /var/www/cms/engine/deploy.php --cron-ssl >> /var/log/mcl-ssl-cron.log 2>&1 0 0 * * * /var/www/cms/engine/log_cleanup.sh >> /var/log/mcl-log-cleanup.log 2>&1 0 3 * * * php8.3 /var/www/cms/engine/analytics_top_cron.php >> /var/log/mcl-top-analytics.log 2>&1 ``` ## CRITICO: builder.php righe 2-3 ```php require_once __DIR__ . '/logo_generator.php'; require_once __DIR__ . '/network_boost.php'; ``` ## CRITICO: deploy con rsync rsync --delete DEVE avere --exclude='img/' — le immagini sono gestite separatamente. ## Sito ferraravetro.it (nuovo, 9 aprile) - VPS: 178.104.156.157 (Hetzner ID 126248008) - Zone CF: 36d60ea55302845a0e58c45f8cf6988f - HB Agency: ID 39943, attualmente ads_strategy='no-ads' (interstitial mobile da risolvere) - SSL: pending propagazione DNS - 27 articoli avviati (Salute + Giardino), 10 boost
📜 Changelog
Sistema boost push completamente riscritto con logica round-robin: confirm_ped ora crea articoli SENZA boost, nuova azione assign_boosts distribuisce equamente (giro 1 → 1 boost/sito, giro 2 → 1/sito, ecc. fino al budget 64/giorno). Fix bug critico mt_rand($min > $max) che bloccava l'inserimento articoli quando il budget boost era esaurito. Ottimizzato push_sender: batch da 100→30, parallelo da 3→2 per VPS — errori curl_0 passati da ~30K a ~5 per invio
2026-04-09 18:00 · claude
Category Resolver + MultiPED v2 + Top Analytics: implementato engine category_resolver.php a 3 livelli (verticale/top articles pesati/weighted random parking), campo vertical_category editabile in pagina Siti e site-detail, tabella site_assigned_categories. MultiPED semplificato: rimossi orario/distanza/dropdown categoria — il backend gestisce tutto. Top Analytics con cron notturno e populate parking (51K+ titoli). PED v2 con generazione titoli 60% nuovi + 30% spin + box pillar HTML
2026-04-09 15:00 · claude
Avvio Sito + Network Boost cross-site: riscritta pagina Avvio Sito (27 articoli su 3 giorni, selezione categorie top 5, toggle boost 10/27). Network Boost: box 'Da non perdere' HTML statico nel builder con link stessa categoria da siti in lancio, tabella network_boost, publisher inserisce articoli automaticamente, scadenza 5 giorni. Creato ferraravetro.it (VPS 178.104.156.157, HB Agency ID 39943). Pagina Riepilogo Boost sotto Analisi. Golden snapshot aggiornato a 374785564
2026-04-09 14:00 · claude
Pulizia operativa: 38 record DNS parking fixati via Cloudflare API (puntavano a OVH vecchio), 99 script /tmp/ analizzati e utili spostati in /var/www/cms/tools/, pagina admin Tools con esecuzione AJAX e log streaming. Sessione login portata a 7 giorni (da 24 min). Dashboard refresh portato a 10 secondi (da 30s). Calendario Editoriale v4 con 3 viste (Timeline/Siti/Lista)
2026-04-09 10:00 · claude
Migrazione permalink catdate completata su tutti i 353 siti: builder.php v8 con case 'catdate' in article_url_path(), generazione redirects.map in rebuild_site(), pulizia cartelle postname orfane. Aggiunto 'category' alle SELECT di publisher.php, analytics_cron.php, recycler.php. Script migrate_catdate.php e deploy_catdate.php v2 (preflight map_hash su VPS, rsync --delete --exclude='img/', CF purge, verifica URL). sophiestique.it: 506K click Discover ora serviti nativamente senza redirect. Rimossa regola Nginx WordPress inversa su sophiestique.it
2026-04-08 18:00 · claude
Recovery ~95K immagini perse durante deploy (rsync --delete aveva cancellato /img/ sulle VPS). Creato recover_images.php v2 con curl_multi (50 richieste parallele a Immich, no OpenAI, ~200 img/min). Recovery completato, immagini deployate su tutte le VPS. Fix permanente: deploy_catdate.php ora usa --exclude='img/'. Inspector page creata su cms.mclmedia.eu/admin/inspector.php per snapshot CMS
2026-04-08 19:30 · claude
Migrazione completa database da SQLite a MariaDB 10.11: installato MariaDB sul server CMS, creato schema MySQL (23 tabelle), migrati ~290K righe (104K articoli, 183K push subscriber) in 25 secondi con verifica integrità 100%, convertiti 32 file PHP, riscritto config.php con PDO MySQL e timezone Europe/Rome. Backup SQLite preservato. Risolto definitivamente il problema 'database is locked'
2026-04-07 21:30 · claude
Restyling pagina Programmazione v3: dashboard KPI con 5 card, stato processi Worker/Publisher con dot LED, filtro solo Discover. Documentazione aggiornata a v3.0 con 26 sezioni. Log migliorati con cleanup cron mezzanotte
2026-04-07 22:00 · claude
SEO dati strutturati per articoli Amazon: FAQPage JSON-LD + Product JSON-LD. Pannello Defaults globali in MultiPED
2026-04-06 19:00 · claude
Sistema Amazon Parking completo: cron engine amazon_cron.php con 3 modalità, 100 categorie merceologiche, pagina admin Programmazione Amazon. 329 siti assegnati. Costo ~$30/mese
2026-04-06 17:00 · claude
Native Amazon Widget + sticky bar + strategia ads 'amazon' con HB Agency disattivato
2026-04-06 15:00 · claude
Cover Amazon v2: 20 template editoriali PHP/GD. 3 box CTA per articolo
2026-04-06 13:00 · claude
Modulo Amazon completo deployato: PA-API 5.0 con OffersV2, pagina admin Amazon, primo test Fire TV Stick HD su enjoyanimazione.it
2026-04-06 11:00 · claude
ℹ️ Info
Server Hetzner CPX22 — 128.140.55.211
OS Ubuntu 24.04
PHP 8.3
Web Server Nginx 1.24.0
Database MariaDB 10.11 — DB: mcl_cms, User: mcl@localhost, Pass: McL2026ExtraDB
Database Backup SQLite /var/www/cms-backup-sqlite/data/cms.db
Admin Panel https://cms.mclmedia.eu
Admin Password mcl2026
Admin Session 7 giorni (gc_maxlifetime + cookie_lifetime = 604800)
CMS Inspector https://cms.mclmedia.eu/admin/inspector.php?key=mcl2026 — scarica snapshot tar.gz del CMS
Sito Test WF https://sitotest.mclmedia.eu
Sito Live Discover https://www.sophiestique.it
Siti Attivi CMS ~24 siti Discover attivi su VPS CPX22 dedicate + 3 siti WF + ~329 siti in parking su 12 VPS CX23
Permalink Format catdate — /%category%/%year%/%monthnum%/%day%/%postname%/ (migrato da postname l'8 aprile 2026)
Parking VPS 12 VPS CX23 (parking-01 a parking-12), max 50 siti/VPS, ~€48/mese totale
Parking Snapshot golden-parking — ID 373225296
Parking Max Sites 50 siti per VPS (aggiornato da 20)
Golden Snapshot Discover ID 374785564 — CPX22 con push_sender.php incluso (aggiornato 9 aprile 2026)
Plugin MCL Exporter v2.0 — endpoint REST /wp-json/mcl-exporter/v1/export?key=mclmedia2026parkingkey
Gestionale WF API https://gestionale-wf.mclmedia.eu/api_cms_products.php
WF API Key MCL_CMS_WF_2026
Cloudflare Email info@mclmedia.it
HB Agency User ID 11797
HB Agency API Key 0e63bcb2-56ba-47f8-b073-23a7f9461bb7
HB Agency API Secret 7a307f08-4334-417a-ac88-a70633393fb5
HB Agency Report API GET https://pubapi.hbagency.ai/publisher/report?dateFrom=DD/MM/YYYY&dateTo=DD/MM/YYYY
Immich https://immaginimcl.it
Plausible https://analytics.mclmedia.eu
Push API Endpoint https://cms.mclmedia.eu/api/push-subscribe.php
Push System Distribuito su 32 VPS — push_sender.php v1.1 (con retry 2 round) + PHP 8.3-cli su ogni VPS, batch=30 curl_multi, max 2 paralleli/VPS, ~8 min per ~183K sub, errori curl_0 quasi azzerati
Push Subscribers ~183K totali
Push Boost Budget 64/giorno, slot ogni 15 min (06:00-23:00), round-robin su tutti i siti
Amazon PA-API PA-API 5.0 con OffersV2 — Access Key AKPAL0AMY61775366303, Partner Tag mclmedia-21, marketplace www.amazon.it
Amazon PA-API Deprecation 30 aprile 2026 — migrare a Creators API
Amazon Scheduler 329 siti parking con categoria assegnata, 100 categorie merceologiche, cron plan 4:00 + run */5 8-20 + expire 3:00, LIMIT 15 per ciclo, ~$30/mese GPT-4.1-mini
Amazon Cron plan (4:00) → run (*/5 8-20, LIMIT 15) → publisher (*/3) → live
Amazon Schema Product JSON-LD + FAQPage JSON-LD (5 FAQ) per articoli con amazon_asin
Documentazione Pagina admin Documentazione v3.0 — 26 sezioni, aggiornata 7 aprile 2026
Ads Manager Pagina admin ?page=ads-manager — strategie ads per sito/articolo + zone HB + premium Stripe + strategia 'amazon' (zero HB)
Stripe Webhook URL https://cms.mclmedia.eu/admin/api/stripe-webhook.php
Stripe Non ancora configurato — chiavi da inserire in Impostazioni
PageSpeed Scores Performance 99, Accessibility 96, Best Practices 100, SEO 100
Hetzner Limit 50/50 server — richiesta aumento a 100 pendente
Mobile CSS admin/assets/mobile.css — override responsive globale per tutte le pagine admin
Log Cleanup Cron mezzanotte — log_cleanup.sh tronca 12 file log a 500 righe
Migrazione MySQL Completata 7 aprile 2026 — 23 tabelle, ~290K righe, 32 file PHP convertiti
Migrazione Catdate Completata 8 aprile 2026 — 353 siti migrati, ~95K immagini recuperate da Immich, deploy su tutte le VPS
Nginx VPS map_hash map_hash_bucket_size 256 + map_hash_max_size 4096 su tutte le ~20 VPS
Dashboard Refresh 10 secondi (aggiornato da 30s il 9 aprile 2026)
🛠 Tech Stack
PHP 8.3 MariaDB 10.11 Nginx HTML statico Cloudflare API OpenAI GPT-4.1-mini Immich API HB Agency API Plausible CE Cloudflare Origin SSL Worldfilia API (gestionale-wf) Web Push VAPID RFC 8292 ECDSA P-256 JWT signing Stripe Checkout API GD Library (logo PNG + Amazon cover generation) WebP conversion curl_multi (push parallelo) SSH distributed push (32 VPS) Amazon PA-API 5.0 (OffersV2, AWS Sig v4) IntersectionObserver (sticky bar) FAQPage JSON-LD Product JSON-LD
📘 README
Nessun README. Usa "Copia README" per farlo generare da Claude.
⚠️ Zona Pericolosa clicca per espandere