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
|
The VNDB.org Source Code
------------------------
Quick and dirty setup using Docker
# Setup
docker build -t vndb .
docker volume create --name vndb-data
# Run (will run on the foreground)
docker run -ti --name vndb -p 3000:3000 -v vndb-data:/var/lib/postgresql -v "`pwd`":/var/www --rm vndb
# While running, if you need another terminal into the container
docker exec -ti vndb bash # root shell
docker exec -ti vndb su -l devuser # development shell
docker exec -ti vndb su postgres -c psql # postgres superuser shell
docker exec -ti vndb su devuser -c 'psql -U vndb' # postgres vndb shell
Requirements (when not using Docker)
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
HTTP::Server::Simple (optional, but greatly simplifies development setup)
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 PASSWORD 'pwd1'" | psql -U postgres
echo "ALTER ROLE vndb_site LOGIN PASSWORD 'pwd2'" | psql -U postgres
echo "ALTER ROLE vndb_multi LOGIN 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.
- Now simply run:
util/vndb-dev-server.pl
(Note: At the time of writing, the above command will require the git
version of TUWF installed, but I intent to upload a new version to CPAN
after a bit more testing).
Contact
IRC: #vndb @ irc.synirc.net
Email: contact@vndb.org
License
GNU AGPL, see COPYING file for details.
|