Perl HTML JavaScript CSS Perl 6 Shell
oalders Merge pull request #2087 from metacpan/haarg/kiwi-irc
use Kiwi IRC rather than mibbit or freenode webchat
Latest commit 8f123f5 Jul 19, 2018
Failed to load latest commit information.
.github remove issue template Jan 29, 2018
bin enable perltidy --weld-nested-containers Jan 29, 2018
git Use carton's local::lib for pre-commit hook Jun 5, 2014
lib use Kiwi IRC rather than mibbit or freenode webchat Jun 25, 2018
root Add a link to our s.c.o. blog post Jun 28, 2018
t Merge pull request #2068 from metacpan/haarg/gravatar-only Jun 12, 2018
.dockerignore Dockerize MetaCPAN web frontend Jun 29, 2017
.editorconfig Keep indentation consistent in travis yml Oct 15, 2014
.gitignore remove some unneeded +x flags Nov 30, 2017
.mailmap add mailmap Nov 19, 2017
.perlcriticrc Allow explicit undef. May 12, 2017
.perltidyrc enable perltidy --weld-nested-containers Jan 29, 2018
.tidyallrc Ignore file with Test::Vars chokes on. Jun 8, 2017
.travis.yml make sure AUTHOR_TESTING is 0 when installing prereqs on travis Jun 1, 2018
Dockerfile 💄 put `&&` at the start of RUN subcommands Jul 2, 2017
LICENSE License under same terms as Perl (GPL/Artistic) Jan 25, 2014 remove references and links, including tests May 30, 2018 add kritika badge Nov 18, 2017
app.psgi enable perltidy --weld-nested-containers Jan 29, 2018
cpanfile replace MooseX::Types with Type::Tiny Jun 3, 2018
cpanfile.snapshot regenerate cpanfile.snapshot Jun 3, 2018
log4perl.conf Move the daemon to logging using the local facility to keep these Nov 16, 2017
metacpan_web.conf list default l4p file in config file Dec 14, 2017
run-dev improvement for dev server Jun 25, 2018
static-app.psgi improvement for dev server Jun 25, 2018

Build Status Coverage Status Kritika Analysis Status


We strongly recommend using metacpan-developer, this will give you a virtual machine already configured and ready to start developing on.

$ vagrant ssh
$ cd $HOME/metacpan-web
$ sudo service starman_metacpan-web restart

You'll find some log files in var/logs.

Installing manually

If you prefer not to use the VM, the following commands will get you started: commands can be converted to:

$ carton install
$ ./bin/prove t
$ carton exec plackup -p 5001 -r

Local configuration changes

The backend defaults to Running a local API server is optional and not required to hack on the front-end. The address to the API user can be changed in the metacpan_web.conf file. Ideally you would create a new file called metacpan_web_local.conf that contains


which will be loaded on top of the existing config file.


On Win32 (and possibly also on other platforms) when using Perl < 5.12, the server started with plackup will generate warnings relating to date parsing. These are caused by Plack due to a bug in the gmtime implementation and can be removed by upgrading to Perl 5.12.