package main import ( "log" "os" "path/filepath" "strings" "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/apis" "github.com/pocketbase/pocketbase/core" ) func defaultPublicDir() string { if strings.HasPrefix(os.Args[0], os.TempDir()) { // most likely ran with go run return "./pb_public" } return filepath.Join(os.Args[0], "../pb_public") } func main() { app := pocketbase.New() var publicDirFlag string // add "--publicDir" option flag app.RootCmd.PersistentFlags().StringVar( &publicDirFlag, "publicDir", defaultPublicDir(), "the directory to serve static files", ) app.OnBeforeServe().Add(func(e *core.ServeEvent) error { // serves static files from the provided public dir (if exists) e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS(publicDirFlag), false)) return nil }) if err := app.Start(); err != nil { log.Fatal(err) } }