-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2dfb41b
Showing
23 changed files
with
1,213 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Built docs. | ||
docs/_build/ | ||
|
||
# Emacs auto-save files | ||
\#*# | ||
|
||
# Python Byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
*$py.class | ||
.pytest_cache/ | ||
*.egg-info | ||
|
||
# Ignore .env file | ||
.env | ||
|
||
# Others | ||
.cache | ||
*.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
FROM continuumio/miniconda3 | ||
|
||
RUN apt-get update -y | ||
RUN apt-get -y install redis-server | ||
RUN mkdir -p "/opt/docs/src/contrib/" | ||
|
||
COPY . /opt/updoc/ | ||
|
||
WORKDIR /opt/updoc | ||
|
||
RUN python setup.py install | ||
|
||
RUN cd docs && \ | ||
python -msphinx -M html . _build/ && \ | ||
mv /opt/updoc/docs/_build/html /opt/updoc/docs/_build/readme && \ | ||
mv /opt/updoc/docs/_build/readme /opt/updoc/docserver/static | ||
|
||
EXPOSE 8000 | ||
|
||
CMD redis-server & gunicorn --preload -w 4 -b "0.0.0.0:80" --timeout 1800 docserver.server:app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
BSD 3-Clause License | ||
|
||
Copyright (c) 2018, Uptake | ||
All rights reserved. | ||
|
||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are met: | ||
|
||
* Redistributions of source code must retain the above copyright notice, this | ||
list of conditions and the following disclaimer. | ||
|
||
* Redistributions in binary form must reproduce the above copyright notice, | ||
this list of conditions and the following disclaimer in the documentation | ||
and/or other materials provided with the distribution. | ||
|
||
* Neither the name of the copyright holder nor the names of its | ||
contributors may be used to endorse or promote products derived from | ||
this software without specific prior written permission. | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# Updoc | ||
|
||
- [Quick Start](#quick-start) | ||
- [Features](#features) | ||
- [Installation](#installation) | ||
- [Usage](#usage) | ||
- [Configuration](#configuration) | ||
|
||
A self hosted readthedocs.io-like documentation repository and hosting service. The problem that this attempts to | ||
solve is that there aren't many easy to use solutions to store and host simple static html. There are numerous | ||
tools out there like Sphinx (for Python and many other languages), pkgdown and pkgnet (for R), and SchemaSpy (for | ||
databases) that generate beautiful html documentation. This allows users to host that documentation in a central | ||
location and easily categorize and share it. | ||
|
||
## Quick Start | ||
|
||
1. Build the docker image | ||
|
||
``` | ||
git clone https://github.com/UptakeOpenSource/updoc | ||
cd updoc | ||
docker build -t updoc . | ||
``` | ||
|
||
2. Run the docker image | ||
|
||
``` | ||
docker run --name doc --rm -d -p 8080:80 updoc | ||
``` | ||
|
||
3: Visit in your browser | ||
|
||
``` | ||
# On Mac | ||
open http://localhost:8080 | ||
``` | ||
|
||
You're all set! | ||
|
||
## Features | ||
|
||
- **Ready**: Supports AWS S3 and file system storage out of the box. | ||
- **Extensible**: We made it really easy to support other storage backends. | ||
- **Web UI**: Allows you to easily search through and view hosted static html. | ||
|
||
## Usage | ||
|
||
### Posting documentation tarballs to **docserver** | ||
|
||
The way in which a folder is tar'd for distribution on docserver is **important**. In order for the application to | ||
correctly understand which category your documentation belongs to and the name of your documentation, the naming | ||
of your tarball must follow the following format: ``<CATEGORY>_<DOCNAME>.tar.gz``. When extracted, the tarball must | ||
expand into a single folder named ``<DOCNAME>``, containing at minimum a ``<DOCNAME>/index.html``. | ||
|
||
You can host static html with ``docserver`` using a POST request: | ||
|
||
``` | ||
# bash | ||
tarball=<PATH-TO-TARBALL> | ||
curl -X POST -F file=@$tarball http://localhost:8080 | ||
``` | ||
|
||
If all goes well, you should receive the this message: | ||
|
||
``` | ||
Document: <DOCNAME> was correctly uploaded, stored, and extracted. | ||
``` | ||
|
||
## Configuration | ||
|
||
Documentation storage: By default, ``docserver`` uses file system storage, but in a production environment in most | ||
cases S3 or another object store is desirable. ``docserver`` supports AWS S3 out of the box. The recommended way to | ||
set configuration options is using a ``.env`` file: | ||
|
||
``` | ||
# .env | ||
STORAGE_BACKEND=s3 | ||
AWS_ACCESS_KEY_ID=<YOUR_AWS_ACCESS_KEY_ID_HERE> | ||
AWS_SECRET_ACCESS_KEY=<YOUR_AWS_SECRET_ACCESS_KEY_HERE> | ||
AWS_DEFAULT_REGION=<YOUR_PREFERED_REGION_HERE> | ||
AWS_DEFAULT_BUCKET=<YOUR_PREFERRED_DEFAULT_BUCKET_HERE> | ||
AWS_BUCKET_FOLDER_PATH=<YOUR_PATH_TO_S3_FOLDER_IN_BUCKET> | ||
``` | ||
|
||
The environment file can then be sourced when running from docker: | ||
|
||
``` | ||
docker run --name doc --rm -d -p 8080:80 --env-file=.env updoc | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
# -*- coding: utf-8 -*- | ||
# | ||
# Configuration file for the Sphinx documentation builder. | ||
# | ||
# This file does only contain a selection of the most common options. For a | ||
# full list see the documentation: | ||
# http://www.sphinx-doc.org/en/master/config | ||
|
||
# -- Path setup -------------------------------------------------------------- | ||
|
||
# If extensions (or modules to document with autodoc) are in another directory, | ||
# add these directories to sys.path here. If the directory is relative to the | ||
# documentation root, use os.path.abspath to make it absolute, like shown here. | ||
# | ||
# import os | ||
# import sys | ||
# sys.path.insert(0, os.path.abspath('.')) | ||
|
||
|
||
# -- Project information ----------------------------------------------------- | ||
|
||
project = 'docserver' | ||
copyright = '2018, Uptake' | ||
author = 'Kyle Szela' | ||
|
||
import docserver | ||
|
||
# The short X.Y version | ||
version = docserver.__version__ | ||
# The full version, including alpha/beta/rc tags | ||
release = docserver.__version__ | ||
|
||
|
||
# -- General configuration --------------------------------------------------- | ||
|
||
# If your documentation needs a minimal Sphinx version, state it here. | ||
# | ||
# needs_sphinx = '1.0' | ||
|
||
# Add any Sphinx extension module names here, as strings. They can be | ||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom | ||
# ones. | ||
extensions = [ | ||
'sphinx.ext.autodoc', | ||
'sphinx.ext.intersphinx', | ||
'sphinx.ext.viewcode', | ||
'sphinx.ext.napoleon', | ||
] | ||
|
||
# Add any paths that contain templates here, relative to this directory. | ||
templates_path = [] | ||
|
||
# The suffix(es) of source filenames. | ||
# You can specify multiple suffix as a list of string: | ||
# | ||
# source_suffix = ['.rst', '.md'] | ||
source_suffix = '.rst' | ||
|
||
# The master toctree document. | ||
master_doc = 'index' | ||
|
||
# The language for content autogenerated by Sphinx. Refer to documentation | ||
# for a list of supported languages. | ||
# | ||
# This is also used if you do content translation via gettext catalogs. | ||
# Usually you set "language" from the command line for these cases. | ||
language = None | ||
|
||
# List of patterns, relative to source directory, that match files and | ||
# directories to ignore when looking for source files. | ||
# This pattern also affects html_static_path and html_extra_path. | ||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] | ||
|
||
# The name of the Pygments (syntax highlighting) style to use. | ||
pygments_style = None | ||
|
||
|
||
# -- Options for HTML output ------------------------------------------------- | ||
|
||
# The theme to use for HTML and HTML Help pages. See the documentation for | ||
# a list of builtin themes. | ||
# | ||
html_theme = 'sphinx_rtd_theme' | ||
|
||
# Theme options are theme-specific and customize the look and feel of a theme | ||
# further. For a list of options available for each theme, see the | ||
# documentation. | ||
# | ||
# html_theme_options = {} | ||
|
||
# Add any paths that contain custom static files (such as style sheets) here, | ||
# relative to this directory. They are copied after the builtin static files, | ||
# so a file named "default.css" will overwrite the builtin "default.css". | ||
html_static_path = [] | ||
|
||
# Custom sidebar templates, must be a dictionary that maps document names | ||
# to template names. | ||
# | ||
# The default sidebars (for documents that don't match any pattern) are | ||
# defined by theme itself. Builtin themes are using these templates by | ||
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', | ||
# 'searchbox.html']``. | ||
# | ||
# html_sidebars = {} | ||
|
||
|
||
# -- Options for HTMLHelp output --------------------------------------------- | ||
|
||
# Output file base name for HTML help builder. | ||
htmlhelp_basename = 'docserverdoc' | ||
|
||
|
||
# -- Options for LaTeX output ------------------------------------------------ | ||
|
||
latex_elements = { | ||
# The paper size ('letterpaper' or 'a4paper'). | ||
# | ||
# 'papersize': 'letterpaper', | ||
|
||
# The font size ('10pt', '11pt' or '12pt'). | ||
# | ||
# 'pointsize': '10pt', | ||
|
||
# Additional stuff for the LaTeX preamble. | ||
# | ||
# 'preamble': '', | ||
|
||
# Latex figure (float) alignment | ||
# | ||
# 'figure_align': 'htbp', | ||
} | ||
|
||
# Grouping the document tree into LaTeX files. List of tuples | ||
# (source start file, target name, title, | ||
# author, documentclass [howto, manual, or own class]). | ||
latex_documents = [ | ||
(master_doc, 'docserver.tex', 'docserver Documentation', | ||
'Kyle Szela', 'manual'), | ||
] | ||
|
||
|
||
# -- Options for manual page output ------------------------------------------ | ||
|
||
# One entry per manual page. List of tuples | ||
# (source start file, name, description, authors, manual section). | ||
man_pages = [ | ||
(master_doc, 'docserver', 'docserver Documentation', | ||
[author], 1) | ||
] | ||
|
||
|
||
# -- Options for Texinfo output ---------------------------------------------- | ||
|
||
# Grouping the document tree into Texinfo files. List of tuples | ||
# (source start file, target name, title, author, | ||
# dir menu entry, description, category) | ||
texinfo_documents = [ | ||
(master_doc, 'docserver', 'docserver Documentation', | ||
author, 'docserver', 'One line description of project.', | ||
'Miscellaneous'), | ||
] | ||
|
||
|
||
# -- Options for Epub output ------------------------------------------------- | ||
|
||
# Bibliographic Dublin Core info. | ||
epub_title = project | ||
|
||
# The unique identifier of the text. This can be a ISBN number | ||
# or the project homepage. | ||
# | ||
# epub_identifier = '' | ||
|
||
# A unique identification for the text. | ||
# | ||
# epub_uid = '' | ||
|
||
# A list of files that should not be packed into the epub file. | ||
epub_exclude_files = ['search.html'] | ||
|
||
|
||
# -- Extension configuration ------------------------------------------------- | ||
|
||
# -- Options for intersphinx extension --------------------------------------- | ||
|
||
# Example configuration for intersphinx: refer to the Python standard library. | ||
intersphinx_mapping = {'https://docs.python.org/': None} |
Oops, something went wrong.