blob: 9c8c726812fb790615bd4e6616ff0d39b5182577 (
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
116
117
118
119
120
121
122
123
124
125
126
|
# 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
```
To run Multi, the optional application server:
```
docker exec -ti vndb su -l devuser
cd /var/www
make multi-restart
```
## Development database
There is a development database available for download at
[https://vndb.org/d8#3](https://vndb.org/d8#3).
When you first run the docker image, you will be asked whether you want to
download and import this database. If you do not use docker, you can import
this database manually as follows:
- Follow the steps below to setup PostgreSQL and initialze the database
- Download and extract the development database
- psql -U vndb -f dump.sql
## Requirements (when not using Docker)
Global requirements:
- Linux, or an OS that resembles Linux. Chances are VNDB won't run on Windows.
- PostgreSQL 10 (older versions may work)
- perl 5.24 recommended, 5.10+ may also work
**Perl modules** (core modules are not listed):
General:
- Crypt::ScryptKDF
- Crypt::URandom
- DBD::Pg
- DBI
- Image::Magick
- JSON::XS
- PerlIO::gzip
- Tie::IxHash
util/vndb.pl (the web backend):
- Algorithm::Diff::XS
- Text::MultiMarkdown
- TUWF
- HTTP::Server::Simple
util/multi.pl (application server, optional):
- AnyEvent
- AnyEvent::Pg
- AnyEvent::IRC
- XML::Parser
- graphviz (/usr/bin/dot is used by default)
## 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.
- (Optional) Import the "Development database" as explained above.
- (Optional) Do the same for vndb_multi if Multi is needed.
- Now simply run:
```
util/vndb-dev-server.pl
```
- (Optional) To start Multi, the application server:
```
make multi-restart
```
## License
GNU AGPL, see COPYING file for details.
|