Content database for Minetest mods, games, and more
Go to file
rubenwardy 65a14ffdf1 Return JSON for collection based on Accept header
This will be used in the future to install collections inside Minetest
2024-09-15 14:35:23 +01:00
.github Fix CI 2024-08-10 13:53:56 +01:00
app Return JSON for collection based on Accept header 2024-09-15 14:35:23 +01:00
docs Remove outdated example from Package Inclusion Policy 2024-07-09 00:09:16 +01:00
migrations Fix CI due to failing migration 2024-06-24 20:28:36 +01:00
translations Update translations 2024-08-26 00:50:05 +01:00
utils Add gettext context to tags and warnings, update translations 2024-06-09 13:48:00 +01:00
.dockerignore Delete inactive user accounts after 12 hours 2021-11-24 17:58:03 +00:00
.gitignore Enable translation support 2022-01-07 19:42:52 +00:00
babel.cfg Update translations 2023-04-30 01:44:12 +01:00
config.example.cfg Add LINK_CHECKER_IGNORED_URLS setting 2024-07-29 23:16:47 +01:00
docker-compose.yml Use latest version of Postgres 14 2024-05-16 16:56:07 +01:00
Dockerfile Switch to Alpine-based docker images 2024-08-10 13:52:02 +01:00
LICENSE.md Update copyrights 2021-01-30 17:00:58 +00:00
README.md Update docs: uploads owner and deleting datbases 2023-12-15 16:08:12 +00:00
requirements.lock.txt Add user_agent is_bot tests 2024-05-24 16:24:38 +01:00
requirements.txt Update Flask dependencies 2024-05-24 16:24:38 +01:00

ContentDB

Build Status

A content database for Minetest 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

# Delete database
docker-compose down && sudo rm -rf data/db

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

Database

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