diff options
author | Yorhel <git@yorhel.nl> | 2018-06-03 19:10:57 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2018-06-03 19:10:57 +0200 |
commit | 0c0007630fd310bc6857a94fe65703d1fb446177 (patch) | |
tree | 9dd9f1c2b0d09460898ca580fe9067e6e9670269 /README.md | |
parent | b0f7086211dd326ef612d30561ddc69e7abf98fb (diff) |
Add development DB dump, remove old devdb, convert README to markdown
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 00000000..7ddc7755 --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +# 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 +``` + + +## 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 9.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. +- Now simply run: + +``` + util/vndb-dev-server.pl +``` + +## License + +GNU AGPL, see COPYING file for details. |