52 lines
966 B
Go
52 lines
966 B
Go
package entrypoint
|
|
|
|
import (
|
|
"errors"
|
|
"net/url"
|
|
"os"
|
|
|
|
"goauthentik.io/internal/common"
|
|
"goauthentik.io/internal/config"
|
|
"goauthentik.io/internal/debug"
|
|
"goauthentik.io/internal/outpost/ak"
|
|
)
|
|
|
|
func OutpostMain(appName string, server func(ac *ak.APIController) ak.Outpost) error {
|
|
debug.EnableDebugServer(appName)
|
|
akURL := config.Get().AuthentikHost
|
|
if akURL == "" {
|
|
return errors.New("environment variable `AUTHENTIK_HOST` not set")
|
|
}
|
|
akToken := config.Get().AuthentikToken
|
|
if akToken == "" {
|
|
return errors.New("environment variable `AUTHENTIK_TOKEN` not set")
|
|
}
|
|
|
|
akURLActual, err := url.Parse(akURL)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ex := common.Init()
|
|
defer common.Defer()
|
|
|
|
ac := ak.NewAPIController(*akURLActual, akToken)
|
|
if ac == nil {
|
|
os.Exit(1)
|
|
}
|
|
defer ac.Shutdown()
|
|
|
|
ac.Server = server(ac)
|
|
|
|
err = ac.Start()
|
|
if err != nil {
|
|
ac.Log().WithError(err).Panic("Failed to run server")
|
|
return err
|
|
}
|
|
|
|
for {
|
|
<-ex
|
|
return nil
|
|
}
|
|
}
|