Python sphinx 如何使用ReadTheDocs或Sphinx托管私有文档

Python sphinx 如何使用ReadTheDocs或Sphinx托管私有文档,python-sphinx,read-the-docs,Python Sphinx,Read The Docs,我对这件事一无所知。花了一整天的时间试图找出“最常用”的方法。我想要实现的是readthedocs.org之类的东西,但是针对的是一个私人客户(和专有项目) 几乎所有常见问题解答、博客帖子、指南等都描述了如何使用GitHub页面或readthedocs.org(.com)托管(发布)文档 我曾尝试在本地使用Sphinx(注意:不是“Sphinx搜索”),我可以很容易地构建一个示例演示文档,但我不太明白如何托管一个“可搜索”的解决方案,就像它所使用的解决方案一样(尽管它似乎使用readthedoc

我对这件事一无所知。花了一整天的时间试图找出“最常用”的方法。我想要实现的是readthedocs.org之类的东西,但是针对的是一个私人客户(和专有项目)

几乎所有常见问题解答、博客帖子、指南等都描述了如何使用GitHub页面或readthedocs.org(.com)托管(发布)文档

我曾尝试在本地使用Sphinx(注意:不是“Sphinx搜索”),我可以很容易地构建一个示例演示文档,但我不太明白如何托管一个“可搜索”的解决方案,就像它所使用的解决方案一样(尽管它似乎使用readthedocs.org作为搜索后端)

我已尝试在本地部署readthedocs.org,但:

  • “搜索”不起作用(没有人监听127.0.0.1:9200)
  • 我无法生成任何文档(找不到版本或 未找到项目)
  • 我无法从我的专用存储库(ssh:)添加项目
  • (注意:我是在Windows上试用的,这可能解释了第1-2项,但我相信不是第3项。)

    到目前为止,我觉得我已经没有什么想法了


    任何建议都将不胜感激

    托管sphinx文档所需的唯一东西是静态文件服务器(搜索无需后端,请参阅)

    这就是说,使用私有readthedocs服务器可能过于工程化了。 只需将文件部署到静态文件服务器,并将基本URL(例如,
    docs.myapp.com
    )指向
    index.html
    文件

    您可以使用自动化部署


    出于完整性考虑:我确信可以使用本地readthedocs服务器来构建您的项目。但是readthedocs显然不是为内部部署而设计的,您可能会发现很难获得专业支持。我参与了一个场景,开发运营团队认为使用在我们努力解决本地readthedocs实例的构建/性能问题之后,他们通常使用的一组工具。

    如果您想托管静态文档,可以通过设置一个静态文件服务器(如nginx)来实现。 仅此文件位于/etc/nginx/sites available/default中:

    server {
        listen 80 default_server;
    
        index index.html index.htm index.nginx-debian.html;
    
        server_name _;
    
        location /doc/your-docs {
            root /path/to/docs;
        }
    }
    
    我们围绕这一概念构建了一个简单的工具,用于为多个项目自托管文档并对其进行版本化:


    我发现向sphinx生成的Makefile(使用rsync并依赖于dirhtml目标)添加“make publish”目标是一个简单而干净的解决方案,它让我可以控制文档何时更新。为每次提交生成文档似乎是相当浪费的(并导致推送坏的文档版本)