Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
luanti-org/contentdb: Luanti (Minetest) mods, games, and more

luanti-org/contentdb: Luanti (Minetest) mods, games, and more

13 hours ago

ContentDB

!Build Status

A content database for Luanti mods, games, and more.\ Developed by rubenwardy, license AGPLv3.0+.

See Getting Started for setting up a development/prodiction environment.

See Developer Intro for an overview of the code organisation.

Credits

  • app/public/static/placeholder.png: erlehmann, Warr1024. License: CC BY-SA 3.0

How-tos

# 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

Run e2e UI tests (needs Node.js, and CDB to be running)

npm install npm run e2e

Open the Cypress test runner

npm run e2e:open

Delete database

docker compose down && sudo rm -rf data/db

VSCode: Setting up Linting

* Click no to installing pylint (we don't want it to be installed outside a virtual env)
  • Set up a virtual env
* Use UV to create a venv and install packages: uv sync * source env/bin/activate * pip install pylint

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"
}

Database

classDiagram

User "1" --> "*" Package User --> UserEmailVerification User "1" --> "*" Notification Package "1" --> "*" Release Package "1" --> "*" Dependency Package "1" --> "*" Tag Package "1" --> "*" MetaPackage : provides Release --> LuantiVersion 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

Chat with me