Files
cmbuyer/admin/cmd/server/main.go
T

55 lines
1.0 KiB
Go
Raw Normal View History

package main
import (
"errors"
"log"
"net/http"
2026-08-04 14:57:40 +08:00
"cmbuyer/admin/internal/auth"
"cmbuyer/admin/internal/config"
"cmbuyer/admin/internal/server"
2026-08-04 16:33:22 +08:00
"cmbuyer/admin/internal/storage/sqlite"
"cmbuyer/admin/internal/tasks"
)
const listenAddress = ":8080"
func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}
func run() error {
2026-08-04 14:57:40 +08:00
configuration, err := config.LoadFromEnv()
if err != nil {
return err
}
2026-08-04 16:33:22 +08:00
database, err := sqlite.Open(configuration.DatabaseSource)
if err != nil {
return err
}
defer database.Close()
taskStore, err := tasks.NewSQLiteStore(database)
if err != nil {
return err
}
2026-08-04 14:57:40 +08:00
router, err := server.NewRouter(server.Options{
AdminUsername: configuration.AdminUsername,
AdminPasswordBcrypt: configuration.AdminPasswordBcrypt,
Sessions: auth.NewManager(configuration.SessionSecret, configuration.CookieSecure),
2026-08-04 16:33:22 +08:00
Tasks: taskStore,
2026-08-04 14:57:40 +08:00
})
if err != nil {
return err
}
err = http.ListenAndServe(listenAddress, router)
if errors.Is(err, http.ErrServerClosed) {
return nil
}
return err
}