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.