NAME¶
pintod - Web interface to a Pinto repository
VERSION¶
version 0.097
SYNOPSIS¶
pintod --root=/path/to/repository [--auth key=value] [--port=N]
DESCRIPTION¶
"pintod" provides a web API to a Pinto repository. Clients (like
pinto) can use this API to manage and inspect the repository. In addition,
"pintod" serves up the distributions within the repository, so you
can use it as the backend for cpan or cpanm.
Before running "pintod" you must first create a Pinto repository. For
example:
pinto --root=/path/to/repository init
See pinto for more information about creating a reposiotry.
ARGUMENTS¶
- --root PATH
- -r PATH
- The path to the root directory of the Pinto repository you wish to serve.
Alternatively, you may set the "PINTO_REPOSITORY_ROOT"
environment variable.
OPTIONS¶
- --auth KEY=VALUE
- Sets an option for the authentication scheme (default is no
authentication). Each time this is used, a key=value pair must follow; one
of them must be 'backend', which should correspond to a class in the
Authen::Simple namespace. The remaining options will be passed as-is to
the authentication backend.
See "USING BASIC HTTP AUTHENTICATION" for more guidance on
enabling authenticaion with minimal fuss, or see "USING OTHER
AUTHENTICATION SCHEMES" for more complex options.
- --port INTEGER
- -p INTEGER
- Specifies the port number that the server will listen on. The default is
3111. If you specify a different port, all clients will also have
to specify that port. So you probably don't want to change the port unless
you have a very good reason.
- other options
- All other options supported by plackup are supported too, such as
"--server", "--daemonize", "--access-log",
"--error-log" etc. These will be passed to Plack::Runner. By
default, "pintod" uses on the Starman for the server backend. Be
aware that not all servers support the same options.
USING BASIC HTTP AUTHENTICATION¶
"pintod" ships with Authen::Simple::Passwd, so the easiest way to run
the server with basic HTTP authentication is to create a password file using
the "htpasswd" utility:
htpasswd -c /path/to/htpasswd USER
You will be prompted to enter the password for "USER" twice. Then
repeat that command
without the -c option for each additional user. You
may want to put the
htpasswd file inside the top of your repository.
Then launch pintod like this:
pintod --root path/to/repository --auth backend=Passwd --auth path=path/to/htpasswd
If you already have an
htpasswd file somewhere, you may just point to it
directly, or create a symlink. In any case, the
htpasswd file needs to
be readable by the user that will be running "pintod".
USING OTHER AUTHENTICATION SCHEMES¶
If you wish to use a different authenticaion scheme, then you'll first need to
install the appropriate Authen::Simple backend module. Then configure pintod
accordingly. For example, this would be a valid configuration for Kerberos:
--auth backend=Kerberos --auth realm=REALM.YOUR_COMPANY.COM
and this is how the authentication backend will be constructed:
my $auth = Authen::Simple::Kerberos->new(
realm => 'REALM.YOUR_COMPANY.COM'
);
DEPLOYMENT¶
"pintod" is PSGI compatible, running under Plack::Runner by default.
It will use whatever backend you specify on the command line or have
configured in your environment (defaults to Starman).
If you wish to add your own middleware and/or customize the backend in other
ways, you can use Pinto::Server in a custom
.psgi script like this:
# my-pintod.psgi
my %opts = (...);
my $server = Pinto::Server->new(%opts);
my $app = $server->to_app;
# wrap $app with middlewares here and/or
# insert code customized for your backend
# which operates on the $app
Then you may directly launch
my-pintod.psgi using plackup.
SEE ALSO¶
pinto to create and manage a Pinto repository.
Pinto::Manual for general information on using Pinto.
Stratopan <
http://stratopan.com> for hosting your Pinto repository in the
cloud.
AUTHOR¶
Jeffrey Ryan Thalhammer <jeff@stratopan.com>
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2013 by Jeffrey Ryan Thalhammer.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.