Content database for Minetest mods, games, and more
Go to file
rubenwardy e5f669ccb6 Revert "Birthday" and "Add birthday number and link to forum topic"
This reverts commit 224fef683db7a76bea5acae55d71bce5644dd9e4.

This reverts commit 14e01c9007a91bfb9890570dfe24d3c08adeb39a.
2023-05-26 21:40:09 +01:00
.github Use GitHub actions (#295) 2021-05-03 17:59:23 +01:00
app Revert "Birthday" and "Add birthday number and link to forum topic" 2023-05-26 21:40:09 +01:00
docs Small fixes 2022-02-09 19:14:08 +00:00
migrations Disable sqlalchemy-searchable sync_trigger to fix failing CI 2023-05-19 20:06:50 +01:00
translations Translated using Weblate (Turkish) 2023-05-23 00:48:38 +02:00
utils Default to 4 workers 2023-05-13 16:55:27 +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 ability to block domains 2023-01-03 12:17:25 +00:00
docker-compose.yml Add script to import stats from nginx logs 2022-11-06 16:54:06 +00:00
Dockerfile Update to Python 3.10 2022-01-27 18:44:00 +00:00
LICENSE.md Update copyrights 2021-01-30 17:00:58 +00:00
README.md Fix name in README.md 2023-05-13 17:44:09 +01:00
requirements.lock.txt Downgrade Flask and Werkzeug 2023-05-19 19:28:48 +01:00
requirements.txt Fix incorrect difference detected due to order of tags 2023-05-12 00:45:40 +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

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

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