Il tuo giornale non rallenta più. Nemmeno sotto milioni di richieste.
Dimentica PHP, database e plugin di cache. Presstatic trasforma ogni articolo in una pagina già pronta e la fa consegnare da Cloudflare in oltre 330 città: PageSpeed 100 su home, articoli e categorie, e 27,2 milioni di richieste servite da Cloudflare in meno di due ore. Sullo stesso server, con le pagine compresse come le chiede un browser, serve circa 4.500 volte le richieste di WordPress senza cache e il doppio di WordPress con Varnish, la sua cache più veloce.
Il traffico lo regge Cloudflare. Il tuo server non se ne accorge.
Con WordPress ogni visita che non trova la pagina in cache passa dal server: banda, Nginx, PHP e database si mettono in coda, e nei picchi arrivano rallentamenti ed errori. Con Presstatic le pagine sono già pronte e partono dalla cache di Cloudflare: quei limiti non entrano più in gioco.
La rete di Cloudflare consegna le tue pagine da oltre 330 città
I limiti del server che non contano più
Colonna WordPress misurata sullo stesso server, con gli stessi 2.000 articoli.
| Collo di bottiglia | WordPress | Presstatic con Cloudflare |
|---|---|---|
| Banda della porta del server | con risposte da 17 KB, una porta da 570 Mbit/s si ferma a circa 4.000 richieste al secondo; le pagine di WordPress pesano il doppio | non conta: le pagine partono dai data center di Cloudflare |
| PHP | circa 45 ms di calcolo per ogni pagina: circa 22 richieste al secondo per core, con Nginx come con Apache | nessun PHP: la pagina è già pronta |
| MySQL o MariaDB | 31 query per la home e 39 per un articolo, a ogni visita non in cache | zero query per ogni visita |
| Latenza nei picchi | con 50 connessioni, da 1 a 2 secondi di attesa e centinaia di richieste oltre i 2 secondi | con 50 connessioni sullo stesso server, 0,4 ms di media e nessun timeout |
| Con la cache di pagina | 1.595 richieste al secondo in gzip e 394 in brotli, perché Nginx comprime la pagina in cache a ogni visita; la cache va configurata e svuotata a ogni pubblicazione | circa 98.700 richieste al secondo in gzip e in brotli: le pagine sono già compresse, senza configurare nulla |
Cosa succede quando premi «Pubblica»
Quattro passaggi, e l'articolo diventa un file che nessun picco di traffico può rallentare.
Si salva
L'articolo va nel database SQLite, dentro il programma.
0,19 msSi genera
Presstatic compone la pagina e aggiorna home, categorie, tag e sitemap.
0,75 s con 20.000 articoliSi avvisa
Svuota la cache di Cloudflare solo dove serve e segnala l'articolo a Google.
Indexing APISi legge
Da quel momento l'articolo è un file: lo serve Cloudflare dal data center più vicino al lettore, e il tuo server entra in gioco solo se la pagina non è ancora in cache.
oltre 330 città
Il database sta solo sulla strada di chi scrive.
Il pannello di redazione e il sito dei lettori sono due percorsi separati. Chi scrive lavora con il programma e con il database; chi legge riceve soltanto file già pronti.
Chi scrive
genera l'HTML alla pubblicazione
Chi legge
Nginx, dietro le quinte: solo per le pagine non ancora in cache
Nessuna visita tocca il programma o il database
Di serie Cloudflare non mette in cache le pagine HTML: Presstatic lo configura da solo perché lo faccia. HIT significa che Cloudflare ha servito la pagina direttamente dalla sua cache, senza contattare il tuo server. Nei test, una volta scaldata la cache, le richieste sono state HIT al 100%: il server entra in gioco solo per le pagine appena pubblicate o modificate. Cloudflare è consigliato, non obbligatorio. Con Cloudflare davanti le visite sono potenzialmente illimitate, perché il limite è la sua rete; senza, è Nginx a servire direttamente i lettori e il limite diventa la banda del tuo server.
Pagine generate alla pubblicazione
Ogni articolo diventa un file HTML nel momento in cui esce, e resta pronto finché non cambia.
Vantaggio: nessun calcolo a ogni visita, niente plugin di cache, nessun calo dopo una pubblicazione.
Scritto in Rust
Un linguaggio compilato tra i più veloci, progettato per evitare interi tipi di errori di memoria.
Vantaggio: un solo programma di circa 18 MB, circa 13 MB di RAM a riposo e circa 100 MB mentre rigenera 20.000 articoli, meno vulnerabilità possibili.
SQLite dentro il programma
Il database è un file letto direttamente dal programma, senza un servizio separato da gestire.
Vantaggio: letture fino a 4,7 volte più rapide di MariaDB, backup di un solo file, 244 MB di RAM risparmiati.
Cloudflare davanti a tutto
Presstatic configura Cloudflare da solo perché metta in cache anche l'HTML, cosa che di serie non fa: le pagine arrivano ai lettori dalla sua CDN, e sul tuo server Nginx risponde solo quando una pagina non è ancora in cache.
Vantaggio: visite potenzialmente illimitate, perché il limite è la rete di Cloudflare; il server resta quasi fermo ed è protetto dagli attacchi DDoS.
Ricerca nel browser
L'indice di ricerca è fatto di piccoli file statici: la ricerca la esegue il browser del lettore.
Vantaggio: risultati mentre scrivi, nessun carico sul server, anche su archivi molto grandi.
Aggiornamenti firmati
Ogni versione è firmata con una chiave che resta solo a chi pubblica; ogni sito la verifica prima di installarla.
Vantaggio: aggiornamento con un clic dal pannello, e nessuno può spacciare una versione falsa.
Mille persone cercano insieme. Il server non se ne accorge.
La ricerca di Presstatic non interroga il server. Dopo ogni pubblicazione, Presstatic prepara l'indice come tanti piccoli file statici. Mentre il lettore scrive, il suo browser scarica solo i pezzi che servono e trova i risultati da solo.
- Mille ricerche contemporanee sono mille download di file piccoli dalla cache di Cloudflare: nessuna query al database e nessun calcolo sul server.
- Risultati mentre scrivi, senza ricaricare la pagina, anche su archivi di decine di migliaia di articoli: l'indice è diviso in pezzi e il browser non lo scarica mai tutto.
- Link diretti alle ricerche: un indirizzo come /cerca/?q=ponte apre la pagina con i risultati già pronti.
- Serve JavaScript attivo, come in tutti i browser moderni: la ricerca gira nel browser del lettore.
Tutto quello che serve a una redazione, già dentro.
Tutto incluso, gratis e dentro il programma: niente versioni Pro, plugin premium o abbonamenti. Sitemap news, dati strutturati, immagini ottimizzate, commenti, newsletter, notifiche, backup e page builder sono parte del CMS.
Redazione
- Editor visuale: incolli da Word o Google Docs e il testo resta pulito
- Blocco HTML per post social, mappe e colonne
- Ruoli autore, redattore e amministratore, con revisione
- Cronologia delle modifiche con ripristino
- Pubblicazione programmata e articoli in evidenza
- Note interne della redazione, con avviso all'autore
- Azioni in blocco su più articoli insieme
- Due persone sullo stesso articolo: blocco e avviso, nessuna modifica persa
- Coautori nella firma e nelle pagine autore
SEO
- Sitemap news, sitemap con immagini e feed RSS automatici
- Schema.org: NewsArticle, Recipe, Review, VideoObject, Breadcrumb e autori
- Indicizzazione rapida: Google Indexing API e IndexNow per Bing e gli altri motori
- Link interni automatici tramite parole chiave
- Anteprima su Google con avvisi su titolo e sommario
- Vecchi indirizzi reindirizzati da soli quando cambi l'URL
- Categorie e sottocategorie, con briciole di pane
Immagini
- WebP in più misure: ogni dispositivo scarica quella giusta
- Foto del telefono raddrizzate in automatico
- Posizione GPS e metadati rimossi
- Dimensioni sempre dichiarate: la pagina non salta
- Libreria media con didascalie, crediti e ricerca
- Gallerie di foto dentro gli articoli
Intelligenza artificiale
- Dalle fonti di una notizia, una bozza già formattata
- Titolo, sommario, tag e parole chiave per i link interni
- Immagine in evidenza generata, se vuoi
- Claude o GPT con la tua chiave: paghi solo quello che usi
Temi e pubblicità
- Due temi, Classico e Moderno, con modalità chiara, scura o automatica
- Pagina Aspetto: temi con anteprima, colore, logo e icona del sito
- Menu, piè di pagina, social e note legali dal pannello
- Annunci dopo il paragrafo che scegli, ads.txt dal pannello
- Annunci tra le notizie in home e nelle categorie, e annuncio fisso sul telefono
- Banner cookie con blocco preventivo, oppure iubenda o Cookiebot, e Google Consent Mode v2
- Campi per Analytics, Tag Manager, Pixel e cookie
Gestione
- Installazione con un comando e procedura guidata
- Aggiornamenti firmati dal pannello, con un clic
- Ripristino dei backup dal pannello, con copia di sicurezza automatica
- Più siti sulla stessa VPS, ciascuno con il suo database
- Processori x86 e ARM, su VPS e server dedicati
- Cloudflare configurato da solo: cache e svuotamento mirato
- File manager per immagini, documenti e temi
- Backup ogni giorno su Wasabi, Backblaze, Hetzner, Amazon S3 o Cloudflare R2
- Importazione da WordPress con categorie, autori e immagini
Gratis, e tutto nativo.
Quello che altrove richiede plugin premium o abbonamenti è già nel programma, e Presstatic non mette limiti a utenti, iscritti o notifiche. Paghi solo quello che scegli tu fuori da Presstatic: il server e, se la usi, la chiave dell'intelligenza artificiale. Ed è open source, con licenza GPL-3.0: il codice è su GitHub.
- Page builder
- Newsletter
- Notifiche push illimitate
- Commenti
- Backup su S3
- SEO per le news
- Indicizzazione rapida
- Verifica in due passaggi
Componi home, testata e pagine trascinando i blocchi.
Sezioni, colonne e 29 widget, con l'anteprima vera del tuo tema. Quando pubblichi, Presstatic trasforma la composizione in HTML e CSS statici: ai lettori non arriva nessuno script dell'editor. Si lavora a tutto schermo, e titoli e testi si scrivono direttamente nell'anteprima, con un doppio clic.
- Home, testata con menu, piè di pagina e pagine come «Chi siamo»
- Stili diversi per computer, tablet e telefono, con l'anteprima alla larghezza vera
- Apertura, griglie per categoria, ultime notizie, più letti, newsletter e spazi pubblicitari
- Schede, fisarmonica, carosello e galleria senza una riga di JavaScript
- Modelli di partenza, blocchi salvati da riusare, annulla e ripeti
- Bozza e pubblicazione separate: il sito cambia solo quando premi Pubblica
Commenti, newsletter, notifiche e dirette, senza rallentare niente.
Le funzioni che riportano i lettori sul giornale sono già dentro, gratis e senza limiti, e non caricano script di altre aziende: le pagine restano leggere come prima.
Commenti
Moderazione, risposte della redazione evidenziate e antispam, senza servizi esterni. Il modulo è HTML puro: nessun JavaScript per chi legge.
Newsletter
Iscrizione con doppia conferma, riepilogo automatico giornaliero o settimanale, disiscrizione con un clic. Nessuna piattaforma di newsletter da pagare: usi il server di posta che preferisci.
Notifiche push illimitate
Avvisi sul telefono o sul computer a ogni nuovo articolo, per un numero illimitato di iscritti. Le invia il tuo server: nessun servizio esterno da pagare, e lo script si scarica solo quando il lettore lo chiede.
I più letti
La classifica arriva da Google Analytics 4 ogni mezz'ora: in home, senza toccare il server a ogni visita.
Condivisione
WhatsApp, Facebook, X, Telegram, LinkedIn ed email con i loro colori. Sono semplici link: nessun tracciamento dei social.
Dirette minuto per minuto
Per cronaca, sport ed elezioni: ogni aggiornamento compare in cima con il suo orario, e chi legge lo vede arrivare senza ricaricare la pagina. Per Google ci sono i dati strutturati delle dirette (LiveBlogPosting), gli stessi delle grandi testate.
Moduli di contatto
Contatti, segnalazioni, richieste: componi i campi nel pannello e inserisci il modulo dove vuoi. I messaggi arrivano per email e restano nel pannello, con antispam senza captcha e consenso privacy se serve.
Tutto acceso, sempre 100
Con commenti, newsletter, notifiche e condivisione attivi, misurato su Lighthouse:
- Prestazioni 100
- Accessibilità 100
- Pratiche consigliate 100
- SEO 100
Numeri misurati, non dichiarati.
Tutte le misure vengono da script ripetibili, inclusi nel progetto. Server di prova: 1 core e 4 GB di RAM, archivio di 20.000 articoli da circa 5 KB ciascuno.
Perché abbiamo scelto SQLite
Prima di scegliere il database abbiamo confrontato SQLite e MariaDB sulle operazioni che Presstatic fa davvero: stesso server, stessi dati, driver in C per entrambi, impostazioni predefinite con scrittura sicura su disco. Per i tempi, la barra più corta è la migliore.
| Operazione | SQLite | MariaDB | Confronto | Più veloce |
|---|---|---|---|---|
| Lettura di tutti i 20.000 articoli | 337 ms | 418 ms | SQLite, 1,2× | |
| Le 4 letture per pubblicare un articolo | 0,08 ms | 0,38 ms | SQLite, 4,7× | |
| Ricerca di parole nei testi (prime 1.000 corrispondenze) | 29 ms | 129 ms | SQLite, 4,4× | |
| Salvataggio con versione nella cronologia | 0,20 ms | 0,51 ms | SQLite, 2,5× | |
| 8 redattori che salvano nello stesso istante | 1.900 al s | 2.700 al s | MariaDB, 1,4× | |
| Memoria occupata | quasi zero | 244 MB | SQLite |
SQLite è più veloce in quasi tutto, non occupa memoria per un servizio separato e si salva copiando un solo file. MariaDB vince solo quando molti redattori salvano nello stesso istante, perché scrive in parallelo: ma anche così SQLite regge 1.900 salvataggi al secondo, molti più di quanti ne faccia una redazione.
Rigenerazione completa del sito
Tutte le pagine riscritte da capo, per esempio dopo un cambio di tema. Misurato su Presstatic con 20.000 articoli, su 1 core.
| 20.000 articoli, 1 core | Tempo |
|---|---|
| Lettura dal database (43 query) | 0,87 s |
| Prima volta, tutti i file nuovi | 14,9 s |
| Volte successive, pagine invariate | 5,5 s |
La lettura dal database è una piccola parte del lavoro: il resto è composizione delle pagine e scrittura su disco. La prima volta, le versioni compresse in gzip e brotli si preparano in sottofondo nei minuti successivi, e intanto Nginx comprime al volo. Con più core la composizione si divide tra tutti.
SQLite, le operazioni di tutti i giorni
Tempo di ogni operazione con 20.000 articoli. Il 99° percentile è il caso lento: 99 operazioni su 100 sono più rapide.
| Operazione | Mediana | 95% | 99% |
|---|---|---|---|
| Articolo singolo | 0,013 ms | 0,017 ms | 0,031 ms |
| Home, ultimi 20 articoli | 0,079 ms | 0,098 ms | 0,109 ms |
| Categoria, 20 articoli | 0,083 ms | 0,103 ms | 0,115 ms |
| Articoli correlati | 0,019 ms | 0,024 ms | 0,038 ms |
| Salvataggio con cronologia | 0,19 ms | 0,30 ms | 0,69 ms |
Curva di carico: quando la latenza comincia a salire
95% letture e 5% salvataggi, con una sola connessione condivisa come fa il pannello. Con un core il tetto arriva subito: da lì cresce solo l'attesa, senza un solo errore.
| Operazioni in parallelo | Operazioni al secondo | 99% | Andamento | Errori |
|---|---|---|---|---|
| 1 | 15.603 | 0,34 ms | 0 | |
| 2 | 16.117 | 2,13 ms | 0 | |
| 4 | 16.016 | 4,75 ms | 0 | |
| 8 | 13.837 | 8,67 ms | 0 | |
| 16 | 15.652 | 10,68 ms | 0 | |
| 32 | 14.510 | 17,56 ms | 0 | |
| 64 | 15.323 | 34,76 ms | 0 |
Scritture continue
1.442 salvataggi al secondo con due lettori in parallelo: il 99% sotto i 9,3 ms.
Arresto brusco
Programma interrotto di colpo durante i salvataggi: 5 prove su 5 con database integro e nessun dato confermato perso.
Backup a caldo
251 MB copiati in 0,93 s mentre la redazione salvava 50 volte al secondo, con copia integra.
Disco
Conferma di una scrittura sicura in 0,10 ms: circa 8.600 conferme al secondo.
WordPress contro Presstatic, con gzip e brotli
Stesso server, stessi 2.000 articoli, 50 connessioni contemporanee sulla home. Richieste come quelle di un browser: accettando solo gzip, o accettando brotli come fanno i browser moderni. WordPress 6.8.3 con il tema predefinito e nessun plugin, PHP 8.3 con PHP-FPM e MariaDB, con gzip e brotli al volo attivi. Nginx e Apache regolati per il carico, registro delle visite spento, wrk per 10 secondi; oltre i 2 secondi una richiesta conta come timeout. Server di prova da 1 core, senza HTTPS: contano i rapporti, non i valori assoluti.
| Come viene servita la pagina | Compressione | WordPress | Presstatic | Differenza | |
|---|---|---|---|---|---|
| Nginx, senza cache | gzip | 22 richieste/s1,0 s di media, 181 timeout | 98.700 richieste/s0,4 ms di media, nessun timeout | potenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo server | circa 4.500 volte |
| Nginx, senza cache | brotli | 22 richieste/s1,1 s di media, 175 timeout | 98.785 richieste/s0,4 ms di media, nessun timeout | potenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo server | circa 4.500 volte |
| Nginx, con la cache FastCGI di Nginx | gzip | 1.595 richieste/s31 ms di media: Nginx comprime la pagina in cache a ogni visita | 98.700 richieste/s0,4 ms di media: pagine già compresse | potenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo server | circa 60 volte |
| Nginx, con la cache FastCGI di Nginx | brotli | 394 richieste/s126 ms di media: brotli al volo costa ancora di più | 98.785 richieste/s0,4 ms di media: pagine già compresse | potenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo server | circa 250 volte |
| Apache, senza cache | gzip | 22 richieste/s1,1 s di media, 177 timeout | 25.722 richieste/s2,4 ms di media, nessun timeout | potenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo server | circa 1.150 volte |
| Apache, senza cache | brotli | 21 richieste/s1,0 s di media, 176 timeout | 24.540 richieste/s2,6 ms di media, nessun timeout | potenzialmente illimitateHTML servito dalla cache di Cloudflare, configurata da Presstatic: il limite è la sua rete, non il tuo server | circa 1.150 volte |
Perché con la compressione WordPress rallenta e Presstatic accelera
La cache conserva la pagina non compressa, da 94,7 KB, e Nginx deve comprimerla a ogni visita: comprimere costa molto più che inviare. Per questo si ferma a 1.595 richieste al secondo con gzip e a 400-550 con brotli, che comprime di più ma è ancora più lento.
Le versioni compresse vengono preparate una volta sola, quando pubblichi, e salvate accanto alla pagina: funzionano come una «cache» della compressione gzip e brotli, che non va mai rifatta finché la pagina non cambia. A ogni visita Nginx invia un file già pronto da circa 8 KB, senza nessun calcolo: circa 98.700 richieste al secondo.
La differenza sta in quando si comprime: WordPress a ogni visita, Presstatic una volta sola.
Cloudflare, configurato da Presstatic, mette in cache anche l'HTML
Di serie Cloudflare mette in cache solo file come immagini, CSS e JavaScript: le pagine HTML le chiede ogni volta al tuo server. Presstatic, collegato al tuo account Cloudflare, crea da solo la regola che mette in cache anche l'HTML di tutto il sito, attiva la Tiered Cache e a ogni pubblicazione svuota solo le pagine cambiate. Così le pagine arrivano ai lettori direttamente dalla CDN di Cloudflare: nei test, il 100% delle richieste servito dalla cache, a cache calda. Con WordPress la stessa cosa va configurata a mano, con eccezioni per chi ha fatto l'accesso e per le pagine dinamiche.
Peso della home
| gzip | brotli | |
|---|---|---|
| WordPress | 21,7 KB | 16,7 KB |
| Presstatic | 8,9 KB | 8,2 KB |
Sugli articoli, richieste al secondo
| gzip | brotli | |
|---|---|---|
| WordPress con cache | 2.212 | 874 |
| Presstatic | 97.766 | 96.294 |
Come leggere i numeri
- La colonna di Cloudflare viene dal test in produzione: 27,2 milioni di richieste in meno di due ore.
- Tra una sessione di prova e l'altra lo stesso server varia di circa il 10%: si confrontano i numeri della stessa tabella.
Anche contro WordPress con Varnish
Varnish è la cache più veloce per WordPress: tiene le pagine in memoria e le comprime in gzip una volta sola, quando entrano in cache. L'abbiamo messo davanti allo stesso WordPress, sullo stesso server da 1 core, e abbiamo misurato Presstatic nella stessa sessione, con 50 connessioni dove non indicato e pagine in gzip per entrambi.
| Prova | WordPress + Varnish | Presstatic | Differenza | |
|---|---|---|---|---|
| Pagine in cache, home | 36.216 richieste/s3,1 ms di media (99%: 34 ms) | 73.934 richieste/s0,6 ms di media (99%: 1,4 ms) | potenzialmente illimitatela home arriva dalla cache di Cloudflare: il limite è la sua rete, non la porta del tuo server | circa 2 volte |
| Pagine in cache, un articolo | 35.151 richieste/s3,9 ms di media (99%: 57 ms) | 70.288 richieste/s1,1 ms di media (99%: 2,8 ms) | potenzialmente illimitateanche gli articoli escono dalla rete di Cloudflare, da oltre 330 città | circa 2 volte |
| 200 connessioni insieme, home | 31.027 richieste/s130 ms di media, 99%: 1,4 s, 71 timeout | 72.992 richieste/s2,2 ms di media, 99%: 4,3 ms, nessun timeout | potenzialmente illimitatepiù connessioni non pesano sul tuo server: le regge la rete di Cloudflare | nessun timeout |
| Archivio: 2.000 articoli diversi, non ancora in cache | 19 richieste/s1,0 s di media, 154 timeout: ogni pagina torna su PHP | 58.707 richieste/s0,7 ms di media, nessun timeout | potenzialmente illimitatedopo la prima visita ogni articolo resta nella cache di Cloudflare; la prima la serve Nginx dal disco | circa 3.000 volte |
Dove Varnish non arriva
Varnish è veloce solo con le pagine che ha già in memoria. La prima visita a un articolo, le pagine scadute, quelle svuotate dopo una pubblicazione e i vecchi articoli che Googlebot scansiona uno per uno tornano su PHP e database: circa 20 richieste al secondo.
Ogni pagina dell'archivio è già un file pronto, compresso in gzip e brotli. La prima visita a un articolo di cinque anni fa costa come la home: 58.707 richieste al secondo su 2.000 articoli diversi. In più la versione gratuita di Varnish non supporta brotli, e con molte connessioni i tempi salgono oltre il secondo.
Oltre la porta del server
Anche con la cache in memoria, ogni pagina esce dalla porta di rete del tuo server. Con una porta da 1 Gbit/s e pagine in gzip da 21,7 KB sono circa 5.800 pagine al secondo, per quanto veloce sia Varnish: le oltre 30.000 misurate qui passano solo perché la prova gira dentro la stessa macchina.
Con Cloudflare configurato da Presstatic le pagine escono dalla rete di Cloudflare, da oltre 330 città, e la porta del server smette di essere il limite: a parità di server servi molte più richieste e molti più lettori. Nel test in produzione, 27,2 milioni di richieste in meno di due ore. Anche senza Cloudflare, con pagine da 8,2 KB in brotli la stessa porta ne spedisce circa 15.300 al secondo.
Home, al crescere delle connessioni
Stessa prova con Nginx, con 10, 50 e 200 connessioni contemporanee, in gzip e in brotli: richieste al secondo e tempo medio di risposta.
| Connessioni insieme | Compressione | WordPress senza cache | WordPress con cache FastCGI | Presstatic | |
|---|---|---|---|---|---|
| 10 | gzip | 22 rich/s439 ms | 1.597 rich/s6,3 ms | 91.982 rich/s0,09 ms | potenzialmente illimitateanche con 10 connessioni la pagina arriva dalla cache di Cloudflare |
| 10 | brotli | 22 rich/s434 ms | 548 rich/s18 ms | 96.390 rich/s0,09 ms | potenzialmente illimitateanche con 10 connessioni la pagina arriva dalla cache di Cloudflare |
| 50 | gzip | 22 rich/s1,0 s, 181 timeout | 1.595 rich/s31 ms | 98.700 rich/s0,4 ms | potenzialmente illimitateil tuo server non vede queste richieste |
| 50 | brotli | 22 rich/s1,1 s, 175 timeout | 394 rich/s126 ms | 98.785 rich/s0,4 ms | potenzialmente illimitateil tuo server non vede queste richieste |
| 200 | gzip | 23 rich/s140 timeout | 1.489 rich/s133 ms | 89.304 rich/s1,8 ms (99%: 3,2 ms) | potenzialmente illimitatepiù connessioni non pesano sul tuo server: il limite è la rete di Cloudflare |
| 200 | brotli | 22 rich/s136 timeout | 552 rich/s354 ms | 89.136 rich/s1,7 ms (99%: 3,2 ms) | potenzialmente illimitatepiù connessioni non pesano sul tuo server: il limite è la rete di Cloudflare |
WordPress senza cache si ferma a circa 22 richieste al secondo per core, con qualsiasi web server e qualsiasi compressione: il limite è PHP. Con Apache, grazie alla configurazione inclusa che invia le pagine già compresse, Presstatic serve tra 24.000 e 31.000 richieste al secondo, ma con 200 connessioni i tempi arrivano a 1,6 s nel caso peggiore: per le pagine statiche Nginx è circa 4 volte più veloce ed è il server consigliato. Con Cloudflare davanti, nessuna di queste richieste arriva al server.
Meno parti esposte, e quelle che restano sono protette.
Il sito dei lettori è fatto solo di file: non c'è codice da attaccare. Il pannello è stato sottoposto a revisioni di sicurezza, e ogni correzione ha un test automatico.
Password con Argon2
Il metodo raccomandato oggi, con limiti ai tentativi per indirizzo e per account.
Pannello separato
Su un suo indirizzo, protetto dalle richieste inviate da altri siti.
Ruoli precisi
Gli autori non pubblicano da soli e il loro testo viene ripulito da ogni codice.
Immagini ricodificate
Ogni foto viene riscritta da zero: niente file camuffati, niente metadati.
Aggiornamenti firmati
Firma Ed25519 legata alla versione: niente versioni false, niente ritorni indietro.
Installazione protetta
Un codice che conosce solo chi ha accesso al server; database leggibile solo dal servizio.
File manager confinato
Lavora solo nelle cartelle del sito e dei temi, e scarta dagli ZIP i percorsi pericolosi.
Origine protetta
Con uno script incluso, il sito pubblico accetta solo il traffico che passa da Cloudflare.
Verifica in due passaggi
Codice dall'app sul telefono e codici di recupero. Obbligatoria per redattori e amministratori, se lo decidi tu.
Script sotto controllo
Ogni pagina del pannello porta un lasciapassare nuovo: uno script infilato da fuori non partirebbe.
Limiti anti-abuso
Accessi, email di recupero e iscrizioni hanno un tetto per indirizzo e per account: niente raffiche.
Pannello nascosto
Commenti e newsletter passano dal sito: il pannello si chiude dietro Cloudflare e l'IP del server non si vede.
Dal dominio al primo articolo, in sei passaggi.
Lo script fa il lavoro sul server, tutto il resto lo scegli dal browser. Nessun database da creare, nessun file di configurazione da modificare a mano.
-
Cloudflare o il tuo registrar
Crea tre record A
Punta il dominio, www e admin all'indirizzo IP del server. Su Cloudflare lascia per ora la nuvola grigia, «Solo DNS»: durante l'installazione Let's Encrypt deve raggiungere direttamente il server per rilasciare il certificato HTTPS.
-
Terminale
Accedi al server
Con SSH dal tuo computer, oppure con la console nel browser che trovi nel pannello del provider, come Hetzner, OVH, Aruba o DigitalOcean.
-
Terminale
Lancia il comando
Metti il tuo dominio e la tua email. Lo script scarica Presstatic e ne verifica la firma, controlla il DNS, installa Nginx e il servizio e ottiene il certificato HTTPS gratuito.
-
Browser
Apri il link che compare alla fine
Contiene un codice che conosce solo chi ha accesso al server: nessun altro può configurare il sito al posto tuo.
-
Browser
Completa l'installazione guidata
Nome e indirizzo del sito, account amministratore, tema, colore, logo e sezioni; se vuoi, anche Cloudflare e le chiavi dell'intelligenza artificiale. Premi «Installa e metti online il sito»: Presstatic genera le pagine e ti porta nel pannello, già collegato.
-
Cloudflare e terminale
Accendi la nuvola arancione
Su www e admin, con SSL/TLS in modalità «Full (strict)». Poi un ultimo comando fa accettare al server solo il traffico che passa da Cloudflare: chi scopre il suo IP non può aggirarla.
Sei pronto.
Il sito è online e sei già dentro al pannello: puoi scrivere il primo articolo.
- Attiva la verifica in due passaggi, in Utenti
- Collega Google e IndexNow in Indicizzazione rapida
- Le versioni nuove arrivano dal pannello: «Aggiorna ora»
Provalo sul tuo giornale.
Presstatic è gratis e open source, con licenza GPL-3.0. Codice, guida d'installazione e versioni firmate sono su GitHub: un comando, e il tuo sito è online.
github.com/Presstatic/Presstatic