init commit

This commit is contained in:
rskntroot
2024-05-29 07:29:07 +00:00
parent 3783db11a9
commit a014501ade
10 changed files with 175 additions and 2 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
docs/build

11
Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
FROM python:alpine
RUN pip install --upgrade pip
LABEL version="1.0.3" maintainer="rskntroot@gmail.com"
RUN apk add --no-cache \
make \
py3-sphinx
RUN pip install myst-parser pydata-sphinx-theme
WORKDIR /opt/sphinx

View File

@@ -1,2 +1,9 @@
# sphinx
Sphinx-Docs for Markdown on Alpine
# rskio sphinx-docs
rskio website using sphinx-docs w/ markdown support on alpine-linux dockerized
## Setup
```
docker compose up -d
```

2
bin/entrypoint.sh Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
make html

21
docker-compose.yml Normal file
View File

@@ -0,0 +1,21 @@
version: "3.8"
services:
sphinx-docs:
image: rskio/sphinx-docs
build: .
volumes:
- ./docs/:/opt/sphinx/
- ./bin/entrypoint.sh:/opt/entrypoint.sh
entrypoint: /opt/entrypoint.sh
nginx:
image: nginx:latest
ports:
- 9999:80
volumes:
- ./docs/build/html:/opt/sphinx/html/:ro
- ./nginx/etc/conf.d/:/etc/nginx/conf.d/:ro
depends_on:
sphinx-docs:
condition: service_completed_successfully

20
docs/Makefile Normal file
View File

@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

28
docs/source/conf.py Normal file
View File

@@ -0,0 +1,28 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'Rskio'
copyright = '2024, rskntroot'
author = 'rskntroot'
release = '1.0.0'
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
# Markdown Support - https://www.sphinx-doc.org/en/master/usage/markdown.html
extensions = ['myst_parser']
templates_path = ['_templates']
exclude_patterns = []
# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
# PyData Theme - https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html (0.15.3)
html_theme = "pydata_sphinx_theme"
html_static_path = ['_static']

View File

@@ -0,0 +1,40 @@
# Example
## This is an Example Markdown File
### sphinx-docs
Sphinx Docs can be described as "website as code" similar to "infrastructure as code".
Currently, this site is built out with the following components:
```
docker:
img: python:alpine
os:
apk: py3-sphinx
python:
pip:
- myst-parser
- pydata-sphinx-theme
```
Sphinx is used generate the html for site which can then be hosted separately:
Generate Command:
```
make html
```
Hosting:
```
docker:
img: nginx:latest
```
#### Testing
```
cd /opt/docker
docker run -it --rm -v ./docs/build/html:/opt/sphinx/html/:ro -v ./nginx/etc/conf.d/:/etc/nginx/conf.d/:ro -p 9999:80 nginx:latest
```

21
docs/source/index.rst Normal file
View File

@@ -0,0 +1,21 @@
.. Rskio documentation master file, created by
sphinx-quickstart on Wed May 29 05:30:27 2024.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Rskio
=====
.. toctree::
:maxdepth: 2
:caption: Contents:
./docs/example.md
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@@ -0,0 +1,22 @@
server {
listen 80;
listen [::]:80;
server_name localhost rskio.com;
# rskio logging is handled via traefik
#access_log /var/log/nginx/host.access.log main;
location / {
root /opt/sphinx/html;
index index.html index.htm;
}
# rskio auth is handled via traefik
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}