The VNDB.org Source Code ------------------------ Requirements global requirements: Linux, or an OS that resembles Linux. Chances are VNDB won't run on Windows. PostgreSQL 9.3+ (don't try older versions or other SQL databases, it won't work) perl 5.22 recommended, 5.10+ may also work A webserver that works with TUWF (lighttpd and Apache are known to work) (perl 5.22 core modules are not listed.) General: Crypt::ScryptKDF Crypt::URandom DBD::Pg DBI Image::Magick JSON::XS Tie::IxHash util/vndb.pl: Algorithm::Diff::XS TUWF FCGI (optional, for running as a FastCGI script) PerlIO::gzip (optional, for output compression) util/multi.pl: APIDump: PerlIO::gzip Core: AnyEvent AnyEvent::Pg IRC: AnyEvent::IRC Maintenance: PerlIO::gzip RG: XML::Parser graphviz (/usr/bin/dot is used by default) util/skingen.pl CSS::Minifier::XS (optional, minimizes CSS output) util/jsgen.pl JavaScript::Minifier::XS (optional, minimizes JS output) uglifyjs (optional, slower but better JS compression) util/spritegen.pl pngcrush (optional) Setup - Make sure all the required dependencies (see above) are installed - Create a suitable data/config.pl, using data/config_example.pl as base. - Run the build system: make - Setup a PostgreSQL server and make sure you can login with some admin user - Initialize the VNDB database (assuming 'postgres' is a superuser): # Create the database & roles psql -U postgres -f util/sql/superuser_init.sql # Set a password for each database role: echo "ALTER ROLE vndb LOGIN UNENCRYPTED PASSWORD 'pwd1'" | psql -U postgres echo "ALTER ROLE vndb_site LOGIN UNENCRYPTED PASSWORD 'pwd2'" | psql -U postgres echo "ALTER ROLE vndb_multi LOGIN UNENCRYPTED PASSWORD 'pwd3'" | psql -U postgres # Now import the rest psql -U vndb -f util/sql/all.sql - Update the vndb_site password in data/config.pl to whatever you set it in the previous step. - Configure a web server. To use a single subdomain for both static files and the dynamic Perl code, here's a simple trick: mv www/* static/ rmdir www ln -s static www ln -s ../util/vndb.pl www/cgi.pl Then use the following Apache 2.4 config: Options +ExecCGI +FollowSymLinks AllowOverride None Require all granted ServerName your-test-vndb DocumentRoot "/path/to/vndb/www" RewriteEngine On RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_URI}" !-s RewriteRule ^/ /cgi.pl AddHandler cgi-script .pl Contact IRC: #vndb @ irc.synirc.net Email: contact@vndb.org License GNU AGPL, see COPYING file for details.