Bernat Casero — computer engineer portfolio header artwork

fvBlog

fvBlog (Fast Visual Blog) és una plataforma de blogs gratuïta i de codi obert dissenyada per a la velocitat i l'impacte visual. PHP renderitzat al servidor amb HTMX i Alpine.js manté les càrregues instantànies en allotjament compartit econòmic, sense necessitat de Node.js al servidor.

Gratuït i de codi obert · GPL-3.0 · PHP 8.1+ · MySQL o MariaDB

Per què fvBlog i no un CMS pesant

  • PHP renderitzat al servidor amb caché de pàgines i fragments: als visitants se'ls serveix HTML pràcticament estàtic, amb ETags forts i respostes 304 Not Modified instantànies.
  • Sense runtime de Node.js, sense pas de compilació i sense consultes pesades a cada petició: tota la plataforma funciona còmodament en un allotjament compartit econòmic, amb menys de 16 MB per petició.
  • Tot és teu: contingut, temes i connectors viuen a les teves carpetes, amb codi font GPL-3.0, base de dades exportable i cap dependència de proveïdor.

Funcions

  • Ultra lleuger i ràpid: PHP renderitzat al servidor, dependències mínimes i caché de pàgines i fragments per als visitants amb HTML gzip, ETags forts i respostes 304 Not Modified instantànies.
  • Pensat per a allotjament econòmic: PHP 8.1 – 8.5, Apache (.htaccess) o Nginx i MySQL/MariaDB en qualsevol allotjament compartit, VPS o contenidor estàndard.
  • Alt impacte visual amb temes instal·lables: plantilles Latte aïllades, mode clar/fosc, blocs modulars (capçalera, navegació, portada, contingut, barra lateral, peu i crèdits), galeria de temes, previsualitzacions i quatre dissenys inclosos.
  • Front-end reactiu amb HTMX: scroll infinit, cerca instantània i filtre per etiquetes sense recarregar la pàgina.
  • Editor visual d'històries flexible: edició WYSIWYG amb sanejament segur de l'HTML, commutador de codi en brut i espai de treball a pantalla completa a l'escriptori.
  • Biblioteca multimèdia amb pujades optimitzades: càrrega de diversos fitxers, importació per URL protegida contra SSRF, cerca instantània, peus de foto i conversió automàtica a WebP amb derivats responsius.
  • Configuració ordenada al panell: identitat del lloc, format d'URL de les històries, valors per defecte de SEO i OpenGraph, directives personalitzades de robots.txt, mode de depuració, canvi d'entorn i purga de caché amb un clic.
  • Seguretat sòlida: defenses OWASP Top 10, rols d'administrador i col·laborador, tokens CSRF a les peticions HTMX, sessions segures i escàner automàtic de temes.
  • Sistema de connectors extensible: hooks d'acció i filtre per a analítica, ginys i autenticació personalitzada com OAuth amb Google, Microsoft o Apple.
  • API de publicació headless: endpoints REST autenticats per token per a la publicació automatitzada i multiplataforma d'històries.
  • Multilingüe per disseny: el lloc públic i el panell d'administració admeten idiomes independents, i les històries, etiquetes, menús de navegació i cadenes del sistema es poden traduir.
  • Disseny responsiu mobile-first: el blog públic i tot el panell d'administració estan pensats per a mòbils, tauletes i escriptoris.
  • Assistent d'instal·lació inicial i actualitzacions amb un clic: la configuració de 4 passos comprova l'amfitrió, prova la base de dades, crea l'administrador i bloqueja l'instal·lador, mentre les migracions versionades actualitzen l'esquema in situ.

Tecnologies

CapaFunció
PHP 8.1 – 8.5Intèrpret del backend, verificat a la CI en cada versió suportada
Flight PHPMicroframework per a l'encaminament i la injecció de dependències
HTMXScroll infinit, cerca instantània i intercanvis parcials de pàgina sense SPA
Alpine.jsEstat reactiu lleuger per a menús, canvi de tema i finestres modals
MySQL / MariaDBEmmagatzematge relacional mitjançant sentències preparades de PDO
Apache o NginxReescriptura estàndard amb .htaccess o un bloc de servidor Nginx inclòs

Instal·lació

Prova'l en local amb Docker

  1. Descarrega la versió de fvBlog i descomprimeix-la en una carpeta de treball
  2. Copia src/config/config.example.php a content/config.php
  3. Aixeca l'entorn amb docker compose up -d
  4. Obre https://localhost:8889 i completa l'assistent de configuració
cp src/config/config.example.php content/config.php docker compose up -d

L'entorn Docker inclou PHP 8.1 amb Apache i MySQL 8.0; qualsevol versió suportada de la 8.1 a la 8.5 és a un argument de compilació.

Instal·lació en allotjament compartit

  1. Puja el codi de fvblog i fes content/ escribible (chmod -R 775 content)
  2. Apunta el document root a src/public i activa mod_rewrite (Apache) o utilitza el bloc Nginx inclòs
  3. Obre el lloc: sense content/config.php, fvBlog redirigeix automàticament a /install
  4. Completa l'assistent de 4 passos (entorn, base de dades, administrador i aprovisionament) i comença a publicar

L'assistent comprova els requisits ell mateix i les migracions d'esquema s'apliquen automàticament després de cada actualització.

Requisits

  • PHP 8.1 a 8.5 amb pdo_mysql, mbstring, curl, gd o imagick, openssl, json i fileinfo
  • MySQL 5.7+ o MariaDB 10.3+ (recomanat MySQL 8.0)
  • Apache 2.4+ amb mod_rewrite, o Nginx 1.18+
  • 256 MB de RAM disponible i uns 100 MB de disc per a la instal·lació base

Preguntes freqüents sobre fvBlog

Què és fvBlog?

fvBlog (Fast Visual Blog) és una plataforma de blogs gratuïta i de codi obert escrita en PHP. Combina pàgines renderitzades al servidor, una caché interna i la interactivitat d'HTMX per mantenir-se ràpida en allotjament compartit econòmic, amb un editor visual modern i un sistema de temes instal·lables.

fvBlog és gratuït?

Sí. fvBlog es publica sota la llicència GPL-3.0, així que pots descarregar-lo, autoallotjar-lo, modificar-lo i fer-lo servir comercialment sense cap cost. Només pagues el teu allotjament i domini.

Cal Node.js o un pas de compilació per fer-lo funcionar?

No. fvBlog només necessita PHP i MySQL/MariaDB. Els recursos de front-end ja venen compilats i es serveixen directament, així que no cal Node.js, ni bundler, ni gestor de paquets al servidor: només cal pujar els fitxers.

Puc publicar sense tocar codi?

Sí. El panell d'administració cobreix les històries amb un editor visual, etiquetes, mitjans, navegació, usuaris, temes i configuració del lloc. L'edició d'HTML en brut està disponible per a dissenys avançats, i cada instal·lació autoallotjada té assistent inicial i actualitzacions amb un clic.

Puc personalitzar el disseny?

Els temes són paquets de plantilles Latte aïllats amb un manifest theme.json, tokens de color, CSS personalitzat i JS opcional. Pots pujar un zip, duplicar un tema, crear-ne un a partir del disseny inclòs, previsualitzar-lo i canviar el tema actiu des de la galeria a /admin/themes. Quatre temes venen de sèrie.

fvBlog admet diversos idiomes?

Sí. El lloc públic i el panell d'administració tenen idiomes independents, i les històries, etiquetes, menús de navegació i cadenes del sistema es poden traduir per separat. Els connectors poden afegir traductors automàtics com Google Translate o DeepL.

Puc publicar des de scripts o altres aplicacions?

Sí. L'API REST headless fa servir autenticació per token amb limitació de peticions, així que pots crear i gestionar històries des de scripts d'automatització o aplicacions externes sense obrir el panell.