NAME
WWW::Suffit::Server - The Suffit API web-server class
SYNOPSIS
WWW::Suffit::Server;
DESCRIPTION
This module provides API web-server functionality
OPTIONS
sub startup {
my $self = shift->SUPER::startup( OPTION_NAME => VALUE, ... );
# ...
}
List of allowed options (pairs of name-value):
all_features
all_features => 'on'
This option enables all of the init_* options, which are described bellow
Default: off
config_opts
config_opts => { ... }
This option sets WWW::Suffit::Plugin::ConfigGeneral plugin options
Default:
`noload => 1` if $self->configobj exists
`defaults => $self->config` if $self->config is not void
init_authdb
init_authdb => 'on'
This option enables AuthDB initialize
Default: off
init_api_routes
init_api_routes => 'on'
Enable Suffit API routes
Default: off
init_rsa_keys
init_rsa_keys => 'on'
This option enables RSA keys initialize
Default: off
syslog_opts
syslog_opts => { ... }
This option sets WWW::Suffit::Plugin::Syslog plugin options
Default:
`enable => 1` if the `Log` config directive is "syslog"
ATTRIBUTES
This class implements the following attributes
accepts
accepts => 0,
Maximum number of connections a worker is allowed to accept, before stopping gracefully and then getting replaced with a newly started worker, passed along to "max_accepts" in Mojo::IOLoop
Default: 10000
See "accepts" in Mojo::Server::Prefork
cache
The WWW::Suffit::Cache object
clients
clients => 0,
Maximum number of accepted connections this server is allowed to handle concurrently, before stopping to accept new incoming connections, passed along to "max_connections" in Mojo::IOLoop
Default: 1000
See "max_clients" in Mojo::Server::Daemon
configobj
The Config::General object or undef
acruxconfig
The Acrux::Config object or undef
datadir
datadir => '/var/lib/myapp',
The sharedstate data directory (data dir)
Default: /var/lib/<MONIKER>
debugmode
debugmode => 0,
If this attribute is enabled then this server is no daemonize performs
documentroot
documentroot => '/var/www/myapp',
Document root directory
Default: /var/www/<MONIKER>
gid
gid => 1000,
gid => getgrnam( 'anonymous' ),
This attribute pass GID to set the real group identifier and the effective group identifier for this process
homedir
homedir => '/usr/share/myapp',
The Project home directory
Default: /usr/share/<MONIKER>
logfile
logfile => '/var/log/myapp.log',
The log file
Default: /var/log/<MONIKER>.log
loglevel
loglevel => 'warn',
This attribute performs set the log level
Default: warn
max_history_size
max_history_size => 25,
Maximum number of logged messages to store in "history"
Default: 25
moniker
moniker => 'myapp',
Project name in lowercase notation, project nickname, moniker. This value often used as default filename for configuration files and the like
Default: decamelizing the application class
mysecret
mysecret => 'dgdfg',
Default secret string
Default: <DEFAULT_SECRET>
no_daemonize
no_daemonize => 1,
This attribute disables the daemonize process
Default: 0
pidfile
pidfile => '/var/run/myapp.pid',
The pid file
Default: /tmp/prefork.pid
See "pid_file" in Mojo::Server::Prefork
project_name
project_name => 'MyApp',
The project name. For example: MyApp
Default: current class name
private_key
private_key => '...',
Private RSA key
project_version
project_version => '0.01',
The project version. For example: 1.00
NOTE! This is required attribute!
public_key
public_key => '...',
Public RSA key
requests
requests => 0,
Maximum number of keep-alive requests per connection
Default: 100
See "max_requests" in Mojo::Server::Daemon
reload_sig
reload_sig => 'USR2',
reload_sig => 'HUP',
The signal name that will be used to receive reload commands from the system
Default: USR2
server_addr
server_addr => '*',
Main listener address (host)
Default: * (::0, 0:0:0:0)
server_port
server_port => 8080,
Main listener port
Default: 8080
server_url
server_url => 'http://127.0.0.1:8080',
Main real listener URL
See ListenAddr
and ListenPort
configuration directives
Default: http://127.0.0.1:8080
spare
spare => 0,
Temporarily spawn up to this number of additional workers if there is a need.
Default: 2
See "spare" in Mojo::Server::Prefork
tempdir
tempdir => '/tmp/myapp',
The temp directory
Default: /tmp/<MONIKER>
trustedproxies
List of trusted proxies
Default: none
uid
uid => 1000,
uid => getpwnam( 'anonymous' ),
This attribute pass UID to set the real user identifier and the effective user identifier for this process
workers
workers => 0,
Number of worker processes
Default: 4
See "workers" in Mojo::Server::Prefork
METHODS
This class inherits all methods from Mojolicious and implements the following new ones
listeners
This method returns server listeners as list of URLs
$prefork->listen( $app->listeners );
preforked_run
$app->preforked_run( COMMAND );
$app->preforked_run( COMMAND, ...OPTIONS... );
$app->preforked_run( COMMAND, { ...OPTIONS... } );
$app->preforked_run( 'start' );
$app->preforked_run( 'start', prerun => sub { ... } );
$app->preforked_run( 'stop' );
$app->preforked_run( 'restart', prerun => sub { ... } );
$app->preforked_run( 'status' );
$app->preforked_run( 'reload' );
This method runs your application using a command that is passed as the first argument
Options:
- prerun
-
prerun => sub { my ($app, $prefork) = @_; $prefork->on(finish => sub { # Finish my $this = shift; # Prefork object my $graceful = shift; $this->app->log->debug($graceful ? 'Graceful server shutdown' : 'Server shutdown' ); }); }
This option defines callback function that performs operations with prefork instance Mojo::Server::Prefork befor demonize and server running
raise
$app->raise("Mask %s", "val");
$app->raise("val");
Prints error message to STDERR and exit with errorlevel = 1
NOTE! For internal use only
reload
The reload hook
startup
Mojolicious application startup method
HELPERS
This class implements the following helpers
authdb
This is access method to the AuthDB object (state object)
jwt
This helper makes JWT object with RSA keys and returns it
token
This helper performs get of current token from HTTP Request headers
HISTORY
See Changes
file
TO DO
See TODO
file
SEE ALSO
Mojolicious, WWW::Suffit, WWW::Suffit::RSA, WWW::Suffit::JWT, WWW::Suffit::AuthDB
AUTHOR
Serż Minus (Sergey Lepenkov) https://www.serzik.com <abalama@cpan.org>
COPYRIGHT
Copyright (C) 1998-2024 D&D Corporation. All Rights Reserved
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See LICENSE
file and https://dev.perl.org/licenses/