Cheat database for Dragonfire clientsmods, and texture packs.
Developed by EliasFleckenstein03, license GPLv3.0+.
Forked from ContentDB by rubenwardy.
Docker is the recommended way to develop and deploy CheatDB.
-
Install
dockeranddocker-compose.Debian/Ubuntu:
sudo apt install docker-ce docker-compose -
Copy
config.example.cfgtoconfig.cfg. -
(Optional) Set up mail in config.cfg. Make sure to set
USER_ENABLE_EMAILto True. -
(Optional) Set up GitHub integration
- Make a Github OAuth Client at https://github.com/settings/developers:
- Homepage URL -
http://localhost:5123/ - Authorization callback URL -
http://localhost:5123/user/github/callback/ - Put client id and client secret in
GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRETin config.cfg.
-
Create config.env:
POSTGRES_USER=contentdb POSTGRES_PASSWORD=password POSTGRES_DB=contentdb FLASK_DEBUG=1 -
Start docker images:
docker-compose up --build -
Setup database:
./utils/run_migrations.sh -
Create initial data
./utils/bash.sh- Either
python utils/setup.py -torpython utils/setup.py -o:-ocreates just the admin, and static data like tags, and licenses.-twill do-oand also create test packages. (Recommended)
-
View at http://localhost:5123. The admin username is
Fleckensteinand the password istuckfrump.
In the future, starting CDB is as simple as:
docker-compose up --build
To hot/live update CDB whilst it is running, use:
./utils/reload.sh
This will only work with python code and templates, it won't update tasks or config.
# Hot/live reload (only works with FLASK_DEBUG=1)
./utils/reload.sh
# Cold update a running version of CDB with minimal downtime (production)
./utils/update.sh
# Enter docker
./utils/bash.sh
# Run migrations
./utils/run_migrations.sh
# Create new migration
./utils/create_migration.sh- (optional) Install the Docker extension
- Install the Python extension
- Click no to installing pylint (we don't want it to be installed outside of a virtual env)
- Set up a virtual env
- Replace
psycopg2withpsycopg2_binaryin requirements.txt (because postgresql won't be installed on the system) python3 -m venv env- Click yes to prompt to select virtual env for workspace
- Click yes to any prompts about installing pylint
source env/bin/activatepip install -r requirementspip install pylint(if a prompt didn't appear)- Undo changes to requirements.txt
- Replace
"material-icon-theme.folders.associations": {
"packages": "",
"tasks": "",
"api": "",
"meta": "",
"blueprints": "routes",
"scss": "sass",
"flatpages": "markdown",
"data": "temp",
"migrations": "archive",
"textures": "images",
"sounds": "audio"
}classDiagram
User "1" --> "*" Package
User --> UserEmailVerification
User "1" --> "*" Notification
Package "1" --> "*" Release
Package "1" --> "*" Dependency
Package "1" --> "*" Tag
Package "1" --> "*" MetaPackage : provides
Release --> MinetestVersion
Package --> License
Dependency --> Package
Dependency --> MetaPackage
MetaPackage "1" --> "*" Package
Package "1" --> "*" Screenshot
Package "1" --> "*" Thread
Thread "1" --> "*" Reply
Thread "1" --> "*" User : watchers
User "1" --> "*" Thread
User "1" --> "*" Reply
User "1" --> "*" ForumTopic
User --> "0..1" EmailPreferences
User "1" --> "*" APIToken
APIToken --> Package