Skip to content

D13GOOOO/BlogEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlogEngine

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.


✨ Cosa fa

  • 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)

🧠 Tecnologie usate

Backend (Go)

Il backend è scritto in Go usando librerie standard + alcune esterne:

  • html/template: per generare HTML dinamico
  • net/http: server web base
  • strconv, time: utility varie
  • chi: router leggero e modulare
  • validator: validazione dei dati
  • gorm: ORM per interagire con il database
  • modernc.org/sqlite: driver SQLite che funziona senza CGO

⚠️ Per far funzionare modernc.org/sqlite, è richiesto un compilatore C (gcc).


Frontend

  • HTML + CSS puro
  • Due temi: style.css (chiaro) e dark.css (scuro)
  • Toggle del tema gestito da theme-toggle.js

⚙️ Requisiti

  • Go 1.18 o superiore
  • Compilatore C (gcc)
    • Su Windows si consiglia MSYS2:
      pacman -S mingw-w64-x86_64-gcc

🚀 Come si usa

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 dipendenze

Avviare, spegnere e riavviare il server con blogctl

Nel progetto è incluso un comando a riga di comando chiamato blogctl, che ti permette di gestire facilmente il server.

  1. Avviare il server:

    blogctl start
  2. Spegnere il server:

    blogctl shutdown
  3. Riavviare il server:

    blogctl restart
  4. Cancellare il database

    blogctl dbreset
  5. 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.


🐞 Risoluzione dei problemi

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.go

Il comando blogctl sarà quindi disponibile come eseguibile nel tuo terminale.

About

Old times project having fun with friends

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •