You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
website/main.go

71 lines
1.4 KiB
Go

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