|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"net/http"
|
|
|
|
"os"
|
|
|
|
"strconv"
|
|
|
|
|
|
|
|
"github.com/labstack/echo/v4"
|
|
|
|
"github.com/labstack/echo/v4/middleware"
|
|
|
|
"github.com/phc-dm/server-poisson/utils"
|
|
|
|
)
|
|
|
|
|
|
|
|
type object map[string]interface{}
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
|
|
|
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
|
|
|
|
|
|
|
log.Printf("MODE = %v (default: production)", os.Getenv("MODE"))
|
|
|
|
log.Printf("PORT = %v (default: 8000)", os.Getenv("PORT"))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
// Echo instance
|
|
|
|
e := echo.New()
|
|
|
|
|
|
|
|
// Middleware
|
|
|
|
e.Use(middleware.Logger())
|
|
|
|
e.Use(middleware.Recover())
|
|
|
|
|
|
|
|
// Templates & Renderer
|
|
|
|
e.Renderer = utils.NewTemplateRenderer("base.html")
|
|
|
|
|
|
|
|
// Static assets
|
|
|
|
e.Static("/assets", "./assets")
|
|
|
|
|
|
|
|
// Blog from "content-poisson"
|
|
|
|
blogRoute := e.Group("/blog", middleware.Static("./blog"))
|
|
|
|
{
|
|
|
|
blogRoute.GET("", func(c echo.Context) error {
|
|
|
|
return c.Redirect(http.StatusPermanentRedirect, "/blog/")
|
|
|
|
})
|
|
|
|
blogRoute.GET("/", func(c echo.Context) error {
|
|
|
|
return c.File("./blog/index.html")
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// Routes
|
|
|
|
e.GET("/", func(c echo.Context) error {
|
|
|
|
return c.Render(http.StatusOK, "home.html", object{})
|
|
|
|
})
|
|
|
|
e.GET("/utenti", func(c echo.Context) error {
|
|
|
|
return c.Render(http.StatusOK, "utenti.html", object{})
|
|
|
|
})
|
|
|
|
e.GET("/login", func(c echo.Context) error {
|
|
|
|
return c.Render(http.StatusOK, "login.html", object{})
|
|
|
|
})
|
|
|
|
|
|
|
|
port, ok := strconv.Atoi(os.Getenv("PORT"))
|
|
|
|
if ok != nil {
|
|
|
|
port = 8000
|
|
|
|
}
|
|
|
|
|
|
|
|
log.Print(port)
|
|
|
|
|
|
|
|
// Start server
|
|
|
|
e.Logger.Fatal(e.Start(":" + strconv.Itoa(port)))
|
|
|
|
}
|