I have a Dancer2 application that I'd like to distribute. I have a couple of questions about the process that may be more related to ExtUtils::MakeMaker than to Dancer, but I figured I'd ask here first since deployment of web applications seems a little different from installing regular modules. 1. Typically when you install a Perl package with perl Makefile.PL && make && make install modules goes somewhere like /usr/local/lib/perl5/, binaries go somewhere like /usr/local/bin/, documentation goes somewhere else, and so on. I don't want my application fragmented like that (and I don't think it would even work if it were); when users run `make install` I want everything from my MANIFEST to simply be copied into the install directory as-is. For example, I want to end up with /usr/local/myapp/bin/ /usr/local/myapp/lib/ /usr/local/myapp/lib/myapp.pm /usr/local/myapp/public/ ... I assume this is how most Dancer/Dancer2 apps would have to be installed to work properly...how can I do this? I tried perl Makefile.PL INSTALL_BASE=/usr/local/myapp/ but that puts myapp.pm in /usr/local/myapp/lib/perl5/ and doesn't copy any of the other files or directories I want, like public/. 2. My app includes an index page containing links to other pages on the same server, e.g. <a href="http://host.example.com/foo">foo</a> This page is served with send_file, no templates involved. So far I have simply hard-coded the server name into the file, but that won't work when somebody tries to install it on another server. I thought I could use the PL_FILES attribute to WriteMakefile() to run a script that fills in the correct host name during the build process. Would this be a reasonable approach?