{ "info": { "author": "LoadingByte", "author_email": "hello@loadingbyte.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Internet" ], "description": "Socorepo, the SOftware COmponent REPOsitory exPOser, is a lightweight Python webapp that pulls\nsoftware component listings from a variety of different sources and presents them as intuitive download sites\nto end users.\n\nA production instance of the webapp is permanently embedded in https://loadingbyte.com, for example, at https://loadingbyte.com/socorepo/dl/. Try it out!\n\n## Features\n\n* Pulls software components from Nexus 3, GitHub, or PyPI repositories.\n* \"Just works\": Listings are sorted and classified by sensible and generic (yet configurable) standards.\n* Extremely lightweight: No external services like databases required.\n* Configured fully by simple config files.\n* Features a REST API.\n* 100% JavaScript-free. Doesn't employ any JavaScript in the browser.\n\n## Install\n\nSocorepo can be installed from PyPI:\n\n $ pip install socorepo\n\nYou can then quickly deploy Socorepo, e.g., using [Gunicorn](https://gunicorn.org/):\n\n $ pip install gunicorn\n $ gunicorn -b 127.0.0.1:4000 socorepo:app\n\n## Configure\n\nWhen you just fire up Socorepo, it uses the default configuration files that it ships with.\nYou probably want to edit these files.\nTo do that, first extract the default configuration files using:\n\n $ socorepo-default-config\n\nThis will copy the default configuration files into a new `config/` folder in your shell's current directory.\nNow put that folder wherever you want.\nWhen you start Socorepo in the future, simply supply the path to your new config directory\nin the environment variable `SOCOREPO_CONFIG_DIR`:\n\n $ SOCOREPO_CONFIG_DIR=/path/to/config/ gunicorn -b 127.0.0.1:4000 socorepo:app\n\nAll configuration files use the [TOML](https://github.com/toml-lang/toml) configuration format.\n\nThe `settings.toml` file contains straightforward general settings which are explained in detail by the comments in that file.\nMeanwhile, the `projects.toml` file defines the software projects for which Socorepo presents download pages.\nWhen configuring Socorepo for the first time, start with these two files and use the extensive comments as a guide.\nThe remaining `.toml` files you probably won't need to touch for starters.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/LoadingByte/socorepo", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "socorepo", "package_url": "https://pypi.org/project/socorepo/", "platform": "", "project_url": "https://pypi.org/project/socorepo/", "project_urls": { "Homepage": "https://github.com/LoadingByte/socorepo" }, "release_url": "https://pypi.org/project/socorepo/1.2.0/", "requires_dist": [ "toml", "requests", "Flask", "Flask-WTF" ], "requires_python": ">=3.7", "summary": "A webapp that fetches software version listings and presents them as download sites.", "version": "1.2.0", "yanked": false, "yanked_reason": null }, "last_serial": 10312682, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "966ebed58ed292e1b0c66970ed75c76b", "sha256": "b57f6d91a0d7e4d0ecb67c50e813af599db38db8edcc5f5224d30fbaeaf551a8" }, "downloads": -1, "filename": "socorepo-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "966ebed58ed292e1b0c66970ed75c76b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 40714, "upload_time": "2019-10-24T12:50:29", "upload_time_iso_8601": "2019-10-24T12:50:29.887165Z", "url": "https://files.pythonhosted.org/packages/d5/2e/4f4bff28c141863cc6bdecadf0521628ee8c47406a370583e83802d4afbb/socorepo-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4e61036844bce604a6808f06104f6f3d", "sha256": "f39747668d1e414291a1f98d1f6e72c855141108910a2e75868360b65cc0d440" }, "downloads": -1, "filename": "socorepo-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4e61036844bce604a6808f06104f6f3d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 31305, "upload_time": "2019-10-24T12:50:32", "upload_time_iso_8601": "2019-10-24T12:50:32.122095Z", "url": "https://files.pythonhosted.org/packages/ac/a6/ba892e024e98804a969f39c7545c2b731e5b4250384d69d30a67baf80126/socorepo-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "df2abb05bfa106bec5779152e1882a58", "sha256": "86c201f2a795b72ff5ca5388e518dcd3581b576da338aa738a5e42ff6312b2f2" }, "downloads": -1, "filename": "socorepo-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "df2abb05bfa106bec5779152e1882a58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 41179, "upload_time": "2019-11-11T20:26:44", "upload_time_iso_8601": "2019-11-11T20:26:44.876341Z", "url": "https://files.pythonhosted.org/packages/87/46/fba236237457e2a546fb107f32e5c08bb102c3cc4f370179b22d07f94a07/socorepo-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e723fe607ecea35fffd1d9db89b63bcc", "sha256": "b27c893f9d80b3e6e27f270b60b93bf7b52f70382d2e150fd5201219da11b748" }, "downloads": -1, "filename": "socorepo-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e723fe607ecea35fffd1d9db89b63bcc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 31523, "upload_time": "2019-11-11T20:26:46", "upload_time_iso_8601": "2019-11-11T20:26:46.484938Z", "url": "https://files.pythonhosted.org/packages/f6/3e/18633f563afe82c90e4a296e30e170c9395ffa45b9b74919bab98dcdd05d/socorepo-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "1d499cbd64ba6ffc23e120e2f0944801", "sha256": "0b673dabfdffca102fc0986e1b16aae42f2e4cb32c678c821f145337a65e4fa0" }, "downloads": -1, "filename": "socorepo-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1d499cbd64ba6ffc23e120e2f0944801", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 42132, "upload_time": "2020-01-02T16:48:01", "upload_time_iso_8601": "2020-01-02T16:48:01.847176Z", "url": "https://files.pythonhosted.org/packages/d7/76/648bcb4f624ebeef33ef99ad9d8000b7803aeee377cbb07207e1cda75ec4/socorepo-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9185fa82eab66fdcac0d0061b46c703c", "sha256": "5f3e9e7c8b82c9b2dab16e9aaf029ae169fc600da1df21689cc1f79b6309d61d" }, "downloads": -1, "filename": "socorepo-1.0.2.tar.gz", "has_sig": false, "md5_digest": "9185fa82eab66fdcac0d0061b46c703c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 33621, "upload_time": "2020-01-02T16:48:03", "upload_time_iso_8601": "2020-01-02T16:48:03.542788Z", "url": "https://files.pythonhosted.org/packages/28/93/9e749d545b4da92395233b74904e290a6816d21b37ef8bba756313de92db/socorepo-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "01bde03d1067ff911162f6e006d93c0a", "sha256": "d42273558198ee57eb01374009d7c1f9fdf0c80f919fe3f854097308624e1447" }, "downloads": -1, "filename": "socorepo-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "01bde03d1067ff911162f6e006d93c0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 42134, "upload_time": "2020-01-04T12:15:04", "upload_time_iso_8601": "2020-01-04T12:15:04.279144Z", "url": "https://files.pythonhosted.org/packages/a2/d3/77a7686f0fb418f7003d4f2d06bac67b82caf4ceec50de27aafb83bc42de/socorepo-1.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "667e1127f90c49f74fe11d978c6abf5d", "sha256": "a179680dcaa411a9064a469102e053cc3b6c0f83a7592ce679330acbf9831aed" }, "downloads": -1, "filename": "socorepo-1.0.3.tar.gz", "has_sig": false, "md5_digest": "667e1127f90c49f74fe11d978c6abf5d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 33605, "upload_time": "2020-01-04T12:15:06", "upload_time_iso_8601": "2020-01-04T12:15:06.326775Z", "url": "https://files.pythonhosted.org/packages/14/6d/7c6fd2d93a67474abc5855af0465e1792b545af451939abe94c967a803d3/socorepo-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "ea6f2d8911da1eebef73ad33abf86408", "sha256": "ecb4a9b3a4fa1c2373833565e2ca98260944dd9928b6b9688075c937bfe34288" }, "downloads": -1, "filename": "socorepo-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ea6f2d8911da1eebef73ad33abf86408", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 44566, "upload_time": "2021-04-14T22:31:27", "upload_time_iso_8601": "2021-04-14T22:31:27.510129Z", "url": "https://files.pythonhosted.org/packages/d1/86/777b4869ebb9a23c341d89a8b1a09d9b6a77ba0d0c85b5484c8d61b3f999/socorepo-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dea3dc784b09b42e1e7039b498601c81", "sha256": "6db4b1e119782147594a3d2ac4fa921886e510c910ebac547b31ef91a67afe37" }, "downloads": -1, "filename": "socorepo-1.1.0.tar.gz", "has_sig": false, "md5_digest": "dea3dc784b09b42e1e7039b498601c81", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 35511, "upload_time": "2021-04-14T22:31:29", "upload_time_iso_8601": "2021-04-14T22:31:29.226880Z", "url": "https://files.pythonhosted.org/packages/07/e6/dd03ae5f55203367a6dfc09acabb9a2a4d748d04b6843520c81014326b2d/socorepo-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "9d7356a2fe24ca9ba439b6858366b290", "sha256": "484e19307449d6e8d6ad154bc4798353ca02e708120334947c25c2379d84ebab" }, "downloads": -1, "filename": "socorepo-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9d7356a2fe24ca9ba439b6858366b290", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 46294, "upload_time": "2021-04-14T22:41:02", "upload_time_iso_8601": "2021-04-14T22:41:02.614779Z", "url": "https://files.pythonhosted.org/packages/15/29/7b5e0f836359281cc7ad4893fe26ef5a3c5e673aa1914b63ab8312d1c358/socorepo-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a59e49dfde174a216f4ae5a725ff7063", "sha256": "135659ca41f010d11af9c837964304be914e49d8081a9dd8ca9fd99ca9680336" }, "downloads": -1, "filename": "socorepo-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a59e49dfde174a216f4ae5a725ff7063", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 36643, "upload_time": "2021-04-14T22:41:04", "upload_time_iso_8601": "2021-04-14T22:41:04.274783Z", "url": "https://files.pythonhosted.org/packages/a1/2e/0d54b9c8e45ffce96927e78aecf0d6c554289941aaf175e6a8db39d8a8c1/socorepo-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "b3248a1fd238f4b65c491c7c80091957", "sha256": "da16a02c9b321828375fb67dca5e589947987cbe4c15fe2ac3e9dda4ac5dff62" }, "downloads": -1, "filename": "socorepo-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b3248a1fd238f4b65c491c7c80091957", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 47735, "upload_time": "2021-05-10T21:02:06", "upload_time_iso_8601": "2021-05-10T21:02:06.750789Z", "url": "https://files.pythonhosted.org/packages/fb/db/24ccc2f6ff78825cb2bf3aba9c00760682ba32c6d7273656d56d25b5fdd4/socorepo-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "648b719ed314d142623a7c86b53b81b4", "sha256": "57cdfb5241f0f87d6e7a4139e8b6bf8f1f9982f86281c88041beb0cdbd76c726" }, "downloads": -1, "filename": "socorepo-1.2.0.tar.gz", "has_sig": false, "md5_digest": "648b719ed314d142623a7c86b53b81b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 38000, "upload_time": "2021-05-10T21:02:08", "upload_time_iso_8601": "2021-05-10T21:02:08.734955Z", "url": "https://files.pythonhosted.org/packages/8c/0a/18b4f2a6a74924ab0f57bb3a71180a78e204e336e8d64d421b93bfd2639c/socorepo-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b3248a1fd238f4b65c491c7c80091957", "sha256": "da16a02c9b321828375fb67dca5e589947987cbe4c15fe2ac3e9dda4ac5dff62" }, "downloads": -1, "filename": "socorepo-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b3248a1fd238f4b65c491c7c80091957", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 47735, "upload_time": "2021-05-10T21:02:06", "upload_time_iso_8601": "2021-05-10T21:02:06.750789Z", "url": "https://files.pythonhosted.org/packages/fb/db/24ccc2f6ff78825cb2bf3aba9c00760682ba32c6d7273656d56d25b5fdd4/socorepo-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "648b719ed314d142623a7c86b53b81b4", "sha256": "57cdfb5241f0f87d6e7a4139e8b6bf8f1f9982f86281c88041beb0cdbd76c726" }, "downloads": -1, "filename": "socorepo-1.2.0.tar.gz", "has_sig": false, "md5_digest": "648b719ed314d142623a7c86b53b81b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 38000, "upload_time": "2021-05-10T21:02:08", "upload_time_iso_8601": "2021-05-10T21:02:08.734955Z", "url": "https://files.pythonhosted.org/packages/8c/0a/18b4f2a6a74924ab0f57bb3a71180a78e204e336e8d64d421b93bfd2639c/socorepo-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }