blob: 28bf16bc48264bdaae84ffd04b0776fff671aef6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
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:
<Directory /path/to/vndb>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost *:*>
ServerName your-test-vndb
DocumentRoot "/path/to/vndb/www"
RewriteEngine On
RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_URI}" !-s
RewriteRule ^/ /cgi.pl
AddHandler cgi-script .pl
</VirtualHost>
Contact
IRC: #vndb @ irc.synirc.net
Email: contact@vndb.org
License
GNU AGPL, see COPYING file for details.
|