Serverpod constructor
Serverpod(
- List<
String> args, - SerializationManagerServer serializationManager,
- EndpointDispatch endpoints, {
- AuthenticationHandler? authenticationHandler,
- HealthCheckHandler? healthCheckHandler,
- Map<
String, dynamic> httpResponseHeaders = _defaultHttpResponseHeaders, - Map<
String, dynamic> httpOptionsResponseHeaders = _defaultHttpOptionsResponseHeaders,
Creates a new Serverpod.
Implementation
Serverpod(
List<String> args,
this.serializationManager,
this.endpoints, {
this.authenticationHandler,
this.healthCheckHandler,
this.httpResponseHeaders = _defaultHttpResponseHeaders,
this.httpOptionsResponseHeaders = _defaultHttpOptionsResponseHeaders,
}) {
_internalSerializationManager = internal.Protocol();
// Create a temporary log manager with default settings, until we have
// loaded settings from the database.
_logManager = LogManager(_defaultRuntimeSettings);
// Read command line arguments.
commandLineArgs = CommandLineArgs(args);
_runMode = commandLineArgs.runMode;
serverId = commandLineArgs.serverId;
// Load passwords
_passwords = PasswordManager(runMode: runMode).loadPasswords() ?? {};
if (_passwords.isEmpty) {
stderr.writeln('Failed to load passwords. Serverpod cannot not start.');
exit(1);
}
// Load config
config = ServerpodConfig(_runMode, serverId, _passwords);
// Setup database
databaseConfig = DatabasePoolManager(
serializationManager,
config.database,
);
// Setup Redis
if (config.redis.enabled) {
redisController = RedisController(
host: config.redis.host,
port: config.redis.port,
user: config.redis.user,
password: config.redis.password,
);
}
_caches = Caches(serializationManager, config, serverId, redisController);
server = Server(
serverpod: this,
serverId: serverId,
port: config.apiServer.port,
serializationManager: serializationManager,
databaseConfig: databaseConfig,
passwords: _passwords,
runMode: _runMode,
caches: caches,
authenticationHandler:
authenticationHandler ?? defaultAuthenticationHandler,
whitelistedExternalCalls: whitelistedExternalCalls,
endpoints: endpoints,
httpResponseHeaders: httpResponseHeaders,
httpOptionsResponseHeaders: httpOptionsResponseHeaders,
);
endpoints.initializeEndpoints(server);
// Setup future calls
_futureCallManager = FutureCallManager(
server,
serializationManager,
_onCompletedFutureCalls,
);
_instance = this;
// Setup health check manager
_healthCheckManager = HealthCheckManager(
this,
_onCompletedHealthChecks,
);
// Create web server.
webServer = WebServer(serverpod: this);
// Print version and runtime arguments.
stdout.writeln(
'SERVERPOD version: $serverpodVersion, dart: ${Platform.version}, time: ${DateTime.now().toUtc()}',
);
stdout.writeln(commandLineArgs.toString());
logVerbose(config.toString());
}