• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Website that collects data on GOG games

GOG Database

Website that collects data on GOG games.

Deployment Instructions

All commands need to be run as root. They are specific to Debian Buster, Apache2 and Gunicorn. If you want to use a different web or app server search for deploying Flask applications on it.

Application

Clone the application

# cd /usr/local/share
# git clone https://github.com/Yepoleb/gogdb.git
# cd gogdb

Create system user for the updater

# adduser --system --home /var/lib/gogdb/ --shell /bin/bash --no-create-home --group --disabled-login --gecos 'GOG DB' gogdb

Create a login token for the updater to use

# scripts/run.sh token token.json
# mkdir -p /var/lib/gogdb/storage/secret/
# mv token.json /var/lib/gogdb/storage/secret/token.json

Set access rights

# chown -R gogdb:gogdb /var/lib/gogdb/storage/
# chmod g-rwx,o-rwx -R /var/lib/gogdb/storage/secret/

Copy the example config and set the storage path

# mkdir /etc/gogdb
# cp example-production.py /etc/gogdb/config-production.py
# editor /etc/gogdb/config-production.py

Build assets. Both commands have to be run in a root shell because sudo resets the environment variables

# export GOGDB_CONFIG=/etc/gogdb/config-production.py
# scripts/run.sh assets

Apache2

Apache is used as the webserver to serve static assets and to translate HTTP/HTTPS into uwsgi requests.

Install Apache2

# apt install apache2

Copy the config

# cp conf/apache2/gogdb.conf /etc/apache2/sites-available/

Enable required modules

# a2enmod proxy
# a2enmod expires

Enable the site

# a2ensite gogdb

Restart Apache2

# systemctl restart apache2

Gunicorn

Gunicorn is the default application server for GOG DB

Install Gunicorn

# apt install gunicorn3

Copy the systemd service file

# cp conf/systemd/gogdb.service /etc/systemd/system/

Start service

# systemctl daemon-reload
# systemctl enable gogdb
# systemctl start gogdb

Scripts

Scripts insert the data into the database and keep it up to date. They are also used to build the search index.

Copy the systemd email notify service to receive failed task notifications

# cp conf/systemd/[email protected] /etc/systemd/system/

Copy the systemd services for the updater

# cp conf/systemd/gogdb-updater.* /etc/systemd/system/

Enable the timer

# systemctl daemon-reload
# systemctl enable gogdb-updater.timer
# systemctl start gogdb-updater.timer

Copy the systemd services for the backup

# cp conf/systemd/gogdb-backup.* /etc/systemd/system/

Enable the timer

# systemctl daemon-reload
# systemctl enable gogdb-backup.timer
# systemctl start gogdb-backup.timer

Development

  1. Create a storage directory
  2. Adapt config-development.py from example-development.py
  3. Generate a token as described in the application setup process

The scripts/run.sh script is a convenient way to run the components of GOG DB with development defaults.

Database Migrations

See MIGRATIONS.md

License

AGPLv3 or later

More Repositories

1

python-a2s

A2S Query API for Python
Python
146
star
2

gogextract

Script for unpacking GOG Linux installers
Python
61
star
3

gogapidocs

Community created documentation of the GOG.com APIs
Python
50
star
4

pygogapi

Python wrapper around the GOG JSON APIs. Long outdated, please do not use this!
Python
21
star
5

gog_protocols

Reverse engineered protobuf files for GOG Galaxy
15
star
6

idcard-qr

Documentation of the QR code found on new Austrian ID cards.
Python
10
star
7

willywerkel

Documentation of the game "Flugzeuge bauen mit Willy Werkel"
Python
9
star
8

orfstreams

List of ORF live stream urls.
HTML
6
star
9

l4d2query

Python
5
star
10

TileCodecs

Python library of ported Tile Molester image codecs
Python
5
star
11

sourcequery

Website for querying servers that support the A2S protocol.
HTML
5
star
12

adbtools

Tools for hacking ADB Epicentro routers
Python
4
star
13

crosstex

Cross-platform port of the DirectXTex block compression codecs
C++
4
star
14

vtfconv

Convert between vtf textures and various image formats
C++
3
star
15

libsaints

Library for Saints Row file formats
C++
3
star
16

oebbwlan

Automatically dismisses the portal page of OEBB train WLAN, so you don't have to manually open it in your browser
Python
3
star
17

galaxyimport

Import library for linking to the GOG Galaxy SDK with MSVC.
2
star
18

dayzquery

Small Python module to decode the DayZ rules binary response.
Python
2
star
19

saintstools

CLI and GUI tools for modifying Saints Row files
C++
2
star
20

yepoleb.github.io

Repo for my website
HTML
2
star
21

libsrcdemo

Work in progress library for reading source demo files
C++
2
star
22

saintsrow-python

Quick Python implementations of Saints Row formats
Python
2
star
23

3dssmb

FTP-like client for managing New Nintendo 3DS microSD shares.
Python
2
star
24

smoothic

Minetest port of the Smoothic Minecraft texture pack by Leozy
Shell
2
star
25

libsoundiopp

C++ wrapper around libsoundio
C++
2
star
26

srtextool

Tool for converting DDS textures to and from the Volition bitmap format
C++
2
star
27

adventofcode

Advent of Code 2018 Solutions
C++
1
star
28

stx

Collection of C++ standard library extensions and replacements
C++
1
star
29

rconshell

Basic RCON shell
Python
1
star
30

aiv

GUI for viewing compressed and uncompressed Images in GBA-ROMs
Python
1
star
31

libhifive

Alternative SDK for the SiFive HiFive1 Rev B.
C
1
star
32

gog_gdpr

Documentation of the GOG GDPR response and most of the files I received.
1
star
33

hashinstall

Restore installations from a list of file hashes
Python
1
star
34

libcwrapper

Assembly wrapper around libc to allow calling the System V AMD64 ABI using the Microsoft x64 calling convention
Assembly
1
star
35

gv.at

Sanitized list of Austrian government domains with TLS
HTML
1
star
36

vdfparser

Small library for parsing VDF files
C++
1
star
37

doxygenfiles

Script to download header documentation from Doxygen and extract the file contents.
Python
1
star
38

conntrack

Script to remotely access the /proc/net/ip_conntrack file and sort the IPs by connection count.
Python
1
star