Skip to content
Go to file

Latest commit

Bumps [cryptography]( from 2.9.2 to 3.2.
- [Release notes](
- [Changelog](
- [Commits](pyca/cryptography@2.9.2...3.2)

Signed-off-by: dependabot[bot] <>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]>

Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Content Database

Build status

Content database for Minetest mods, games, and more.
Developed by rubenwardy, license GPLv3.0+.

Getting started (debug/dev)

Docker is the recommended way to develop and deploy ContentDB.

  1. Install docker and docker-compose.


     sudo apt install docker-ce docker-compose
  2. Copy config.example.cfg to config.cfg.

  3. (Optional) Set up mail in config.cfg. Make sure to set USER_ENABLE_EMAIL to True.

  4. (Optional) Set up GitHub integration

    1. Make a Github OAuth Client at
    2. Homepage URL - http://localhost:5123/
    3. Authorization callback URL - http://localhost:5123/user/github/callback/
    4. Put client id and client secret in GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in config.cfg.
  5. Create config.env:

  6. Start docker images:

     docker-compose up --build
  7. Setup database:

  8. Create initial data

    1. ./utils/
    2. Either python utils/ -t or python utils/ -o:
      1. -o creates just the admin, and static data like tags, and licenses.
      2. -t will do -o and also create test packages. (Recommended)
  9. View at http://localhost:5123. The admin username is rubenwardy and the password is tuckfrump.

In the future, starting CDB is as simple as:

docker-compose up --build

To hot/live update CDB whilst it is running, use:


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)

# Cold update a running version of CDB with minimal downtime (production)

# Enter docker

# Run migrations

# Create new migration

VSCode: Setting up Linting

  • (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 psycopg2 with psycopg2_binary in 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/activate
    • pip install -r requirements
    • pip install pylint (if a prompt didn't appear)
    • Undo changes to requirements.txt

VSCode: Material Icon Folder Designations

"material-icon-theme.folders.associations": {
	"packages": "",
	"tasks": "",
	"api": "",
	"meta": "",
	"blueprints": "routes",
	"scss": "sass",
	"flatpages": "markdown",
	"data": "temp",
	"migrations": "archive",
	"textures": "images",
	"sounds": "audio"



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
You can’t perform that action at this time.