vppn/hub/app.go
2025-03-10 16:11:40 +01:00

53 lines
839 B
Go

package hub
import (
"embed"
"html/template"
"net/http"
"path/filepath"
"vppn/hub/api"
"git.crumpington.com/lib/go/webutil"
)
//go:embed static
var staticFS embed.FS
//go:embed templates
var templateFS embed.FS
type Config struct {
RootDir string
ListenAddr string
Insecure bool
}
type App struct {
api *api.API
mux *http.ServeMux
tmpl map[string]*template.Template
insecure bool
}
func NewApp(conf Config) (*App, error) {
api, err := api.New(filepath.Join(conf.RootDir, "db.sqlite3"))
if err != nil {
return nil, err
}
app := &App{
api: api,
mux: http.NewServeMux(),
tmpl: webutil.ParseTemplateSet(templateFuncs, templateFS),
insecure: conf.Insecure,
}
app.registerRoutes()
return app, nil
}
var templateFuncs = template.FuncMap{
"ipToString": ipBytesTostring,
}