BlogEngine è un motore di blog scritto in Go, con un frontend semplice in HTML/CSS.
L’idea è avere qualcosa di leggero, facile da capire e modificare, senza mille dipendenze.
- Serve pagine blog scritte in Go
- Ha un frontend con due temi: chiaro e scuro
- C’è un pulsante per cambiare tema al volo
- Valida i dati inseriti nei form (es. per creare post)
- Salva tutto in un database SQLite (nessuna configurazione extra necessaria)
Il backend è scritto in Go usando librerie standard + alcune esterne:
html/template: per generare HTML dinamiconet/http: server web basestrconv,time: utility variechi: router leggero e modularevalidator: validazione dei datigorm: ORM per interagire con il databasemodernc.org/sqlite: driver SQLite che funziona senza CGO
⚠️ Per far funzionaremodernc.org/sqlite, è richiesto un compilatore C (gcc).
- HTML + CSS puro
- Due temi:
style.css(chiaro) edark.css(scuro) - Toggle del tema gestito da
theme-toggle.js
- Go 1.18 o superiore
- Compilatore C (
gcc)- Su Windows si consiglia MSYS2:
pacman -S mingw-w64-x86_64-gcc
- Su Windows si consiglia MSYS2:
Clona il progetto, installa le dipendenze e avvia il server:
git clone https://github.com/D13GOOOO/BlogEngine.git
cd BlogEngine
go mod tidy # per scaricare tutte le dipendenzeNel progetto è incluso un comando a riga di comando chiamato blogctl, che ti permette di gestire facilmente il server.
-
Avviare il server:
blogctl start
-
Spegnere il server:
blogctl shutdown
-
Riavviare il server:
blogctl restart
-
Cancellare il database
blogctl dbreset
-
Effettuare un backup del database
blogctl backup
Il comando blogctl start avvia il server in una nuova finestra del terminale su Windows e in background su Linux/macOS, mentre shutdown e restart fermano il server in esecuzione.
Se il comando blogctl non funziona correttamente, assicurati di avere Go installato correttamente, e che il file cli.go sia stato compilato come eseguibile. Se non è stato compilato, puoi farlo con:
go build cli.goIl comando blogctl sarà quindi disponibile come eseguibile nel tuo terminale.