{"id":24570832,"url":"https://github.com/luanti-org/contentdb","last_synced_at":"2025-04-04T12:07:01.419Z","repository":{"id":39787794,"uuid":"125748360","full_name":"luanti-org/contentdb","owner":"luanti-org","description":"A content database for Luanti (Minetest) mods, games, and more","archived":false,"fork":false,"pushed_at":"2025-03-09T13:48:08.000Z","size":21871,"stargazers_count":98,"open_issues_count":76,"forks_count":47,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-28T11:07:18.240Z","etag":null,"topics":["hacktoberfest","minetest","mod","restful-api","website"],"latest_commit_sha":null,"homepage":"https://content.luanti.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luanti-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"liberapay":"rubenwardy","patreon":"rubenwardy","custom":["https://rubenwardy.com/donate/"]}},"created_at":"2018-03-18T17:07:27.000Z","updated_at":"2025-03-11T12:57:11.000Z","dependencies_parsed_at":"2023-02-15T20:31:37.596Z","dependency_job_id":"46636206-3d47-4b3c-b6ce-f0bbbd6f6d67","html_url":"https://github.com/luanti-org/contentdb","commit_stats":{"total_commits":2432,"total_committers":157,"mean_commits":"15.490445859872612","dds":"0.18338815789473684","last_synced_commit":"25547c9f3868c7eaf38f3424254986f195687e72"},"previous_names":["luanti-org/contentdb","minetest/contentdb"],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luanti-org%2Fcontentdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luanti-org%2Fcontentdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luanti-org%2Fcontentdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luanti-org%2Fcontentdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luanti-org","download_url":"https://codeload.github.com/luanti-org/contentdb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174416,"owners_count":20896078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","minetest","mod","restful-api","website"],"created_at":"2025-01-23T17:32:47.097Z","updated_at":"2025-04-04T12:07:01.397Z","avatar_url":"https://github.com/luanti-org.png","language":"Python","funding_links":["https://liberapay.com/rubenwardy","https://patreon.com/rubenwardy","https://rubenwardy.com/donate/"],"categories":[],"sub_categories":[],"readme":"# ContentDB\n![Build Status](https://github.com/minetest/contentdb/actions/workflows/test.yml/badge.svg)\n\nA content database for Minetest mods, games, and more.\\\nDeveloped by rubenwardy, license AGPLv3.0+.\n\nSee [Getting Started](docs/getting_started.md) for setting up a development/prodiction environment.\n\nSee [Developer Intro](docs/dev_intro.md) for an overview of the code organisation.\n\n## Credits\n\n* `app/public/static/placeholder.png`: erlehmann, Warr1024. License: CC BY-SA 3.0\n\n## How-tos\n\n```sh\n# Hot/live reload (only works with FLASK_DEBUG=1)\n./utils/reload.sh\n\n# Cold update a running version of CDB with minimal downtime (production)\n./utils/update.sh\n\n# Enter docker\n./utils/bash.sh\n\n# Run migrations\n./utils/run_migrations.sh\n\n# Create new migration\n./utils/create_migration.sh\n\n# Delete database\ndocker-compose down \u0026\u0026 sudo rm -rf data/db\n```\n\n\n### VSCode: Setting up Linting\n\n* (optional) Install the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)\n* Install the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)\n\t* Click no to installing pylint (we don't want it to be installed outside a virtual env)\n* Set up a virtual env\n\t* Replace `psycopg2` with `psycopg2_binary` in requirements.txt (because postgresql won't be installed on the system)\n\t* `python3 -m venv env`\n\t* Click yes to prompt to select virtual env for workspace\n\t* Click yes to any prompts about installing pylint\n\t* `source env/bin/activate`\n\t* `pip install -r requirements`\n\t* `pip install pylint` (if a prompt didn't appear)\n\t* Undo changes to requirements.txt\n\n### VSCode: Material Icon Folder Designations\n\n```json\n\"material-icon-theme.folders.associations\": {\n\t\"packages\": \"\",\n\t\"tasks\": \"\",\n\t\"api\": \"\",\n\t\"meta\": \"\",\n\t\"blueprints\": \"routes\",\n\t\"scss\": \"sass\",\n\t\"flatpages\": \"markdown\",\n\t\"data\": \"temp\",\n\t\"migrations\": \"archive\",\n\t\"textures\": \"images\",\n\t\"sounds\": \"audio\"\n}\n```\n\n\n## Database\n\n\n```mermaid\nclassDiagram\n\nUser \"1\" --\u003e \"*\" Package\nUser --\u003e UserEmailVerification\nUser \"1\" --\u003e \"*\" Notification\nPackage \"1\" --\u003e \"*\" Release\nPackage \"1\" --\u003e \"*\" Dependency\nPackage \"1\" --\u003e \"*\" Tag\nPackage \"1\" --\u003e \"*\" MetaPackage : provides\nRelease --\u003e MinetestVersion\nPackage --\u003e License\nDependency --\u003e Package\nDependency --\u003e MetaPackage\nMetaPackage \"1\" --\u003e \"*\" Package\nPackage \"1\" --\u003e \"*\" Screenshot\nPackage \"1\" --\u003e \"*\" Thread\nThread \"1\" --\u003e \"*\" Reply\nThread \"1\" --\u003e \"*\" User : watchers\nUser \"1\" --\u003e \"*\" Thread\nUser \"1\" --\u003e \"*\" Reply\nUser \"1\" --\u003e \"*\" ForumTopic\n\nUser --\u003e \"0..1\" EmailPreferences\nUser \"1\" --\u003e \"*\" APIToken\nAPIToken --\u003e Package\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluanti-org%2Fcontentdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluanti-org%2Fcontentdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluanti-org%2Fcontentdb/lists"}