# django-sphinx-hosting
**Documentation**: [django-sphinx-hosting.readthedocs.org](https://django-sphinx-hosting.readthedocs.org)
This reusable Django application provides models, views, permissions, REST API
endpoints and management commands for making a private Sphinx documentation
hosting platform.
This is useful for when you want Sphinx documentation for your internal software
projects, but that is too sensitive to be shared with a third party.
## Features
* Users must be authenticated to view docs
* Multiple levels of privileges within the system based on Django authentication
* Manage multiple versions of your docs per project
* Automatically build and display navigation for each version of your documentaion
* Renders all documentation published within with a consistent theme
* Tag projects with classifiers to refine searching and filtering
* Search across all projects
* Use REST API to programmatically interact with the system. Useful for
integrating into a CI/CD system
## Installation and Configuration
See the [documentation](https://django-sphinx-hosting.readthedocs.org) for how
to install and configure `django-sphinx-hosting` in your Django project.
{
"_id": null,
"home_page": null,
"name": "django-sphinx-hosting",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Chris Malek <cmalek@caltech.edu>",
"keywords": "documentation, sphinx, django",
"author": null,
"author_email": "Caltech IMSS ADS <imss-ads-staff@caltech.edu>",
"download_url": "https://files.pythonhosted.org/packages/fc/0f/7dc47ef14de071c12c189ef1e8dc899e470e1d907ffde9832251c4f7968b/django_sphinx_hosting-1.6.4.tar.gz",
"platform": null,
"description": "# django-sphinx-hosting\n\n**Documentation**: [django-sphinx-hosting.readthedocs.org](https://django-sphinx-hosting.readthedocs.org)\n\nThis reusable Django application provides models, views, permissions, REST API\nendpoints and management commands for making a private Sphinx documentation\nhosting platform.\n\nThis is useful for when you want Sphinx documentation for your internal software\nprojects, but that is too sensitive to be shared with a third party.\n\n## Features\n\n* Users must be authenticated to view docs\n* Multiple levels of privileges within the system based on Django authentication\n* Manage multiple versions of your docs per project\n* Automatically build and display navigation for each version of your documentaion\n* Renders all documentation published within with a consistent theme\n* Tag projects with classifiers to refine searching and filtering\n* Search across all projects\n* Use REST API to programmatically interact with the system. Useful for\n integrating into a CI/CD system\n\n## Installation and Configuration\n\nSee the [documentation](https://django-sphinx-hosting.readthedocs.org) for how\nto install and configure `django-sphinx-hosting` in your Django project.\n",
"bugtrack_url": null,
"license": null,
"summary": "Reusable Django app for hosting Sphinx documentation privately.",
"version": "1.6.4",
"project_urls": {
"Documentation": "https://django-sphinx-hosting.readthedocs.io/en/latest/",
"Issues": "https://github.com/caltechads/django-sphinx-hosting/issues",
"Source": "https://github.com/caltechads/django-sphinx-hosting"
},
"split_keywords": [
"documentation",
" sphinx",
" django"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fd8b71d9a3eaae9ca1737d12f1bf44959ac34fb7d8745d0543a11fa0c0245619",
"md5": "d5d4f843e505cec03df21cacfe6797c4",
"sha256": "073c2f5f1dfeca039d09e98d725196ed6e43da27a0804db7ac56548c58c01097"
},
"downloads": -1,
"filename": "django_sphinx_hosting-1.6.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d5d4f843e505cec03df21cacfe6797c4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 152711,
"upload_time": "2025-10-07T23:19:14",
"upload_time_iso_8601": "2025-10-07T23:19:14.938793Z",
"url": "https://files.pythonhosted.org/packages/fd/8b/71d9a3eaae9ca1737d12f1bf44959ac34fb7d8745d0543a11fa0c0245619/django_sphinx_hosting-1.6.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fc0f7dc47ef14de071c12c189ef1e8dc899e470e1d907ffde9832251c4f7968b",
"md5": "4727d98bb281a6910a19722cf5507b65",
"sha256": "ea7745b34228297b599981e36c16b3a442db7fb494280493e35d0debe68386a6"
},
"downloads": -1,
"filename": "django_sphinx_hosting-1.6.4.tar.gz",
"has_sig": false,
"md5_digest": "4727d98bb281a6910a19722cf5507b65",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 125063,
"upload_time": "2025-10-07T23:19:16",
"upload_time_iso_8601": "2025-10-07T23:19:16.121317Z",
"url": "https://files.pythonhosted.org/packages/fc/0f/7dc47ef14de071c12c189ef1e8dc899e470e1d907ffde9832251c4f7968b/django_sphinx_hosting-1.6.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-07 23:19:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "caltechads",
"github_project": "django-sphinx-hosting",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "alabaster",
"specs": [
[
"==",
"0.7.16"
]
]
},
{
"name": "asgiref",
"specs": [
[
"==",
"3.8.1"
]
]
},
{
"name": "asttokens",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"24.3.0"
]
]
},
{
"name": "babel",
"specs": [
[
"==",
"2.16.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.12.14"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "crispy-bootstrap5",
"specs": [
[
"==",
"2024.10"
]
]
},
{
"name": "cssselect",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.2.1"
]
]
},
{
"name": "deepmerge",
"specs": [
[
"==",
"2.0"
]
]
},
{
"name": "django",
"specs": [
[
"==",
"5.1.4"
]
]
},
{
"name": "django-appconf",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "django-braces",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "django-compressor",
"specs": [
[
"==",
"4.5.1"
]
]
},
{
"name": "django-crequest",
"specs": [
[
"==",
"2018.5.11"
]
]
},
{
"name": "django-crispy-forms",
"specs": [
[
"==",
"2.3"
]
]
},
{
"name": "django-debug-toolbar",
"specs": [
[
"==",
"5.2.0"
]
]
},
{
"name": "django-environ",
"specs": [
[
"==",
"0.11.2"
]
]
},
{
"name": "django-extensions",
"specs": [
[
"==",
"3.2.3"
]
]
},
{
"name": "django-filter",
"specs": [
[
"==",
"24.3"
]
]
},
{
"name": "django-haystack",
"specs": [
[
"==",
"3.3.0"
]
]
},
{
"name": "django-rest-framework-helpers",
"specs": [
[
"==",
"8.5.0"
]
]
},
{
"name": "django-sass-processor",
"specs": [
[
"==",
"1.4.1"
]
]
},
{
"name": "django-theme-academy",
"specs": [
[
"==",
"0.3.11"
]
]
},
{
"name": "django-wildewidgets",
"specs": [
[
"==",
"0.16.16"
]
]
},
{
"name": "django-xff",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "djangorestframework",
"specs": [
[
"==",
"3.15.2"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.19"
]
]
},
{
"name": "drf-spectacular",
"specs": [
[
"==",
"0.28.0"
]
]
},
{
"name": "elasticsearch",
"specs": [
[
"==",
"7.13.3"
]
]
},
{
"name": "executing",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "gunicorn",
"specs": [
[
"==",
"23.0.0"
]
]
},
{
"name": "humanize",
"specs": [
[
"==",
"4.11.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "imagesize",
"specs": [
[
"==",
"1.4.1"
]
]
},
{
"name": "inflection",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "ipython",
"specs": [
[
"==",
"9.4.0"
]
]
},
{
"name": "ipython-pygments-lexers",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "jedi",
"specs": [
[
"==",
"0.19.2"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.4"
]
]
},
{
"name": "jsonschema",
"specs": [
[
"==",
"4.23.0"
]
]
},
{
"name": "jsonschema-specifications",
"specs": [
[
"==",
"2024.10.1"
]
]
},
{
"name": "libsass",
"specs": [
[
"==",
"0.23.0"
]
]
},
{
"name": "lxml",
"specs": [
[
"==",
"5.3.0"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "matplotlib-inline",
"specs": [
[
"==",
"0.1.7"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "mistune",
"specs": [
[
"==",
"3.1.3"
]
]
},
{
"name": "mysqlclient",
"specs": [
[
"==",
"2.2.6"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.2"
]
]
},
{
"name": "parso",
"specs": [
[
"==",
"0.8.4"
]
]
},
{
"name": "pexpect",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "picobox",
"specs": [
[
"==",
"4.0.0"
]
]
},
{
"name": "pprintpp",
"specs": [
[
"==",
"0.4.0"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
"==",
"3.0.51"
]
]
},
{
"name": "ptyprocess",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "pure-eval",
"specs": [
[
"==",
"0.2.3"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.18.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "rcssmin",
"specs": [
[
"==",
"1.1.2"
]
]
},
{
"name": "redis",
"specs": [
[
"==",
"5.2.1"
]
]
},
{
"name": "referencing",
"specs": [
[
"==",
"0.35.1"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"13.9.4"
]
]
},
{
"name": "rjsmin",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "rpds-py",
"specs": [
[
"==",
"0.22.3"
]
]
},
{
"name": "semver",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.17.0"
]
]
},
{
"name": "snowballstemmer",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "sphinx",
"specs": [
[
"==",
"6.2.1"
]
]
},
{
"name": "sphinx-mdinclude",
"specs": [
[
"==",
"0.6.2"
]
]
},
{
"name": "sphinx-rtd-theme",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-applehelp",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-devhelp",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-django",
"specs": [
[
"==",
"2.5"
]
]
},
{
"name": "sphinxcontrib-htmlhelp",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "sphinxcontrib-httpdomain",
"specs": [
[
"==",
"1.8.1"
]
]
},
{
"name": "sphinxcontrib-jquery",
"specs": [
[
"==",
"4.1"
]
]
},
{
"name": "sphinxcontrib-jsmath",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "sphinxcontrib-openapi",
"specs": [
[
"==",
"0.8.4"
]
]
},
{
"name": "sphinxcontrib-qthelp",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-serializinghtml",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sqlparse",
"specs": [
[
"==",
"0.5.3"
]
]
},
{
"name": "stack-data",
"specs": [
[
"==",
"0.6.3"
]
]
},
{
"name": "structlog",
"specs": [
[
"==",
"24.2.0"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "traitlets",
"specs": [
[
"==",
"5.14.3"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.14.1"
]
]
},
{
"name": "uritemplate",
"specs": [
[
"==",
"4.1.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.20"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.13"
]
]
}
],
"lcname": "django-sphinx-hosting"
}