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
 | |
| 	}
 | |
| }
 | 
