| package migrations
|
|
|
| import (
|
| "os"
|
|
|
| "github.com/pocketbase/pocketbase/core"
|
| m "github.com/pocketbase/pocketbase/migrations"
|
| )
|
|
|
| const (
|
| TempAdminEmail = "_@b.b"
|
| )
|
|
|
| func init() {
|
| m.Register(func(app core.App) error {
|
|
|
| settings := app.Settings()
|
| settings.Meta.AppName = "Beszel"
|
| settings.Meta.HideControls = true
|
| settings.Logs.MinLevel = 4
|
| if err := app.Save(settings); err != nil {
|
| return err
|
| }
|
|
|
|
|
| superuserCollection, _ := app.FindCollectionByNameOrId(core.CollectionNameSuperusers)
|
| superUser := core.NewRecord(superuserCollection)
|
|
|
|
|
| email, _ := GetEnv("USER_EMAIL")
|
| password, _ := GetEnv("USER_PASSWORD")
|
| didProvideUserDetails := email != "" && password != ""
|
|
|
|
|
| if email == "" {
|
| email = TempAdminEmail
|
| }
|
| superUser.SetEmail(email)
|
|
|
|
|
| if password != "" {
|
| superUser.SetPassword(password)
|
| } else {
|
| superUser.SetRandomPassword()
|
| }
|
|
|
|
|
| if didProvideUserDetails {
|
| usersCollection, _ := app.FindCollectionByNameOrId("users")
|
| user := core.NewRecord(usersCollection)
|
| user.SetEmail(email)
|
| user.SetPassword(password)
|
| user.SetVerified(true)
|
| err := app.Save(user)
|
| if err != nil {
|
| return err
|
| }
|
| }
|
|
|
| return app.Save(superUser)
|
| }, nil)
|
| }
|
|
|
|
|
| func GetEnv(key string) (value string, exists bool) {
|
| if value, exists = os.LookupEnv("BESZEL_HUB_" + key); exists {
|
| return value, exists
|
| }
|
|
|
| return os.LookupEnv(key)
|
| }
|
|
|