The server functions in this package are configured through this function.
server_config(
dir = ".",
host = getOption("servr.host", "127.0.0.1"),
port,
browser,
daemon,
interval = getOption("servr.interval", 1),
baseurl = "",
initpath = "",
hosturl = identity,
auth = getOption("servr.auth"),
verbose = TRUE
)
A list of configuration information of the form list(host,
port, start_server = function(app) {}, ...)
.
The root directory to serve.
A string that is a valid IPv4 address that is owned by this
server, or "0.0.0.0"
to listen on all IP addresses.
The TCP port number. If it is not explicitly set, the default
value will be looked up in this order: First, the command line argument of
the form -pNNNN
(N is a digit from 0 to 9). If it was passed to R
when R was started, NNNN
will be used as the port number. Second,
the environment variable R_SERVR_PORT
. Third, the global option
servr.port
(e.g., options(servr.port = 4322)
). If none of
these command-line arguments, variables, or options were set, the default
port will be 4321
. If this port is not available, a random available
port will be used.
Whether to launch the default web browser. By default, it is
TRUE
if the R session is interactive()
, or when a
command line argument -b
was passed to R (see
commandArgs()
). N.B. the RStudio viewer is used as the web
browser if available.
Whether to launch a daemonized server (the server does not
block the current R session) or a blocking server. By default, it is the
global option getOption('servr.daemon')
(e.g., you can set
options(servr.daemon = TRUE)
); if this option was not set,
daemon = TRUE
if a command line argument -d
was passed to R
(through Rscript
), or the server is running in an interactive R
session. Note, however, that even though the server does not block the
current R session, it is running in the same single-threaded process.
Therefore, if a request is made from this same session, the client and
server will block each other. If this is your use case, a better
solution is to use a package such as callr
to run a servr
in a separate process, e.g, rx <- callr::r_bg(function()
servr::httd(daemon = FALSE)); do_stuff(); rx$kill()
(the
do_stuff()
function may want to wait a couple of seconds before
making requests, to allow the server time to start).
The time interval used to check if an HTML page needs to be rebuilt (by default, it is checked every second).
The base URL (the full URL will be
http://host:port/baseurl
).
The initial path in the URL (e.g. you can open a specific HTML file initially).
A function that takes the host address and returns a character
string to be used in the URL, e.g., function(host) { if (host ==
'127.0.0.1') 'localhost' else host}
to convert 127.0.0.1
to
localhost
in the URL.
A list of the form list(scheme, creds)
containing the
authentication scheme and credentials. See
https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication for
more info. Please note that this argument is by no means intended
for serious HTTP applications and there is no warranty on security.
You should use other dedicated software packages or services if security is
important. You have been warned.
Whether to print messages when launching the server.
if (FALSE) { # interactive()
# an example of authentication
servr::httd(auth = list(scheme = "Basic", creds = servr::auth_basic("john", "pa$s!")))
}
Run the code above in your browser using DataLab