1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package main
- import (
- "github.com/joho/godotenv"
- "github.com/kelseyhightower/envconfig"
- "github.com/langgenius/dify-plugin-daemon/internal/server"
- "github.com/langgenius/dify-plugin-daemon/internal/types/app"
- "github.com/langgenius/dify-plugin-daemon/internal/utils/log"
- "golang.org/x/exp/constraints"
- )
- func main() {
- var config app.Config
- err := godotenv.Load()
- if err != nil {
- log.Panic("Error loading .env file")
- }
- err = envconfig.Process("", &config)
- if err != nil {
- log.Panic("Error processing environment variables")
- }
- setDefault(&config)
- if err := config.Validate(); err != nil {
- log.Panic("Invalid configuration: %s", err.Error())
- }
- (&server.App{}).Run(&config)
- }
- func setDefault(config *app.Config) {
- setDefaultInt(&config.ServerPort, 5002)
- setDefaultInt(&config.RoutinePoolSize, 1000)
- setDefaultInt(&config.LifetimeCollectionGCInterval, 60)
- setDefaultInt(&config.LifetimeCollectionHeartbeatInterval, 5)
- setDefaultInt(&config.LifetimeStateGCInterval, 300)
- setDefaultInt(&config.DifyInvocationConnectionIdleTimeout, 120)
- setDefaultInt(&config.PluginRemoteInstallServerEventLoopNums, 8)
- setDefaultInt(&config.PluginRemoteInstallingMaxConn, 128)
- setDefaultInt(&config.MaxPluginPackageSize, 52428800)
- setDefaultInt(&config.MaxAWSLambdaTransactionTimeout, 150)
- setDefaultInt(&config.PluginMaxExecutionTimeout, 240)
- setDefaultInt(&config.PluginMediaCacheSize, 1024)
- setDefaultBool(&config.PluginRemoteInstallingEnabled, true)
- setDefaultBool(&config.PluginEndpointEnabled, true)
- setDefaultString(&config.DBSslMode, "disable")
- setDefaultString(&config.PluginMediaCachePath, "/var/dify-plugin-daemon/media-cache")
- setDefaultString(&config.ProcessCachingPath, "/var/dify-plugin-daemon/subprocesses")
- }
- func setDefaultInt[T constraints.Integer](value *T, defaultValue T) {
- if *value == 0 {
- *value = defaultValue
- }
- }
- func setDefaultString(value *string, defaultValue string) {
- if *value == "" {
- *value = defaultValue
- }
- }
- func setDefaultBool(value *bool, defaultValue bool) {
- if !*value {
- *value = defaultValue
- }
- }
|