{"id":23058786,"url":"https://github.com/manatools/madb","last_synced_at":"2025-04-03T06:20:46.323Z","repository":{"id":225096816,"uuid":"764877930","full_name":"manatools/madb","owner":"manatools","description":"Site for displaying RPM packages","archived":false,"fork":false,"pushed_at":"2024-10-17T08:10:25.000Z","size":1076,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-19T10:59:48.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"SCSS","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/manatools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-28T21:48:34.000Z","updated_at":"2024-10-17T08:10:17.000Z","dependencies_parsed_at":"2024-04-19T21:44:05.954Z","dependency_job_id":"34880d04-1f80-4f4f-9e73-1f855d0f2648","html_url":"https://github.com/manatools/madb","commit_stats":null,"previous_names":["papoteur-mga/madb","manatools/madb"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatools%2Fmadb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatools%2Fmadb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatools%2Fmadb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manatools%2Fmadb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manatools","download_url":"https://codeload.github.com/manatools/madb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246944926,"owners_count":20858863,"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":[],"created_at":"2024-12-16T02:17:37.476Z","updated_at":"2025-04-03T06:20:46.315Z","avatar_url":"https://github.com/manatools.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# madb\nSite for displaying RPM packages\n\nUse `libdnf5` as provider for packages database \n\nUse `bugs.mageia.org` for special pages\n\n# Requirements\nThe application needs this:\n## Python modules\n- beautifulsoup4\n- flask\n- gunicorn\n- humanize\n- libdnf5 [1]\n- pandas\n- pyvis [2]\n- jsonpickle [2]\n\n## Other packages\n- rpmlint-mageia-policy \n\n[1] For Mageia 9, this module is available from Copr: ngompa/dnf5-mga. For cauldron, it is already available in release.\n\n[2] these packages are availble on MLO repository.\n\n# Configuration\nThe package comes with a model of configuration file `madb/config.py.in`. This file has to be edited and installed as `madb/config.py`. Its content is:\n```\n# the last release\nTOP_RELEASE = 9\nAPP_NAME = \"Mageia App DB\"\nDATA_PATH = \"/var/lib/madb\"\nLOG_PATH = DATA_PATH\nMIRROR_URL = \"https://fr2.rpmfind.net/linux/mageia/distrib/\"\n# Complete list of used goups\nDEF_GROUPS_FILE = \"/usr/share/rpmlint/config.d/distribution.exceptions.conf\"\n# Name of the development version\nDEV_NAME = \"cauldron\"\n# Level of logging\nLOG_LEVEL = \"DEBUG\"\nPAGE_SIZE = 30\nBUGZILLA_URL = \"http://bugs.mageia.org\"\n# List of architectures managed\nARCHES = {\n    \"x86_64\": \"x86 64bits\",\n    \"i586\": \"x86 32bits\",\n    \"aarch64\": \"Arm 64bits\",\n    \"armv7hl\": \"Arm 32bits v7hl\",\n}\n# Used as filter in search bar\nDISTRIBUTION = {\n    DEV_NAME: \"Mageia cauldron\",\n    str(TOP_RELEASE): \"Mageia \" + str(TOP_RELEASE),\n    str(TOP_RELEASE - 1): \"Mageia \" + str(TOP_RELEASE -1),\n}\n```\n\n`TOP_RELEASE` has to be changed at each release.\n\n`DATA_PATH` has to be adapted to where the application is located.\n\n`LOG_PATH` has to be adapted to where the application writes its logs, for example to `/var/log/madb`.\n\n`MIRROR_URL` has to be adapted to be preferably a mirror near the server.\n\n# Running\nFor testing purposes, the application can be run from the madb subdirectory, in debug mode to allow the application being reloaded when files are changed:\n\n`flask run -d`\n\nIn production mode, it can be run with `gunicorn` from the root of the directory (the one containg `wsgi.py`):\n\n`/usr/bin/gunicorn --workers 4 --timeout=90  wsgi:madb_app --log-level=INFO --bind :5003`\n\nThe application listens on port 5003 in this case.\n\nMetadata from DNF are stored in `dnf/cache/`. The library writes also logs in `dnf/logs/`.\n\nSome files are cached in `cache/` or `cache/long/`. They are header files for the navigation bar and screenshots read from Debian repository.\n\nThe application writes logs in `./madb.log`.\n\nThe tool `python makecache.py` has to be run regularly for the application to have up to date data.\n\n# Services\nThe application can be run as services through `systemd`. \n\nThe file `system/gunicorn.socket` has to be installed in `/usr/lib/systemd/system`. It triggers the launch of `gunicorn.service` when the socket `/run/gurnicorn.sock` is accessed.\n\nThe file `system/gunicorn.service` has to be installed in `/usr/lib/systemd/system`. It provides the service of the application.\n\nThe file `system/madb-cache.service` has to be installed in `/usr/lib/systemd/system`. It provides the service of updating the dnf metadata on a regular basis.\n\nThe file `system/madb-cache.timer` has to be installed in `/usr/lib/systemd/system`.\n\n# Testing\nin the root directory, run:\n\n`python -m pytest`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanatools%2Fmadb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanatools%2Fmadb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanatools%2Fmadb/lists"}